Commit Graph

371 Commits

Author SHA1 Message Date
SmArtKar
a1356fdd42 BCI component expansion (#65616)
This PR adds 2 new BCI components: VOX component which allows to play vox announcements(for the user only!) and Thought Listener component which allows user to input a string upon activation.

I've also added a rotation port for the object overlay component so you can make pinpointers using it.

This PR requires #65604
2022-03-25 18:04:27 +00:00
SmArtKar
62c5569d6f Adds view sensor (#65624)
Adds view sensor component to circuits which allows to get all visible(no ghost detectors, sorry) movable atoms in a 5 tile range. It only works when your circuit's shell is placed on the ground or is held in hands.
2022-03-25 18:03:02 +00:00
Tastyfish
b1915a4c42 Adds format (associative) list wiremod component (#65404)
Adds a wiremod component called "Format List" and one called "Format Associative List" that you get at round-start.

It accepts a format string and a list of parameters.

For "Format List":
The format string contains normal text, and codes of the form %n (eg. %1, %2, %3) that correlate to indexes in the param list.
For "Format Associative List":
The format string contains normal text, and codes of the form %key (eg. %name, %health) that correlate to keys in the associative param list.
The param list can contain any types, which will be automatically converted to strings.
Conversion of entities to strings still follows the range rule of To String. Important to keep in mind if you're formatting an NTNet transmission.
For the associative version, the keys must be strings comprised of letters, numbers, or underscore.
Simplest example that says "Bob McToolbox pressed the button.":
2022-03-20 10:10:51 +00:00
Tortoise
c511470363 Hand labeler paper roll and toner cartridge can be printed at autolathe and protolathes now (#65300)
About The Pull Request

You can print hand labeler paper roll to refill hand labeler now.
Edit: You can now also print toner cartridge as well to refill decal painter and airlock painter.

Previously you could print hand labeler, decal painter and airlock painter at autolathe and protolathes, but you couldn't print their refill at all. WHYYYYY, do you know how much it hurts the environment having to print another hand labeler once you ran out of paper roll.
Why It's Good For The Game

I mean, you can print hand labeler, decal painter and airlock painter already. I don't see why not being able to print their refill is a thing.
Changelog

cl
qol: hand labeler paper roll and toner cartridge can be printed at autolathe and protolathes now
/cl
2022-03-15 14:45:14 +13:00
vincentiusvin
d396328d03 Small improvements to scipapers (#65420)
* cats can have a little tooltips

* woops
2022-03-14 23:54:47 +08:00
Fikou
4c250570ef fixes mod plating being called armor in some places (#65314)
* saucy jack

* wario
2022-03-09 01:07:49 -05:00
vincentiusvin
eeb5465931 Ordnance Content Update: Scientific Papers (#62284)
How do I play/test/operate this?

Download NT Frontier on any modular computers. It should debrief you on what experiments are available and how to publish.
If you want to do a bomb experiment, make sure it's captured by the doppler array (as usual) and then print the experiments into a disk and publish it.
If you want to do a gas experiment, make the gas and either pump it into a tank and 1) overpressurize it with a "clear" gas like N2 or 2) overpressurize tanks with the gas itself. Make sure you do the overpressurizing in the compressor machine. When tanks are destroyed/ejected leaked gas will get recorded. Print it into a disk and publish it.
For publication, the file needs to be directly present inside the computer's HDD. This means you need to copy it first with the file manager.
Fill the data (if desired, it will autofill with boiler plate if you dont) and send away!
Doing experiments unlock nodes, while doing them well unlocks boosts (which are discounts but slightly more restrictive) which are purchaseable with NT Frontier.
If you are testing this and have access to admin tools, there are various premade bombs under obj/effect/spawner/newbomb

A doc I wrote detailing the why and what part of this PR.
https://hackmd.io/JOakSYVMSh2zU2YL5ju_-Q

---

# Intro

## The Problem(s)

Ordnance, (previously toxins) seems to lack a lot of content and things to do. The gameplay loop consists of making a bomb and then sending it off for credits or using it to refine cores. Ordnance at it's inception originally relies on players experimenting and finding the perfect mix over multiple rounds, but once the recipe for a "do-everything" mix got out, the original charm of individual discoveries becomes meaningless.

Another issue with ordnance is the odd difficulty curve. As a new player, ordnance is almost impossible to decipher, but once you watch a tutorial or read a wiki and can mail a 50k into space, there pretty much isn't anything else to do. Most players will be satisfied at this point without the gameplay loop encouraging them to understand or play more. The only thing you can do afterwards is to sink your teeth in and understand why that particular mix explodes the way it does. This again has a significant difficulty curve, but if you do that, the department doesn't acknowledge or reward that in any way. There are pretty much two huge spikes, with the latter one not really existing inside the department.

TLDR:
* The content being same-y over rounds.
* Odd difficulty curve: 
    1. A new player is oblivious to everything. 
    2. Those in the middle can repeat the final goal consistently without needing to understanding why
    3. There is nothing to justify spending more time in the department after reaching the midgame.

## Abstract

Scientific Papers aim to add a framework to run multiple experiments in ordnance. Adding more experiments scattered across various atmospheric aspects might allow players of various knowledge levels to still have something engaging to do. A new player should have an easier challange than to mail a 50K. While those that already can make bombs should have an easier time understanding why their bombs explode the way it does. Once they fully understand why, they can set their sights on taking advantage of another reaction to set their bomb off or hone one particular reaction down.

## Goals

* Have some intro-level challanges for new players.
* Have some semblance of late-game challanges for more experienced players.
* Explain the mechanics better for those in the middle of the road.
* Incentivize trying new things out in the department.
* Better integrate Ordnance with Experisci

## Boundaries / Dont's

* Do not incentivize people to learn ordnance by using PvP loots.
* Do not shake or change the reaction system by a huge amount.
* Disincentivize having a single god-mix that does everything.
****

# Main design pillars

## A. Framework surrounding the experiments

### A.1. New experiments

Add new experiments to the ExperiSci module. These will come in two flavours: New explosions to do, and various gas synthesis experiments. Both of these are actually supported by the map layout of ordnance right now, but there is no reason to do anything outside of making a 50k as fast as possible.

### A.2. Rewards for experiments: Cash and Techweb Boosts.

Scientific papers will add a separate experiment handling system. A single experiment will be graded into various tiers, each tier corresponding to the explosion size or amount of gas made.  Doing any tier of a specific experiment will unlock the discount for that specific reactions. A single explosion **WILL NOT** do multiple experiments (or even tiers) at once.

On publication, a partner can be selected. A single partner only has a specific criteria of experiments they want. The experiments will then be graded on "how good they are done", with the criteria being more punishing as tier increases. Publication will then reward scientific cooperation with the partnered partner. Players can spend this cooperation on techweb boosts. Techweb boosts are meant to be subservient to discount from experiments and will not shave a node's price to be lower than 500 points.

**Experiments will only unlock nodes, discounts are handled through this boost system.**
This is more for maintainability than anything.

### A.3. On Tedium

*This is a note on implementation more than anything, but I think this helps explains why several things are done.*

Due to the nature of atmospheric reactions in the game (they're all linear), tedium is a very important thing to consider. An experiment should have a sweet spot to aim for, but there should not be a point where further mastery is stopped dead on it's track with a reward cap.

Scientific Papers attempts to discourage this behaviour by having the "maximum score" scale off to infinity but with the rewards being smaller and smaller. The sweet spot is always there to aim for and should be well communicated with players, but on their last submission of an experiment topic players should be encouraged to do their best. There should always be a reward for pushing the system to it's limit as long as it doesn't completely nullify the other subdepartments. This is the reason why there is a hard limit on the number of publications and why the score calculation is a bit more complex than it needed to be.

## B. Gas Synthesis (Early-Mid Game)

Scientific papers will add one new machine that requests a tank to release x amounts of y gas. This will be accomplished by adding a tank pumping machine which will either burst or explode a tank, releasing the gas inside. The gas currently requested are BZ, Nitryl, Halon and Nob.

The overarching goal of this compressor machine is to present a gas synthesis challange for the players and to get them more accustomed to how a tank explodes. The gas synthesis part can always be changed in order to reflect the current state of atmospheric reactions.

## C. Explosion Changes (Mid-Late Game)

### C.1 Cause and effect.

The main theme of the explosion changes is establishing cause and effect of explosions. Reactions that happens inside a tank that's going to explode will be recorded and forwarded to a doppler array. Some experiments will require only a single cause to be present (think of it as isolating a variable). This is currently implemented for nobliumformation and pressure based bombs. Having other reactions occuring besides noblium formation will fail the first one, while having any reactions at all will fail the second one. 

Adding more explosions here will be a slight challange because as of now the game has only two reactions that can reliably make an explosion.

### C.2 Tools upgrade.

Doppler array has now been retrofitted to state the probable cause of an explosion, be it reactions or just overpressurization on gas merging. These should help intermediate players figure out what is causing an explosion.

Added a new functionality to the implosion compressor:
Basically performs the gas merging and reaction that TTV does in a machine and reports the results back as if someone uses an analyzer on them. Here to give players feedback so they can try and understand what is actually going on in a bomb.

## D. Player Interaction

There should be more room for more than 1 player to play ordnance simultaneously. Previously players are also able to split tasks, but this rarely happens because tritium synthesis needs only the gas chamber to be reconfigured. Now, different players can pick different experiments and work on them. Players can also do joint tasks on one single experiment. Gases like noblium will need tritium production and also a cooling module online.

Ordnance can also coordinate with their parent department on what they really need, be it money or research bonuses.

# Potential Changes

The best-case changes that can be implemented if the current roster of content isn't enough is more reactions that can be used in bombs. Eliminating bombs entirely goes against the spirit of the subdepartment, while adding new ones will need a lot of care and consideration.

Another possible change is to implement a "gas payload" bomb. Bombs that has a set number of unreacting gas inside that will increase the heat capacity, reduce the payload, and neccesitates more bespoke mixes.

Adding more gas synthesis experiments is discouraged. The main focus of ordnance should be bombs, with gas synthesis being a side project for ordnance. These are present to ease the introduction to bombs and provide some side content. 
There should be a somewhat well-justified goal in adding new synthesis experiments: e.g. BZ is there as a "tutorial" gas, Nitryl to introduce players to cooling/heating mixes, Halon to a more efficient tritium production, and Nob as a nudge to nobformation bombs and mastery over other aspects.

# Conclusion / Summary

Add more experiments to ordnance that players can take, accomplish this by:
1. Making the players perform gas synthesis or make bombs.
2. Have them collect the data, see if it fits the criteria. Explain why if it fits and why if it doesn't.
3. Have the player publish a paper.

Reward them based on how well did they do, give players agency both on the experiment phase and also publication phase.


---
TLDR: Added new experiment to toxins, added the framework for those experiments existing. Experiments comes in gas synthesis and also bombs but with more parameters. Experiments needs to be published through papers, various choices to be made there.

Implementation notes:

Because of how paper works, ordnance experiments are handled outside of experiment_handler components. My reasoning for this is twofold:

The experiments will be completed manually on publication and if the experiment isn't unlocked yet it will still be completed.
Experiment handler datums have several procs which require an atom-level parent, and I figured this is the most sensible and cleanest way to implement this without changing the experiment handler datum too much.

Small change to /obj/machinery/proc/power_change() signal ordering to adjust the state first and then send the signal. Didn't found any other usage of this signal except mine but barge down my door if it broke something.

Rewrote the ttv merge_gases() code to be slightly more readable.
A small code improvement for thermomachine to use tofixed (my fault).

Ordnance have been updated to enable the publication of papers
Several new explosive and gas synthesis experiments have been added to ordnance
Anomaly compressor has been TGUIzed and now supports simulating the reaction of the gases inside the ttv.
New tank compressor machine for toxins. You can overpressurize tanks with exotic gases and complete experiments.
Several techweb nodes are locked and require toxin experiments to complete.
Toxins can purchase boosts for various techweb nodes.
You no longer need to anchor doppler arrays for it to work.
Doppler array and implosion compressor now supports deconstruction, implosion compressor construction added.
Doppler now emits a red light to denote it's direction and it being on. Doppler not malf.
Implosion compressor renamed to anomaly refinery.
Created a new program tab "Science" for the downloader app. Removed Robotics.
Reworked the code for bombspawner (used in the cuban pete arcade game)
2022-03-03 03:05:37 -08:00
Cursed
79963a08f5 Pepper spray module for sec modsuits, Atmos resin module and nukie pyro bundle flamethrower made into module (#64934)
Pyro bundle was broken as when you brought it you would get modsuit and pyro backpack forcing you to either use armor or use backpack without fire protection(which modsuit has). Thanks to Fikou work it became a module
Anti-Tider on the other hand is rarely used(i have never seen it used when i was playing sec or observing) and needed a little buff so now it will also became a module while i will make normal Anti-Tider stream wider(still working on it).
2022-02-16 13:01:12 -08:00
Watermelon914
754fe54bdb Adds a trigger version of the variable setter component (#64820)
See title. Lets you use input and output signals to set variables instead of automatically setting them.

Gives more control, additionally there may be cases where you don't want this, and the normal component still exists.
They're two separate components so that the first one can be a lot more compact
2022-02-11 01:10:46 -08:00
Ghom
d5ea083806 Actually fixes illegal tech. (#64696)
I had been pinged on the chat a few days ago about the Illegal tech node being still unobtainable, so I checked the code again and found out, to my surprise, that the SStraitors doesn't actually initialize and the list is actually populated on /datum/assets/json/uplink during the initialization of SSassets.
Thankfully enough, it doesn't seem assets registration is asynced, so simply changing the accessed object from SStraitors to SSassets in a few lines should be enough.
2022-02-08 09:45:09 -03:00
necromanceranne
906fb0682b Ballistic to Energy: Autorifles for Thermal Pistols; Adds .38 Crate to Cargo (#64280)
About The Pull Request
The design doc behind this PR, which is only mildy been deviated from on some of the end particulars. Cobby-Approved! Maintainer Discussed!
https://hackmd.io/@6DbtsAKCTtW_9MByKFjZqg/r1xYKCNOt

Cargo Changes
Cargo has had all WT-550's removed and replaced with Thermal Pistols.
Cargo can now order Thermal Pistols, a kind of energy/ballistic hybrid weapon shooting chunks of altered nanites into people. We couldn't use them in people, so maybe we'll use them as bullets! Magma/Ice bullets, to be exact.
You can, after paying a whopping 4K on a goodie pack (you have to pay from your own personal account) buy a .38 revolver. This is mostly to help some poor detective who lost their revolve in what I'm sure will be an inevitable scramble for ballistics. If even the 4K pricetag isn't enough, at least it requires detective access to open the pack...I hope.
Some of the crates that contained autorifle related items have been changed/removed.

unknown (2)

securarevolver 4 0

Science Changes
Ballistic Weaponry node no longer exists, and has been replaced with Exotic Ammo as both the pre-requisite to other nodes, as well as being able to be researched as soon as the Weaponry node is unlocked and not Advanced Weaponry.

Thermal Pistols
-Fairly average bullet statistics; 10 AP but shooting into Energy armor. 20 damage (Brute for cryo, Burn for inferno). Decent wounding potential, but individually much lower ammo counts than lasers.
-Bought in twinned pairs in a two gun holster (just for normal sized energy guns). They're normal sized.
-Each gun has 8 shots (thereabouts). 16 between two.
-Cryo pistols do a knockdown and extra damage against extremely hot targets. Inferno pistols do an explosion cantered on the target against extremely cold targets.
-The guns are EMP-proof.

Why It's Good For The Game
The current gameplay loop of crew combatants is them relying on backup and retreating as necessary to reload their weapons during fights. The ability to repeatedly harry opponents in the field reloads is something that should be moved away from for crew equipment, as it emphasizes lone wolf tactics and one-man army problems, with boxes full of spare ammo usually allowing any single combatant to outlast multiple foes. In addition, ballistics often are not subject to the same (interesting) limitations of energy weapons, so they're typically a no-brainer choice. We shouldn't have such an easy choice be readily available like that.

The thermal pistols present a more challenging weapon to use as a solo combatant but become far more versatile and potent when paired with a decent buddy and basic level co-ordination. They're not a straightforward choice for every situation, but instead are a weapon employed given the right circumstances for them to shine.

In addition to the gameplay issues that ballistics pose, we're in a goddamn spacegame. Unless the ballistics are noticeably weird (they're not), we should expect that our more advanced research station has some pretty odd guns of the energy variety.

Changelog
🆑 Necromanceranne, quin
add: Adds the Inferno and Cryo Pistols. A hybrid energy/ballistic weapon, to cargo. It can be purchased in either a goodies pack or a normal crate order.
add: Thermal Pistols do more damage and a special based on temperature of the target hit.
add: Inferno pistols cause an explosion when they hit a severely cold target.
add: Cryo pistols cause a knockdown and extra damage if they hit a severely hot target.
add: There is a special nanite pistol, which is admin spawned. Don't tell anyone about the forbidden ballistic energy gun.
add: You can order a .38 revolver as a goodie pack. It is expensive.
del: Removes WT-550's from cargo and related content from the techweb/protolathes.
balance: Exotic Ammo is now much earlier in the tech web to take the place of Ballistic Weaponry.
/🆑
2022-02-07 11:29:08 -05:00
Watermelon914
9450605495 Adds basic list manipulation and fixes some performance issues with lists in integrated circuits (#64541)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2022-02-04 13:41:53 -08:00
Jeremiah
cdfd5df7be Refactors pay stands + custom vendors (#63889)
I am disgruntled by the way pay stations work. They're not intuitive, they're a pain to build and have no interface. Basically: They don't get made, and the potential is lost.

Pay stands => Holopay

    Summoned by right clicking your ID
    Disappears if the card is out of range.
    New TGUI window that offers more customization

Other bundled fixes:

    Custom vendors become more user friendly
    Code improvement
    Lots of documentation + refactoring
    New bundled number input will likely take place of animated number in tgui input number

Why It's Good For The Game

More RP opportunity for players, plus bug fixes. It's now much easier for players to start their own in game business selling substances clown shoes.
Changelog

cl
code: Created a new input component that accepts only integers. More usage to come.
refactor: Pay stands are now holographic. It's 2562! Create one by right-clicking your ID.
del: Circuit boards for pay stands.
refactor: Pay stands now have their own TGUI.
fix: Custom vendors now alert you when someone makes a purchase.
fix: Custom vendors now place items in your hand when you make a purchase.
/cl
2022-02-01 09:47:28 +13:00
Ghom
9a4bec5919 Fixes the Illegal tech node being unobtainable (#64520)
* Fixes the illegal technology node not being researchable.

* litter

* Update all_nodes.dm
2022-01-29 22:12:57 -05:00
Fikou
62add6c9a8 Loader Class MODsuit (#64359)
* loader modsuit
2022-01-28 15:10:02 +01:00
Mothblocks
3d319f6157 Autowiki - Generate wiki pages through code (#64417)
Adds a /datum/autowiki template which can be derived in order to create wiki pages and queue file uploads. This is then kickstarted by the new tgs target autowiki (using the AUTOWIKI define) in order to upload these pages.

The pages generated are, in a best case scenario, raw data. This means that wiki editors can decide what the actual theme is without ever having to touch the repository. In the future, MSO will hopefully sandbox the wiki and install Scribunto to let us separate data and style even more.

These will, when done, upload to templates, such as Template:Autowiki/VendingMachines. The actual pages (in this case "Vending Machines") will include this, and thus can write down their own prose and whatnot without ever having to touch repo.

This will also be run on a daily GitHub action, with some secrets setup to link to the account. Currently this is on a bot password (my forum account will not be leaked in the event of a collapse), but at some point I would like to create a dedicated bot account.

This PR adds a Techweb and Vending Machine autowiki. You can look at the Vending Machines one here and the Techweb one here.

I have absolutely no idea what to label this PR (other than note the unit tests I've added). Feel free to add whatever gives GBP 😉
2022-01-28 00:30:15 +00:00
Y0SH1M4S73R
db94f78511 MODsuit Action Circuit Component (+ MODsuit circuit module fixes) (#63755)
This makes several small changes to the MODsuit circuit module:

Adds the MODsuit Action component. When selected, the circuit module opens a radial menu with which to select an action component to trigger.
Due to its similarity to the BCI Action component, both it and the BCI Action component have been made subtypes of an abstract equipment_action component that implements their shared functionality.
Renames the MOD component to the MOD circuit adapter core component.
Changes the "selected module" port on the MOD circuit adapter core to a string port, for consistency with the corresponding input port.
The circuit in the circuit module can be removed. Consequentually, the circuit module no longer comes with a pre-installed circuit.
The "Toggle Suit" signal port on the MOD circuit adapter core can now activate the modsuit.
Makes the circuit module printable in the component printer, for consistency.
Moves the circuit module's code to modules/wiremod, for consistency.
BCI action component properly typechecks the shell it's inserted in.
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2022-01-25 22:54:08 +00:00
Fikou
505e441495 Kinesis Module (#64151)
fixes #64029 (Springlock MOD module kills you even when you have Memento Mori necklace)
fixes #64136 (modsuits cant run out of charge)
fixes #64158 (trying to install a battery into a modsuit with free storage space places the battery into storage)
fixes #64186 (ModSuits : taking out cell doesn't give it back)
fixes #64161 (Modsuit cores disappear in construction)
makes mod jetpacks show particles indoors
gives the prototype suit back their upgraded cell (they literally lose 1% of power per 3 seconds with their current one)
Fully reworks the kinesis module to not be TK but lamer, it is now a gravitational anomaly locked module. 

Unique stuff that can be used in fun scenarios
2022-01-18 16:30:11 -08:00
Wallem
71162dee9b Sign Language translation glove changes (Plasmamen & MODsuits) (#64090)
Swaps the check for the gloves for people with the tongue-tied trait into a check for a clothing-based trait.
Makes a variant of the radio gloves for plasmamen, so they can be forced to use their hands too.
Makes a MODsuit mod that lets you sign over comms when your modsuit is activated.
2022-01-17 22:37:44 -06:00
Fikou
fd9a7f8a58 MOD update: Modular Cores (#64042)
* Modsuit update - Cores
2022-01-15 13:54:53 +01:00
Watermelon914
8fd85e9666 [MDB IGNORE] BIDDLE TRAITORS - Adds progression traitors. Refactors uplink code in its entirety (#63588)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: tgstation-server <tgstation-server@tgstation13.org>
Co-authored-by: gbfree <guillaumebfree@gmail.com>
Co-authored-by: Sealed101 <75863639+Sealed101@users.noreply.github.com>
Co-authored-by: Changelogs <action@github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
Co-authored-by: oranges <email@oranges.net.nz>
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: ike709 <ike709@users.noreply.github.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Pepsilawn <reisenrui@gmail.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: SuperNovaa41 <supernovaa41@protonmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: san7890 <34697715+san7890@users.noreply.github.com>
Co-authored-by: MMMiracles <lolaccount1@hotmail.com>
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: Aziz Chynaliev <azizonkg@gmail.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
Co-authored-by: Mooshimi <85910816+Mooshimi@users.noreply.github.com>
Co-authored-by: carshalash <carshalash@gmail.com>
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2022-01-11 15:47:10 -08:00
Iamgoofball
ed15f87bbe The Detective can now print .38 Rubber at the Security Protolathe. (#63855)
* Update weapon_designs.dm

* Update all_nodes.dm

* Update all_nodes.dm

* Update all_nodes.dm
2022-01-10 12:36:16 -05:00
Fikou
0e8e884f24 Adds Anomalock Modules! (#63836)
* Adds anomaly modsuit modules, various fixes for other modsuit modules
2022-01-06 20:40:28 -06:00
Y0SH1M4S73R
7234240a05 Circuit ID Components (#63817)
This PR adds several circuit components used for scanning and checking ID cards:

The Get ID component returns the ID the target is wearing or holding
The Read ID Info component returns the name, rank, and age registered on the ID
The Read ID Access component returns a list of all the accesses on the ID
The Access Checker component does comparisons on lists of numbers, specifically tailored for checking ID access
Due to the access checker using a similar UI element to the airlock electronics, that element has been moved to its own file in tgui/interfaces/common. This change is not player-facing.
2022-01-05 20:16:22 +00:00
Fikou
f58848e2ec modsuit patch one (#63638)
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2021-12-27 14:47:59 -08:00
Fikou
7b38dd4ff7 MODsuits (#59109) 2021-12-24 12:00:24 -08:00
vincentiusvin
d2eb1b05d1 Fixes an already fixed experiment discount price calculation bug (#63336) 2021-12-12 11:01:01 -08:00
Mothblocks
d9b874197b Replace slime extract experiments, required for biotech, with dissection surgery (#63033)
About The Pull Request

Adds back dissection surgery for the purposes of performing experiments. Replaces the existing slime extract fetch quests with dissection surgery for biotech, and adds xenomorph dissection as an extra discount (though I would like to see a node require it some day).
Why It's Good For The Game

Science has no incentive to actually scan slime extracts for biotech, as the primary consumer is medical.

In practice, this means that the grey slime extract experiment, which can be done round-start, is frequently left unperformed. This lets medical have some level of control over their research, while still leaving the actual act of researching the node into the hands of the science department, or heads of staff.
Changelog

cl
add: Added back dissection surgery, which can be used with an operating computer to perform experiments for research.
add: Biological technology's requirement has been changed from scanning one grey slime extract to performing a dissection surgery.
add: Advanced biotech's requirement has been changed from scanning three slime extracts to performing a dissection surgery on a nonhuman.
add: Xeno-organ biology and Alien Biological Tools' now have additional discounts for performing a dissection surgery on a xenomorph.
/cl
2021-11-26 11:32:54 +13:00
WarlockD
b17f9ba018 Wiremod assoc_literal circuit component was missing from the lathe (#62818)
Was looking for a way to make a cache list when I noticed the assoc_literal component wasn't in the lathe
I rather cache a list of stuff than continuously run foreach/searchs on data from the ntnet or otherwise.
2021-11-16 23:02:31 +00:00
Ghom
21c89ba12b Reagents scanner circuit component (#62704)
It allows people to make circuits objects that interface with reagents.
2021-11-10 19:35:44 +00:00
Ghom
45e7aeda84 Material Scanner circuit component (#62677)
* Material Scanner circuit component

* get_turf(src) to get_location()
2021-11-09 23:08:55 -05:00
John Willard
6c0aba5da4 removes double spaces AFTER symbols (#62515)
* removes double spaces AFTER symbols

* found more
2021-11-03 21:09:35 -04:00
Y0SH1M4S73R
9036c91504 Adds the assembly shell (#62307)
Adds the assembly shell, which can be attached to wires and other assemblies like proximity sensors, timers, etc. Because assemblies already have screwdriver interaction that gets overriden by the shell component, the regular assembly screwdriver interaction can also be performed with right-click. This can be seen on examine.
While currently, circuits can interact with wires and such using remote signalers and the radio component, this has its limits, such as the possibility that someone else uses the same frequency/code combo. With the assembly shell, you can put all your circuit logic into the attached assembly.
2021-11-02 21:28:11 +00:00
Mothblocks
0f3c4e51f7 Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed (#62265)
Implements the Modernizing radiation design document ( https://hackmd.io/@tgstation/rJNIyeBHt ) and replaces the current radiation sources with the new system, as well as replacing/removing a bunch of old consumers of radiation that either had no reason to exist, or could be replaced by something else.

Diverges from the doc in that items radiation don't go up like explained. I was going to, but items get irradiated so easily that it just feels pretty lame. Items still get irradiated, but it's mostly just so that radiation sources look cooler (wow, lots of stuff around going green), and for things like the geiger counter.

Instead of the complicated radiation_wave system, radiation now just checks everything between the radiation source and the potential target, losing power along the way based on the radiation insulation of whats in between. If this reaches too low a point (specified by radiation_pulse consumers), then the radiation will not pass. Otherwise, will roll a chance to irradiate. Uranium structures allow a delay before irradiating, so stay away!
2021-11-01 04:20:39 -03:00
Watermelon914
44a2af780d Integrated the component printer into the integrated circuit UI. You can now link integrated circuits to component printers (#62287)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-10-28 11:42:57 -07:00
Ghom
585f1119e3 Binary and Decimal Conversion Components. (#61889)
Added a couple components that convert a number into an array of binary digits and viceversa.
May help players mak more complex and advanced components without filtering those lacking knowledge in the binary field.
2021-10-23 08:03:26 +01:00
Mooshimi
7933de0f48 Put drone spawners back (#61836)
* adds 1 pipe

* add prefilled drone spawners to robo maints

* remove research node for drones

* remove drone from mech fab (uneeded)

* switch
2021-10-22 09:29:41 -04:00
Ghom
88b420d240 Trigonometry circuit component (#61885)
Adds a trigonometry circuit component to the game.
2021-10-16 19:25:30 -04:00
Ghom
9c7d509354 Printer Circuit Component (#62012)
I'm adding a circuit component that can print text string on a paper object in a variety of colors and font typefaces (currently only web-safe ones are available, maybe i'll add some fancy ones in the future but they'd need to be imported either through @import of @font-face in a separate CSS not imported by every tgui UI).
It's important to note that because the UI sanitizes new text inputed by users and not what's already written on the paper (so the pen_color and pen_font don't be purged in the process), we can't safely have these strings "printed" into the info variable directly, because of that these values will be stored in two new list variables, one for the text and one for font color, face and the signature. When the paper sheet UI is opened, these will be sanitized and then parsed into the text, so the next time the paper is edited we can clear these two lists.
Obviously better than a hacky byond proc - parsemarkdown() is outdated af -, albeit a bit messy... like the rest of paper code.

Requires #62033.
2021-10-14 19:37:39 +01:00
Ghom
6c5766c62e timepiece circuit module (#62039)
Adds a circuit component that outputs the station time in chosen format and unit of time when triggered. The options are currently 24-hour and 12-hour for the time format, hours, minutes and seconds for the unit of time.
The component is called timepiece because clock was already taken by another component that sends signal outputs at intervals.
2021-10-12 14:32:30 +01:00
Watermelon914
0cc06cf6ec Fixed dispenser and new circuit list components not being available (#61960)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-10-09 04:31:15 -07:00
Ghilker
cc3bf70da9 Rad collectors gone, tesla coils to generate power (#61917)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-10-08 17:03:52 -07:00
LemonInTheDark
c8684800ba Removes dead code in techwebs, alongside some truly evil macros (#61936)
fuck you kevin
2021-10-06 22:55:07 -07:00
Watermelon914
d15b305527 Refactors the list datatype to support composite lists. Adapts a lot of circuits to be able to properly use composite lists. Adds the dispenser shell (#61856)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Colovorat <35225170+Colovorat@users.noreply.github.com>
2021-10-06 22:51:36 -07:00
John Willard
4241ec8192 ovens can now be researched (#61804) 2021-10-01 15:59:03 -07:00
Sealed101
31839d0089 Adds a new type of Experiment Scans: Machinery Scanning (#61640)
* proof of concept

* pinpoint scan type

* whoops

* whoops take two

* parenting

* moving it all to use points, hacky desc edits included

* adding experiments to techweb v1

* v2 + descriptions

* v 2.5

* review compliance
2021-10-01 14:34:05 -07:00
TheSmallBlue
6fde2a7b9f Adds the Proximity Pinpointer circuit component! (#61574) 2021-09-21 17:12:29 -07:00
remuluson2
c7b390ba06 Razor Update (#61547)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-09-21 16:36:00 -07:00
DeltaFire
9ba53dff70 Makes copy_research_to slightly better, regarding revealing hidden techs (#61498) 2021-09-18 22:55:11 -07:00
Mothblocks
5a4c87a9fc tgui Preferences Menu + total rewrite of the preferences backend (#61313)
About The Pull Request

Rewrites the entire preferences menu in tgui. Rewrites the entire backend to be built upon datumized preferences, rather than constant additions to the preferences base datum.

Splits game preferences into its own window.

Antagonists are now split into their individual rulesets. You can now be a roundstart heretic without signing up for latejoin heretic, as an example.

This iteration matches parity, and provides very little new functionality, but adding anything new will be much easier.

Fixes #60823
Fixes #28907
Fixes #44887
Fixes #59912
Fixes #58458
Fixes #59181
Major TODOs

Quirk icons, from @Fikou (with some slight adjustments from me)
Lore text, from @EOBGames (4/6, need moths and then ethereal lore from @AMonkeyThatCodes)
Heavy documentation on how one would add new preferences, species, jobs, etc

    A lot of specialized testing so that people's real data don't get corrupted

Changelog

cl Mothblocks, Floyd on lots of the design
refactor: The preferences menu has been completely rewritten in tgui.
refactor: The "Stop Sounds" verb has been moved to OOC.
/cl
2021-09-15 10:11:11 +12:00