* Add a long-range version of the gas analyzer (#68051)
* Add a long-range version of the gas analyzer, a tier 2 engineering variant of the analyzer.
* Remove our version
* new iicon??
* CORRECTLY NAMED new icon
* remove old node
Co-authored-by: FinancialGoose <92416224+TheBoondock@users.noreply.github.com>
* Combat mech research nodes now require mech-themed experiments rather than bomb experiments. (#67756)
* Mechs require a new Mech scanning experiment centered around damaging/destroying mechs, instead of being behind weaponry, which requires ordnance research.
* Combat mech research nodes now require mech-themed experiments rather than bomb experiments.
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* Watering cans for botany (#67712)
* Watering cans for botany
* Clean up weird bugs by just coding the feature out
* 70u for the old can and /// like it should be
* Updated can icons courtesy of Wallem
* Swaps botany buckets for watering can on maps
* A line
* Watering cans for botany
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Adds the Active Sonar mod to the game. (#67828)
Adds the Active Sonar Module to the game, a module which lets you see the locations of living creatures within a 9 tile radius.
It can be attained by researching Security Modules, and then printed like any other module.
It takes 3 complexity to house, has a 25 second cooldown, and takes a good amount of energy to use.
* Adds the Active Sonar mod to the game.
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
* Projectile Dampener Module is now printable (#67390)
* The projectile dampenaer MODsuit module can now be researched through security modsuit node, and can be printed.
* Projectile Dampener Module is now printable
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
* Fishing, Version 1 (#67691)
Adds fishing and fishing minigame.
You use fishing rod to fish.
Equipping specific bait/hook/reels will affect your success chances.
You can fish out fish,items and other things.
Fishing Equipment
Fishing rods have three slots: Bait, Reel and Hook.
Any food can be used as bait but dedicated bait makes fishing easier.
You can buy hook and line sets
New bait types:
Worms : Buy can of them at cargo (alternative acquirement method pending)
Doughballs : Use knife on flat piece of dough to get five of them.
Fishing rod types:
Basic : Print these at the lathe, nothing fancy here.
Tech: Experimental tech. Provides infinite bait
Fishing rods can also hook and reel normal items.
Equipment screen and reeling video
Fishing spots
Keep in mind this PR is meant to add the basic systems and i intend to fill these with more fish in future PR's so wait with suggestions until then.
Lavaland lava (no fish here right now, just other stuff), requires reinforced line to fish in.
Maintenance moisture traps.
Beach away mission water.
Fishing portal available for purchase from cargo - This is stopgap until we fill more spots.
Difficulty depends on fishing spot, fish type, and the fish traits and rod setup combinations.
All fish types can have specific traits, most common ones being favourite and disliked bait types/categories.
Other
Fishing catalog now lists fishing related info
New admin debug verb, fishing calculator that show probabilities with different setups so it's easier to balance this.
Fish now have average weight and size. Make sure to boast if you catch a big one.
Adds tgui mouse passthrough
Screens
Sprites:
Fishing portal sprite by @ ArcaneMusic
Other sprites by @ Mey-Ha-Zah
Bad ones by me. (Could still use better fishing minigame backgrounds)
Sounds:
https://freesound.org/people/soundscalpel.com/sounds/110393/https://freesound.org/people/soundslikewillem/sounds/343748/
* Fishing, Version 1
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
* Add Aviators and Aviator HUDs
* fuckkkk it wasnt in tgstation.dme 💀
* Add toggleable modes for the Aviator HUDs
* fix missing sprite for on_mod aviator_sec_flash
* Add Aviator HUDs to techtree
* Add retinal projector meson
* Change AviatorSec from red to blue sec theming
* ofcourse I forgot the on_mob sprites
* Fix small naming bug
* Make retinal projectors not brighter
* Add more retinal projectors
* Fix some issues with retinal projector sprites
* Add Aviators (HUD+Prescpt) and Ret.Proj to loadout
* Jesus fuck why did I try refactoring super tired
* Add civilian retinal projector
* Add Science Aviators and Ret.Proj
* Fix inconsistent indentation clothesmate.dm
* Implement modes (flash/cont/off) into retinal proj
* Add research node for science aviator
* Add Ret.Proj to techtree and designs
* Split designs into designs.dm
* block spacing + early return tenary for proc
* Boil other procs down to one mode toggle + misc
* Messed up code indentation in all_nodes.dm
* Take out suicide message for aviators
* Oops, apparently ..() is absolutely meaningless if no parent is defined
* Update modular_skyrat/modules/modular_items/code/modular_glasses.dm
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Remove single-char vars
* Apply reviews to loadout,descriptions and tinting
* Make fake aviators a subtype of fake sunglasses
* add \improper to the parent AR type
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Instead of printing to chat, print as balloon
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* When AI rolls "Unique AI" station trait, upload modules won't be available until research, and research requires more points. (#66633)
Rolling unique AI station traits removes boards from map and changes research costs of other lawsets.
* When AI rolls "Unique AI" station trait, upload modules won't be available until research, and research requires more points.
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Standardizes ID cases and fixes cell charger/APC module (#67168)
Removes cell chargers showing up twice in Industrial Engineering, and fixes the APC module's sprite.
To prevent more bugs like this, I standardized other IDs to all use snake_case.
* Standardizes ID cases and fixes cell charger/APC module
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* MODsuit module update: new stuff and improved old stuff (#67042)
Doubles the range of the MOD Pathfinder AI
Fixes modules rendering below the suit.
Adds the ability for modules to be used when inactive.
Documents/cleans up some code.
Updates some old descriptions and explains some concepts better.
Armor Booster and Ash Accretion can no longer boost your speed over no slowdown at all.
Makes flashlight module start with 4 instead of 3 range, so it's better for people that don't know about configuration.
Doubles t-ray module range, from 2 to 4 (t-ray scanner is 3).
Puts the noslip module lower in progression, lowers its' price to 2.
New sprites for the magnetic harness module by Onule.
Brings back the holster module, it can now be used when the suit is inactive, can be printed with security suit research.
Adds the power kick module for the ERT Commander. It's a powerful kick.
* MODsuit module update: new stuff and improved old stuff
* should be all
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
* Printable N-Spects (#66510)
Makes N-Spects printable (unlocked with Basic Security Equipment) and removes the line in their description about them being hard to replace.
* Printable N-Spects
Co-authored-by: Spock <zacharysdf@gmail.com>
* updateDialog and updateUsrDialog cleanup (#66494)
This PR focuses on cleaning up two procs - updateDialog and updateUsrDialog. Both of which are/were used updating for old HTML UIs. As these UIs got converted to TGUI over time, these old code fragments started to pile up, often due to coders simply overlooking them. This resulted in them being dead code doing nothing when called, or randomly opening up windows when they shouldnt, for example when a vending machine is screwdrivered and UI cannot even be interacted with.
However, there were also some desirable uses - like opening a window when an ID is inserted into civilian bounty console, which you are then gonna obviously use to pick a bounty. I kept these uses and replaced them with proper ui_interact, so they now always work, instead of them working only when you had them set as a currently used machine on mob. The list of these changes is:
Civilian Bounty Console will now always bring up its UI when you insert the ID.
Air Alarm and APC will now always bring up its UI when you unlock their controls.
Portable Chem Mixer, Chem Dispenser, Chem Heater, Improvised Chem Heater, Chem Spectometer and Chem Master will now always bring up their UI when you add or replace beaker to them.
Two old /Topic calls were cleaned up as well, as they were no longer relevant.
Removes dead or outdated code, adds sensible UX when working with certain UIs.
* updateDialog and updateUsrDialog cleanup
Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
* Circuit laserpointers (#66175)
* unfinished circuit laserpointer module
If this makes a pr I will be very mad
* Almost done making it function
* adds it to the research path
* lets it be logged
* Makes it work and printable
* removes felinid moving to save time dilation + removes cyborg stun because just no
* minor changes
* removes unused var oops
* guh?? (alphabet)
* Circuit laserpointers
Co-authored-by: Bond <58570888+TheBonded@users.noreply.github.com>
* Turbine Rework (#65586)
This PR rework the atmos turbine into a 3x1 multiblock machine.
The calculations are now done by simulating the flow of gases and expansion work that they do inside the turbine (heavily simplified), now a pressure differential between the inlet and outlet will heavily change the output of current that the machine is able to deliver.
The machine will not use stock parts for upgrades, but instead it will use 3 main components that are to be made by hand (except for the first tier that can be printed)
Those are compressor part, rotor part and stator part.
There are 4 tiers to them where the last one will use metallic hydrogen to be made, but will significantly increase the output and resistance of the machine.
-- Docs for the turbine:
A work based engine that “simulates” the flow of gas to calculate the energy produced by the moving gases.
These gases cool down while passing through due to the work done on the turbine blades and the expansion it get inside the machine
The new turbine
The machine will be expanded into a 1x3 multiblock machine that will accomodate 3 parts to it:
An input compressor
An output turbine
A core rotor
There are 3 other main component that are:
The Compressor Blade part
The Rotor Shaft part
The Stator Generator part
These three are the main (and only) upgrade path the machine can follow.
Parts
Input Compressor
It handles the input of gases inside the machine, it contains the Compressor Blade part.
This part moves the gas in, compresses it and increases its temperature by the amount of work the compression of the gas does.
Output Turbine
It handles the output of the gases outside the machine, it contains the Stator Generator part.
The gases moving through will expand 6x the initial volume and cools down before getting expelled.
Core rotor
Main part of the multiblock machine. It contains all the logic for building and processing the turbine.
Can be connected to a computer for control.
Contains the Rotor Shaft part.
Upgrades
The three installable parts can be upgraded with specific sheets to improve their efficiency and resistances. Each tier up will increase the max RPM reachable by the turbine and the max input temperature that the machine can take before starting to be damaged.
Each first tier part can be printed in any Lathe (proto/auto) but it requires hand crafting with different materials to be upgraded.
Compressor Blades can be upgraded with plasteel, titanium and metallic hydrogen.
Rotor Shaft can be upgraded with plasteel, titanium and metallic hydrogen.
Stator Generator can be upgraded with titanium, metallic hydrogen and zaukerite.
-- End docs
Fixes#50667 (Infinite power generation by piping turbine output into its input. This worked because there was no temperature threshold, and the cost of applying pressure via pumps was lower then the power generated -Lemon)
Better turbine in many aspects, preparation for SM rework
* Turbine Rework
* conflicts
* ew
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Science Night Vision Goggles (#65867)
This adds science NV goggles to the game, (chemscan night vision goggles) available after NV tech is researched. And gives a research scanner to science sunglasses.
* Science Night Vision Goggles
Co-authored-by: Ebb-Real <95765134+Ebb-Real@users.noreply.github.com>
* Reworks & TGUIs mecha equipment (#65375)
TLDR
Mech UI now TGUI: https://streamable.com/ahjydy
Mechs now use "slots" for equipment
They can only mount 2 guns(left and right arm, left and right click to use)
Tesla & Concealed bay is removed
Removed mech damage deflection
Full list of changes
Note: weapons in this section refer to all click-using equipment such as guns/hydraulic clamp/etc
Hackmd: https://hackmd.io/lgr-LetfSKyHzPP0zQUXPA
Tesla has been removed (Tesla gives you effectively infinite power on station and off station(where the design direction for mechs is intended) they are useless)
Concealed mech bay has been removed (Concealed mecha bay relied on selection for visibility so it doent make sense to exist when all equips are "selected", the code was bad (instead of flag or something you just used locate() everywhere)
Honker no longer has snowflake UI (I'm sorry but if I have to make a third UI for this im going to go insane)
Mechs now mount 2 arm weapons, and certain amount of "utility", "armor" and "power" module types
The two arm weapons do not share a cooldown anymore UNLESS they are identical weapons
left click to shoot left weapon right click for right weapon, this will shoot the weapon unless you click next to you with a ranged weapon it will then try to melee (This also applies to attaching the weapon to the mech)
It is no longer possible to deflect or have multipliers for damage from innate or armor sources, armor will now just apply a direct armor change
Since plasma generator needed to be selected to use you now need to click on the power generator with a stack of plasma to refill it
Internal damage:
The mech no longer needs to be low health to take internal damage
Internal damage now no longer has several convoluted ways to fix each different type and is now a timed action performed in the UI
Weapons no longer have an RNG chance to be damaged or immediately deleted by damage
Weapons will now take damage aimed at the right and left arms respectively, this can be repaired using the new UI. NOTE: this is intended to be implemented as weapon/module disabling but I left it out of this PR to try resemble some shortness
Both internal and equipment damage have minimum thresholds of damage required in a hit before they attempt to check whether the mech should take internal or equipment damage, teh threshold is lower for equipment damage
You can no longer reload weapons using energy
Demo Video
https://streamable.com/ahjydy
* Reworks & TGUIs mecha equipment
* Update firefighter.dm
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: SkyratBot <skyratcommunity@gmail.com>
* 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
* BCI component expansion
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
* 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.
* Adds view sensor
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
* 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.":
* Adds format (associative) list wiremod component
Co-authored-by: Tastyfish <crazychris32@gmail.com>
* 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
* Hand labeler paper roll and toner cartridge can be printed at autolathe and protolathes now
Co-authored-by: Tortoise <64306407+OneAsianTortoise@users.noreply.github.com>
* fixes mod plating being called armor in some places (#65314)
* saucy jack
* wario
* fixes mod plating being called armor in some places
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* 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).
* Pepper spray module for sec modsuits, Atmos resin module and nukie pyro bundle flamethrower made into module
Co-authored-by: Cursed <47064429+Amrabol@users.noreply.github.com>
* 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
* Adds a trigger version of the variable setter circuit component
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* 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.
* Actually fixes illegal tech.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* 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>
* Adds basic list manipulation and fixes some performance issues with lists in integrated circuits
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>