Understanding Powernets - Much like any other massive numbers system in SS13, the power (or powernet) system is complex and confusing to work with, only being trumped in complexity by atmospherics/LINDA. This README serves as a powernets 101 guide and breaks down how the system works.
Модпаки - Модпаки загружаются компилятором сразу после всего остального кода и после карты, что позволяет делать оверрайды, безболезненно добавлять предметы, пользуясь дефайнами из core code и много много всего.
goonstation/LICENSE - All files located in this directory and any subdirectories are licensed under the
Creative Commons 3.0 BY-NC-SA license (https://creativecommons.org/licenses/by-nc-sa/3.0)
camera_nanomap - В этом модуле, для добавления наномапы в камеры, были затронуты НЕ модульно следующие файлы:
"NanoMap.js"
"NanoMap.scss"
"CameraConsole.scss"
"ByondUI.js"
emissive_blocker - Internal atom that copies an appearance on to the blocker plane
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.
succumb - Gives the player the option to succumb while in critical condition
Take Item alert - Alert which appears for a user when another player is attempting to offer them an item.
The user can click the alert to accept, or simply do nothing to not take the item.
cinematic - The cinematic screen showed to everyone
fullscreen
center - Centered fullscreen atoms
These are used to center a widescreen image so it scales properly across screen sizes, not suitable for screen images that eminate from the edge of the screen
stretch - Stretch version is suitable for images that stick to screen edges, as they scale with user screen size
For centrally located screen objects, use /atom/movable/screen/fullscreen/center
cursor_catcher - An effect which tracks the cursor's location on the screen
map_view - 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".
icon_states - Generates assets based on iconstates of a single icon
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)
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!
Click intercept datum - Datum which is intended to be stored by a client's click_intercept variable.
Used to override normal clicking behavior when clicking on an object.
While active, a mob's ClickOn proc will redirect to the InterceptClickOn() proc instead.
Give click intercept - While a mob has this intercept, left clicking on a carbon mob will attempt to offer their currently held item to that mob.
color_matrix - A color matrix allows us to set the color of an atom in a list form, thus allowing us to change color in more flexible ways. For example, we can set the brightness and contrast of the bloom and exposure of lamps
boomerang - If an object is given the boomerang component, it should be thrown back to the thrower after either hitting it's 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.
codeword_hearing - Component that allows for highlighting of words or phrases in chat based on regular expressions.
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 seperate 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 seperate listener.
Good for components, though it carries some overhead. Can't be an element as that may lead to bugs.
construct_held_body - A component for tracking and manipulating bodies held inside constructs/shades
Will drop the body/brain when the parent dies or is deleted.
corpse_description - Mapping component which adds examine text to a corpse that is removed on revival (in case for some reason someone revives your space ruin mob)
For immersive environmental story telling
Basic Proximity Monitor - Attaching this component to an atom means that the atom will be able to detect mobs or objects moving within a specified radius of it.
table - A custom proximity monitor used for tracking players around a table of cards.
Surgery Initiator - Allows an item to start (or prematurely stop) a surgical operation.
tilted - A component that should be attached to things that have been tilted over, and can be righted.
This can optionally block normal attack_hand interactions
atmos_requirements - Bespoke element that deals damage to the attached mob when the atmos requirements aren't satisfied
body_temperature - Bespoke element that deals damage to the attached mob when the ambient temperature is unsuitable.
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
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.
shatters_when_thrown - When attached to something, will make that thing shatter into shards on throw impact or z level falling
Bio-chip Fluff Datum - Bio-chip fluff is just lore about the bio-chip that is accessed through the implantpad, you must attach
one of these datums to the implant_data var on a bio-chip for it to show it up.
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.*
local_powernet - Manages all power related mechanics for a single /area
Machines in areas will directly register to this datum in order to receive power
middle_click_override/Callback invoker middle click override datum - Middle click override which accepts a callback as an arugment in the New() proc.
When the living mob that has this datum middle-clicks or alt-clicks on something, the callback will be invoked.
milla_safe - Create a subclass of this and implement on_run to manipulate tile air safely.
object_window_info - Datum that holds and tracks info about a client's object window
Really only exists because I want to be able to do logic with signals
And need a safe place to do the registration
aggressive_spread - very OP, but im out of other ideas currently
explosive - OH SHIT IT CAN CHAINREACT RUN!!!
spawn_pool - Keeps track of the available points for a given pool, as well as any
spawners that need to keep track globally of the number of any specific item
that they spawn.
spawn_pool_manager - The singleton which keeps track of all spawn pools.
All known /datum/spawn_pool subtypes are registered
to it and are processed in SSlate_mapping.
diona/pod - Same name and everything; we want the same limitations on them; we just want their regeneration to kick in at all times and them to have special factions
hallucinations - Gives everyone in a 7 tile radius 2 minutes of hallucinations
haunt_object - Makes objects be haunted and then throws them at conscious people to do damage, spooky!
charge_up - A click-based spell template which starts charging up once you click the action button/verb. Click again on something to activate the actual spell
bounce - A spell template that adds bounces to the charge_up spell template. The spell will bounce between targets once released.
Don't override cast and instead override apply_bounce_effect and the other procs
augment_menu - The shop for purchasing and upgrading abilities, from here on the rest of the file is just handling shopping. Specific powers are in the powers subfolder.
overclock - A toggle ability that makes you speedy and attack faster while heating up, level one cast is guaranteed to hurt a bit.
override_key - After a 7 second channel time you can emag a borg
spell_handler - The base class for the handler systems spells use.
Subtypes of this class can be added to spells to modify their behaviour and change their can_cast.
Thus allowing for a more modular behaviour system. For example a vampire spell that jaunts can just add the vampire spell_handler to the jaunt spell
spell_targeting - The base class for the targeting systems spells use.
alive_mob_list - Will find targets in the GLOB.alive_mob_list. The result will be in a random order
aoe - An area of effect based spell targeting system. Will return all targets in the given range
click - A click based spell targeting system. The clicked atom will be used to determine who/what to target
clicked_atom - A simple spell targeting system. Will return the clicked atom as a target. Only works for 1 target max and is basically a dumbed down /datum/spell_targeting/click
matter_eater - A spell targeting system especially made for the matter eater gene
reachable_turfs - A spell targeting system which will return nearby turfs which are reachable from the users location. Will pad the targets with the user's location if needed
remoteview - A spell targeting system which will return one user picked target from all alive mobs who have the remoteview block but do not have the psyresist block active.
self - A spell targeting system which will return the caster as target
spiral - Gets a list of turfs around the center atom to scramble.
targeted - A spell targeting system which is able to select 1 to many targets in range/view of the caster. Has a random mode, distance from user based mode or a user input mode.
telepathic - A spell targeting system which will allow the user to select a target from nearby living mobs. The name will be "Unknown entity" if the user can not see them
crusher_damage - tracks the damage dealt to this mob by kinetic crushers
cultghost - is a cult ghost and can't use manifest runes, can see ghosts and dies if too far from summoner
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.
limited_bonus - A status effect that can have a certain amount of "bonus" duration added, which extends the duration every tick,
although there is a maximum amount of bonus time that can be active at any given time.
Offering Item status effect - Status effect given to mobs after they've offered an item to another player using the Give Item action (/datum/click_intercept/give).
Transient Status Effect (basetype) - A status effect that works off a (possibly decimal) counter before expiring, rather than a specified world.time.
This allows for a more precise tweaking of status durations at runtime (e.g. paralysis).
Confusion - Prevents moving straight, sometimes changing movement direction at random.
Decays at a rate of 1 per second.
Dizziness - Slightly offsets the client's screen randomly every tick.
Decays at a rate of 1 per second, or 5 when resting.
Drowsiness - Slows down and causes eye blur, with a 5% chance of falling asleep for a short time.
Decays at a rate of 1 per second, or 5 when resting.
Drukenness - Causes a myriad of status effects and other afflictions the stronger it is.
Decays at a rate of 1 per second if no alcohol remains inside.
abstract - Abstract supply packs that don't contain any goods, but instead represent purchases that cargo can make.
A supply pack that does not contain physical objects, but instead fires some sort of callback when ordered.
admin_notify - A sample supply pack that notifies admins when it is purchased, but provides no items.
donations - Simple supply pack for easy admin modification
shuttle - A "supply pack" that allows for purchasing a custom shuttle.
emergency - Section header - use these to set default supply group and crate type for sections
engineering/tools - the most robust crate
misc
boxing - For non log spamming cargo brawls!
formalwear - This is a very classy crate.
janitor - Janitor Supplies
paper - Paper Work
polo - For space polo! Or horsehead Quiditch
randomised/ingredients - its a bit hacky...
servicecostume - Costumes
station_goal - Station Goals
teamcolors - For team sports like space polo
organic
cow - livestock
hydroponics - /// hippy gear
-- Skie
security
armory - Armory stuff
ballistic - Weapons: Specialist
epistol - costs 3/5ths of the normal e-guns for 3/4ths the total ammo, making it cheaper to arm more people, but less convient for any one person
mindshield - Implants & etc
riothelmets - Armor: Specialist
baton - Weapons: Basic
helmets - Armor: Basic
officerpack - Starter pack for an officer. Contains everything in a locker but backpack (officer already start with one). Convenient way to equip new officer on highpop.
intermediate - A partial surgery that consists of a few steps that may be found in the middle of another operation.
An existing surgery can yield to an intermediate surgery for a few steps by way of a proxy surgery_step.
vocal_cords_surgery - Surgery to change the voice of TTS.
Below are the operations for organics and IPC.
proxy - Here's the special sauce: a surgery step that can pretend to be a few different surgery steps.
These proxy steps will, depending on the tool that's used, either continue to the next surgery step, or temporarily spin off a new surgery
by adding new steps to the current surgery.
ib - Mend IB without healing bones
manipulate_organs - The surgery step to trigger this whole situation
open_organ - Proxy surgery step to allow healing bleeding, bones, and burns.
Should be added into surgeries just after the first three standard steps.
robotics/repair_limb - The robotic equivalent
symptom/dizzy - Not the egg
Syndicate Contract - Describes a contract that can be completed by a Contractor.
field - See https://discord.com/developers/docs/resources/channel#embed-object-embed-field-structure for details. Must have name and value set in New().
footer - See https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure for details.
media - Common datum for similar discord embed medias.
provider - See https://discord.com/developers/docs/resources/channel#embed-object-embed-provider-structure for details.
author - See https://discord.com/developers/docs/resources/channel#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/channel#embed-object-embed-structure for 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.
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_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_list_input/ranked - Datum used for allowing a user to sort a TGUI-controlled list input that prompts the user with
a message and shows a list of rankable options
tgui_list_input/ranked - Datum used for allowing a user to sort a TGUI-controlled list input that prompts the user with
a message and shows a list of rankable options
tgui_panel - Copyright (c) 2020 Aleksej Komarov
SPDX-License-Identifier: MIT
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 - Copyright (c) 2020 Aleksej Komarov
SPDX-License-Identifier: MIT
bio_chips/uplink - Nukies get Nuclear Uplink Bio-chip instead
device_tools/thermal_drill - Nukies get Diamond Tipped Thermal Safe Drill instead
special - This uplink catagory is for uplink items avalible by special circumstances. Think station traits, or if some event rolling in a round gave traitors special items, or an objective.
Goliath Broodmother - A stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will.
When it's health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled.
It's attacks are as follows:
Herald - A slow-moving projectile user with a few tricks up it's sleeve. Less unga-bunga than Colossus, with more cleverness in it's fighting style.
As it's health gets lower, the amount of projectiles fired per-attack increases.
It's attacks are as follows:
Legionnaire - A towering skeleton, embodying the power of Legion.
As it's health gets lower, the head does more damage.
It's 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 it's health gets lower, the time between it's attacks decrease.
It's attacks are as follows:
The abstract object - This is an object that is intended to able to be placed, but that is completely invisible.
The object should be immune to all forms of damage, or things that can delete it, such as the singularity, or explosions.
chasm_storage - An abstract object which is basically just a bag that the chasm puts people inside
particle_holder - These effects can be added to anything to hold particles, which is useful because Byond only allows a single particle per atom
Basic Proximity Checker - Inteded for use with the proximity checker component /datum/component/proximity_monitor.
Whenever a movable atom crosses this object, it calls HasProximity() on the object which is listening for proximity (hasprox_receiver).
Hallucination - Base object for hallucinations. Contains basic behaviour to display an icon only to the target.
Hallucination - Abduction - Sends an abductor agent after the target. On knockdown, spawns an abductor scientist next to the target. Nothing else happens.
Hallucination - Assault - An imaginary attacker spawns close to the target and attacks them to stamcrit.
Hallucination - Loose Energy Ball - A progressive hallucination that begins with intermittent explosions, before displaying an energy ball that shocks the target.
no_delete - Subtype that doesn't delete itself.
Mostly used for hallucination managers because they delete the hallucinations when required
dynamic_bridge - A spawner for dynamic bridges, largely with hardcoded expectations to be
operating on Lavaland.
grouped_spawner - Can be used to group spawners together so you ensure a certain amount of things are spawned but can be spawned on multiple locations.
disabler/cyborg - seperate balancing for cyborg, again
emitter/cyborg/proto - needed a slightly weaker ranged option to give to Safety Overriden borgs. The fire rate is about the same as an emitter if you put it on the ground.
laser/cyborg - to balance cyborg energy cost seperately
Standard Book - Game Object which stores pages of text usually written by players, has other editable information such as the book's
title, author, summary, and categories. Has other values that are generated when books are acquired through the library
computer.
MANUALS (BOOKS) - These are "programmatic books," that is books that are hard-coded into the game. Just for the sake of maintainability, keep
information subject to change (as in likely to change SOON) out of the non-wiki manuals as they require PRs to change
and it is not an author's responsbility to update manuals if they change a mechanic/recipe/feature referenced in one of them
Don't worry about adding them to the library, as long as they're one of these types it is automatically added.
Wiki Page Based Book Manuals - These are programmatic books that source its pages / "content" straight from the wiki
That means that this content can ONLY be changed by editing the wiki
Space Law and SOP Manuals can only be edited by Wiki Admins
adaptive - Purchased by Syndicate agents, these cutouts are indistinguishable from normal cutouts but aren't discolored when their appearance is changed
anticcw_armor_booster - ///////////////////////// ARMOR BOOSTER MODULES //////////////////////////////////////////////////////////
what is that noise? A BAWWW from TK mutants.
mod - MODsuits, trade-off between armor and utility
armor
mod_theme_administrative - considering this should not be used, it's getting just DS armor, not infinity in everything.
mod_theme_responsory - This has no slowdown active, and no variation between levels. I am ASSUMING this will be gamma only.
construction/plating
advanced - This may be a bad idea. I think this is an interesting idea. And you still need robotics to build it, and traders can charge as much for it as they want. Also with ones like the CE modsuit, it is the flagship mod. That means it is sold a lot.
rescue - I want to add a way to get the rarer modsuit types, that is limited. A low chance for traders to have plating for it seems interesting
research - Don't think people will want the RD one though, it is as slow as shit. Anyway, here it is. Surely this will not end poorly.
safeguard - Continued from above, none of these are steal objectives, and only the CE or RD one comes pre-installed with modules. You are getting the protection / speed / looks of these hardsuits, but no special modules.
inquisitory - Diffrent look, as well as magic proof on TG. We don't have the magic proof stuff here, but it's perfect for inqusitors. Or if you want to give your ERT a fancy look.
vortex_shotgun - Vortex arm mounted shotgun. Fucks up reality in front of it, very power draining. Compeating with the vortex arm and stealth armor after all
armor_booster - Armor Booster - Grants your suit more armor and speed in exchange for EVA protection. Also acts as a welding screen.
dark_reprise - Revives anyone nearby, but turns them into shadowpeople and renders them uncloneable, so the crystal is your only hope of getting up again if you go down.
emitter - Generates a projectile when interacted with
helpers - Lets ghost spawn as helpful creatures that can only heal people slightly. Incredibly fragile and they can't converse with humans
possessor - Allows you to bodyjack small animals, then exit them at your leisure, but you can only do this once per activation. Because they blow up. Also, if the bodyjacked animal dies, SO DO YOU.
theme_warp - Warps the area you're in to look like a new one
hatch/syndicate/command/trapped - This door is used in the malf AI telecomms ruin. This door starts early access, and will try to crush someone to death who enters it's turf like how an AI door crushes.
economy - Base machine type for machinery that needs to interact with users spending Space Cash or credit from Money Accounts
has helper procs to automate account authentification and handling transactions.
cigarette/beach - Used in the lavaland_biodome_beach.dmm ruin. As the ultimate in smokable vending, it sells the widest range in the grestest quantity.
tool/free - we want a free version for engineering to use
food/chef - The Chefs smartfridge. This smartfridge will spawn with a random condiment, then 3 stacks of 3 plants (or fish meat) to give chef some extra starting variety, or new ideas on what to cook!
Food and Drink Cart - Variant of the Smart Fridge that holds food and drinks in a mobile form
Refrigerated Medicine Storage - Medical variant of the Smart Fridge.
Secure Fridge - Secure variant of the Smart Fridge.
Can be emagged and EMP'd to short the lock.
Smart Chemical Storage - Secure, Chemistry variant of the Smart Fridge.
Smart Chemical Storage (Preloaded) - A Smart Chemical Storage but with some items already in.
Prisoner Belongings Closet - Cannot be opened. Contains the belongings of all kidnapped targets.
Any item added inside stops processing and starts again when removed.
quartermaster/lavaland - used in mining outpost
statue - this type path is a crime, ponies what the fuck
jungle/no_creep - This vairant shows up under normal turfs so fits in the regular 32x32 sprite
no_creep - This vairant shows up under normal turfs so fits in the regular 32x32 sprite
sakura - Sakura grass
indestructible/boss - you put stone tiles on this and use it as a base
lava - Lava turf, burns things that are on it.
Currently a subtype of floor so that footsteps work on it.
Perhaps we could move it down to /turf/simulated/lava someday, as I dont think footsteps over lava are very important.
plasteel/airless/indestructible - For bomb testing range
plating
asteroid - Asteroid
basalt
lava - lava underneath
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.