Commit Graph

76 Commits

Author SHA1 Message Date
SkyratBot
067188d366 [MIRROR] Micro-optimize qdel by only permitting one parameter [MDB IGNORE] (#25889)
* Micro-optimize qdel by only permitting one parameter (#80628)

Productionizes #80615.

The core optimization is this:

```patch
-	var/hint = to_delete.Destroy(arglist(args.Copy(2))) // Let our friend know they're about to get fucked up.
+	var/hint = to_delete.Destroy(force) // Let our friend know they're about to get fucked up.
```

We avoid a heap allocation in the form of copying the args over to a new
list. A/B testing shows this results in 33% better overtime, and in a
real round shaving off a full second of self time and 0.4 seconds of
overtime--both of these would be doubled in the event this is merged as
the new proc was only being run 50% of the time.

* Micro-optimize qdel by only permitting one parameter

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-12-29 14:41:12 +00:00
SkyratBot
92ccf289fd [MIRROR] Mech Stress Test Experiment is now SIGNIFICANTLY LESS ASS to do [MDB IGNORE] (#25651)
* Mech Stress Test Experiment is now SIGNIFICANTLY LESS ASS to do (#80220)

## About The Pull Request

The Stress Test 1 experiment now only requires ONE mech to be broken
down, and the margin of error of the percentage is much more lenient,
being 5% up or down (it was previously only 2%).
## Why It's Good For The Game

This experiment is painful to do right now, the process usually involves
making TWO mechs, damaging them *very close* to the arbitrary percentage
the experiment requires, scan it, realize you went too low so you gotta
weld it back up and start hitting it with your crowbar again, scan it,
get the experiment, pick up the SECOND experiment, kill the mechs, scan
THOSE. Everyone finds these a pain in the ass
## Changelog
🆑
balance: Exosuit Materials 1 now only requires one mech.
qol: Exosuit Materials 1 is much more lenient on the percentage it
requires.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>

* Mech Stress Test Experiment is now SIGNIFICANTLY LESS ASS to do

---------

Co-authored-by: DATAxPUNGED <44149906+DATA-xPUNGED@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
2023-12-16 10:43:46 -05:00
SkyratBot
6be86b27ab [MIRROR] Replaces the Exosuit Materials 2 experiment with one about equipping mechs rather than destroying them. [MDB IGNORE] (#25621)
* Replaces the Exosuit Materials 2 experiment with one about equipping mechs rather than destroying them. (#80267)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request
Replaces "Exosuit Materials 2: Excessive Damage Test" with "Exosuit
Materials 2: Load Strain Test". Rather than building and then destroying
two exosuits, you now equip them with any two (compatible) main
equipment pieces. Once the experiment is done, you'll have two exosuits
still, so consider making exosuits that you can donate to other crew
afterwards.

Note that the exosuit *has* to be built by the crew. Round-start
exosuits (or those obtained through other means like the nuke ops'
uplink) will not work.
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game
The idea of creating and destroying a few rounds of mechs sounds like a
neat concept. But in practice, it burns through station resources for no
real good reason, and is somewhat antithetical to the idea of robotics
making mechs for other departments. With this change, you're still
required to make the two mechs if you want the discount, but now they'll
be available afterwards. If someone has requested a mech for their
department, for example, you can now accomplish that and part of this
experiment simultaneously.

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
add: Adds a new discount experiment for unlocking the combat exosuit
nodes - complete it by scanning two exosuits with equipment in the left
and right hand slots. This replaces the prior discount experiment about
destroying exosuits.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

* Replaces the Exosuit Materials 2 experiment with one about equipping mechs rather than destroying them.

---------

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
2023-12-14 18:07:33 -06:00
SkyratBot
3658c80e57 [MIRROR] Explodes device.dmi [MDB IGNORE] (#25523)
* Explodes device.dmi

* Demodularize these

* Update traitordevices.dm

* Update traitordevices.dm

* Modularizes hypnotic flash

* Modular dmi repath

* Modular dmi repath

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-12-09 09:48:43 -05:00
SkyratBot
7dd661f342 [MIRROR] basic cats and mini kitchen helpers [MDB IGNORE] (#25330)
* basic cats and mini kitchen helpers (#79800)

## About The Pull Request
this pr transforms cats into basic pets! cats now have some new
behavior. they can carry fish and hunted mice in their mouths to deliver
it to kittens, and kittens will eat them.

![catmouse](https://github.com/tgstation/tgstation/assets/138636438/8f146be4-c7b2-41d3-8301-734be49b5efc)

![catfish](https://github.com/tgstation/tgstation/assets/138636438/f8df54f2-9183-406d-afbd-f90f415f7f3d)

if a kitten sees you holding food, it will point at you and meow loudly
until u give it the food.
becareful when putting male cats near each other, there is a small
chance they get into a heated argument and meow loudly at each other
until one of them flees.
also added a new small cat house for cats. cats will use these homes if
u build one near them (using 5 wood planks)

![cathouse](https://github.com/tgstation/tgstation/assets/138636438/9515a78c-fdfe-461b-bad2-6b497117c694)

Chefs can craft the cake cat and breadcat. these are useful cats because
they can help the chef around in the kitchen. they will turn stoves and
grills off when food is ready, so they dont burn. and the cake cat will
help the chef decorate his donuts

## Why It's Good For The Game
refactors cats into basic mobs and gives them a deeper ai

## Changelog
🆑
refactor: cats are now basic pets. please report any bugs.
add: the cake cat and bread cat can now help the chef around in the
kitchen
/🆑

* basic cats and mini kitchen helpers

* Modular

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-12-03 00:37:58 -05:00
SkyratBot
41b466f8a9 [MIRROR] [NO GBP] fish analyzers can now be actually used for experiments. [MDB IGNORE] (#24408)
* [NO GBP] fish analyzers can now be actually used for experiments. (#79030)

## About The Pull Request
I've forgot that, for some reasons, both experiments and experiment
handlers have an experiment(or) whitelist var.

## Why It's Good For The Game
This will fix #78921

## Changelog

🆑
fix: Fish analyzers can now be actually used for experiments.
/🆑

* [NO GBP] fish analyzers can now be actually used for experiments.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-10-17 16:34:22 -07:00
SkyratBot
baed0aaf6f [MIRROR] [NO GBP] Fixed a few more issues with fishing. [MDB IGNORE] (#24285)
* [NO GBP] Fixed a few more issues with fishing. (#78904)

## About The Pull Request
fix: Examining twice experiment handlers with an active fish-related
experiment now gives a comprehensible, correctly spaced list of scanned
species rather than something like "pufferfishguppyslimefishchasmchrab".
fix: No more "line snapped" balloon messages everytime the fishing
minigame is over
fix: Getting to the Master level of the fishing skill now correctly
gives you that slight helping hand to identify yet-to-be-caught fishes.

## Why It's Good For The Game
Taking care of some issues I've noticed just yesterday.

## Changelog

🆑
fix: Examining twice experiment handlers with an active fish-related
experiment now gives a comprehensible, correctly spaced list of scanned
species rather than something like "pufferfishguppyslimefishchasmchrab".
fix: No more "line snapped" balloon messages everytime the fishing
minigame is over
fix: Getting to the Master level of the fishing skill now correctly
gives you that slight helping hand to identify yet-to-be-caught fishes.
/🆑

* [NO GBP] Fixed a few more issues with fishing.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-10-11 19:56:59 -04:00
SkyratBot
0c9149bf35 [MIRROR] Refactor gib code to use bitflags and have documentation [MDB IGNORE] (#24143)
* Refactor gib code to use bitflags and have documentation

* Modular updates

* Modular updates

* Modular updates

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-09 15:00:17 -04:00
SkyratBot
13a9abdf2c [MIRROR] The fishing portal generator expansion (plus skill-chip) [MDB IGNORE] (#24052)
* The fishing portal generator expansion (plus skill-chip) (#78203)

## About The Pull Request
This is a PR I worked on last month, but had to put on hold while
dealing with some pressing issues with fishing feature, minigame and
other stuff, and because I had to atomize out some of the stuff
previously present here.

I've expanded on the fishing portal generator to do something other than
dispense guppies and goldfishes. It now has multiple settings,
unlockable by performing scanning experiments for fish types, available
from the get go, which also reward a meager amount of techweb points
upon completion. The generator can now be built too. No longer it has to
be ordered from cargo.
It can also be emagged for the syndicate setting, tho right now it only
dispenses donkfish and emulsijack, both otherwise impossible to get
outside of... exodrone adventures.

The advanced fishing rod now comes with an experiment handler component,
specific to the fish scanning experiment, that automatically scans
fished content. The node to get it now requires 2000 points and the
first fish scanning exp to be unock.

A new skillchip has been added, which adds a trait that changes the icon
of the fish shown in the minigame UI, giving some clues on what the
reward will be. The same trait is also gained by reaching the master
(penultimate) level of the fishing skill.

A new fish type has been added, with its own quirks. One of these quirks
included temporarily switching movement direction of the bait.
Currently, it can only be fished in the hyperspace and randomizer
setting of the fishing portal.

Screenshots:
![fuck
yea](https://github.com/tgstation/tgstation/assets/42542238/b4c75951-fa07-44ae-99ee-f602adf8a5a4)

![radial](https://github.com/tgstation/tgstation/assets/42542238/68ff21d8-69fd-4ba5-aa58-9976b6e3282f)

## Why It's Good For The Game
The fishing portal generator is but a stale and underdeveloped prototype
of the fishing feature right now, so much I was thinking of removing it
at first. However, we also have a lot of fishes which are pretty much
unfishable, so I came up with the idea of adding new portal settings
that allow people to actually get them.

As for the skillchip and trait, it's but an extra to both the vending
machine in the library and the fishing skill itself, which has an
overall humble impact on the minigame.

## Changelog

🆑
add: Expanded the fishing portal generator. It now comes with several
portal options that can be unlocked by performing fish scanning
experiments, which also award a modest amount of techweb points.
balance: The fishing portal generator is now buildable and no longer
orderable. The board can be printed from cargo, service and science
lathes.
balance: Advanced fishing tech is no longer a BEPIS design. It now
requires the base fish scanning experiment and 2000 points to be
unlocked.
add: The advanced fishing rod now comes with an incorporated
experiscanner specific for fish scanning.
add: Added a new skillchip that may change the icon of the "fish" shown
in the minigame UI to less generic ones. Reaching master level in
fishing also does that.
qol: The experiment handler UI no longer shows unselectable experiments.
/🆑

* The fishing portal generator expansion (plus skill-chip)

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-09-30 23:41:29 -04:00
SkyratBot
964fc99589 [MIRROR] Feature: bitrunner, a new supply role (READY) [MDB IGNORE] (#23865)
* Feature: bitrunner, a new supply role (READY)

* Delete bepis.dm

* Conflicts

* Update dynamic_rulesets_midround.dm

* Fixing this invalid icon file path

It was trying to use the aesthetics one

* Bepis is dead

* New digi sprites courtesy of CandleJaxx!!

Now in the correct branch!

* Fixing merge conflict

* bitrunning hotfixes [NO GBP]

* Modular health adjustments

* Revert "Modular health adjustments"

This reverts commit 0ff3c48d398f6c1aac51cdf8fecaf869491bbc86.

* Modular health adjustments

Only this one should be necessary

* The screenshot test

* Bitrunner den for voidraptor (FOR #23865) (#23891)

* no shower in sight

* lets bitrunners actually get to their room and spawn there

* New digi sprites courtesy of CandleJaxx!!

* Revert "New digi sprites courtesy of CandleJaxx!!"

This reverts commit eea9f47de256dd407c78450bc8f2a09b814f93e9.

---------

Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>

* Removes bitrunning unit tests (#78607)

## About The Pull Request
Removes the fraction of unit tests I thought would be safe.
Not thrilled that I have to exclude ALL unit tests now, but hey.

The issue is that atmos attempts to process on a turf which hasn't
initialized yet.
## Why It's Good For The Game
Other PRs can pass checks now
## Changelog
N/A

* Update birdshot.dmm

* Tweaks the BEPIS category of the bitrunning order console

* Adds back the flashdark that we had skyrat edited in

* Update tgstation.dme

* Fixes Voidraptor bitrunning den not being connected to the powergrid

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-09-29 20:53:36 -04:00
SkyratBot
8cdc0fbe61 [MIRROR] Refactors Snakes into Basic Animals [MDB IGNORE] (#23972)
* Refactors Snakes into Basic Animals (#78612)

* Refactors Snakes into Basic Animals

* Modular paths

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-09-28 03:21:34 -04:00
SkyratBot
0f26bdc5bb [MIRROR] gas connector component [MDB IGNORE] (#23974)
* gas connector component (#78273)

* gas connector component

* Update paths

---------

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-09-28 02:23:34 -04:00
SkyratBot
18fc2d9b16 [MIRROR] Oldstation now has their own RND [MDB IGNORE] (#23567)
* Oldstation now has their own RND

* Update oldstation_fluff.dm

* Update techweb_types.dm

* beaker capacity

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-09-07 22:36:11 -04:00
Bloop
b6ccdfa8d3 [MISSED MIRROR] Moves the botanogenetic shears to the botany node and locks it behind a botany experiment (#67363) (#23152)
* Moves the botanogenetic shears to the botany node and locks it behind a botany experiment (#67363)

* Update code/modules/research/techweb/all_nodes.dm

---------

Co-authored-by: SovietJenga <102672798+SovietJenga@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-08-17 16:56:54 -04:00
SkyratBot
1aa547866c [MIRROR] Cybernetic Moth Eyes : Cybermoff 2077 [MDB IGNORE] (#23140)
* Cybernetic Moth Eyes : Cybermoff 2077

* Update _eyes.dm

* Modular adjustments, and cleans up some skyrat edits while we're here

* Adds the moth cybereyes as augment options

* Revert "Adds the moth cybereyes as augment options"

This reverts commit 7c91d01ed0c14d4a3ec435b2fc878267a7b8618b.

* Update organs.dm

* Update internal_HA.dmi

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-08-17 09:59:00 -04:00
SkyratBot
5486304676 [MIRROR] Anomaly gear: Polymorphic Field Inverter [MDB IGNORE] (#22963)
* Anomaly gear: Polymorphic Field Inverter (#77383)

## About The Pull Request

Adds a new device you can research called the "Polymorphic Field Inverter".
It requires Advanced Biotechnology and Anomalous Research to unlock.

Completing that research lets you print out a fancy belt. Using it for 5
seconds on a mob (dead or alive) which is organic in nature and isn't
some kind of human or megafauna (monkeys are fine) will store a copy of
its DNA. Scanning another creature will replace the original stored DNA.
Storing DNA does absolutely nothing unless you have also inserted an
active Bioscrambler core.

If the item is activated with a Bioscrambler core then equipping it
grants you the ability to transform into the same kind of creature as
the one you scanned (and back). As in spells such as Wildshape you share
health with your transformed form and if you die while transformed then
you die, so be careful when turning into something like a cockroach
which has one hit point.

It has an associated experiment which makes the research free, which is
to scan two humans with (non-prosthetic) organs that they didn't have
when the round started. You can accomplish this through surgery, DNA
infusion, or a bioscrambler anomaly. You can do it on some monkeys if
nobody is cooperating with you.
I copied a teeny bit of this code from #73969 although I didn't actually
end up needing most of it.

These are absolutely codersprites so if anyone wanted to make cooler
ones, let me know.

* Anomaly gear: Polymorphic Field Inverter

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-08-09 16:53:19 -04:00
SkyratBot
af53b642e4 [MIRROR] Dissection experiments are handled by autopsy surgery. Removes redundant dissection surgery. You can repeat an autopsy on someone who has come back to life. [MDB IGNORE] (#22936)
* Dissection experiments are handled by autopsy surgery. Removes redundant dissection surgery. You can repeat an autopsy on someone who has come back to life.

* Update all_nodes.dm

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-08-08 09:29:33 -04:00
SkyratBot
2f552919c1 [MIRROR] Icons folder cleaning wave two [MDB IGNORE] (#22454)
* Icons folder cleaning wave two

* Merge conflict resolution

* Modular path hell

* hmm

* Update 2022-10.yml

* Another modular thing

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-16 00:41:18 -04:00
SkyratBot
e264ee3644 [MIRROR] Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts [MDB IGNORE] (#22469)
* Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts

* Update communications.dm

* Modular override

* Some modular adjustments, removes 'emagged' vars in favor of obj_flags

* whoops, mobs don't have obj_flags.

---------

Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 16:46:17 -04:00
SkyratBot
d52445f5df [MIRROR] Turns Chickens into Basic Mobs [MDB IGNORE] (#21414)
* Turns Chickens into Basic Mobs (#75592)

* Turns Chickens into Basic Mobs

* modular

* Update VoidRaptor.dmm

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2023-05-28 23:42:43 +00:00
SkyratBot
c4d4e1da63 [MIRROR] Minerals have been refactored so costs and minerals in items are now in terms of mineral defines. [MDB IGNORE] (#20916)
* Minerals have been refactored so costs and minerals in items are now in terms of mineral defines.

* AI GEN RUN ONE

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-03 22:48:10 +01:00
SkyratBot
3464b6bfb2 [MIRROR] Refactors Regenerate Organs, and a few organ helpers [MDB IGNORE] (#20094)
* Refactors Regenerate Organs, and a few organ helpers

* MERGE CONFLICTS

* GETORGANSLOT > GET_ORGAN_SLOT

* GETORGAN > get_organ_by_type

* lint repairs

* more lint

* Update tgstation.dme

* Update surgery_step.dm

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-01 02:51:06 +01:00
SkyratBot
601a7f53f0 [MIRROR] Experisci now works if at least one RD server works on your z level [MDB IGNORE] (#20148)
* Experisci now works if at least one RD server works on your z level (#74123)

## About The Pull Request

Experiment handlers now work if at least one RD server works on your
z-level, rather than only checking the first. It was originally done in
a lazy way, and I'm going back on that now to make it more responsive
for players.

## Why It's Good For The Game

This will allow things like off-station and Lavaland to be added to
experisci stuff, which I think would be nice as we can make
mining-related experiments for mining tech just as how there's medical
experiments for medical tech.

It also lets off-station ghost roles do experiments if they don't want
to be a jackass and just waste points, which I think is a positive until
off-station techwebs are added.

## Changelog

🆑
fix: Experimentors can connect to techwebs that have at least one RD
server on the level.
/🆑

* Experisci now works if at least one RD server works on your z level

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-03-29 22:30:34 +01:00
SkyratBot
6c978308c7 [MIRROR] Completing experiments after their associated nodes have been researched gives back a partial refund of the discount lost [MDB IGNORE] (#19743)
* Completing experiments after their associated nodes have been researched gives back a partial refund of the discount lost (#73814)

## About The Pull Request

So we're like simultaneously moving two vague directions with research.
One being "experisci grants discounts for prohibitively expensive nodes
so you want to do the experiments to discount them" and the other being
"Let's give Heads of Staff a way to research anything they want without
any communication to the research department, including the very
expensive nodes that scientists may be working on"

You already see the issue, right? You can't have your cake and eat it
too.

It sucks for scientists to be working on a complex experiment like
weapons tech for that huge 90% discount only for the HoS to stumble onto
the bridge and research it anyways. Your time is wasted and RND is
slowed down massively.

We can do something to assuage that.

This PR makes it so completing an experiment which discounts already
completed nodes will refund a partial amount of the discount that
would've applied.

For example, researching industrial engineering without scanning the
iron toilets will refund ~5000 points.

This can only apply once per experiment, so if an experiment discounts
multiple technologies, they will only get a refund based on the first
technology researched.

## Why It's Good For The Game

This accomplishes the following:

- Expensive research nodes with difficult experiments remain expensive
without completing the experiments. If no one does the experiment, they
act the same as before.
- Expensive research nodes with very easy experiments (but time
consuming) no longer put RND on a time crunch to beat the itchy trigger
finger of the Heads of Staff. Stuff like scanning lathes allow the
scientists to work more at their own pace: they can talk to people or
maybe stop at the bar or kitchen between departments without feeling
pressure to get it done urgently.
- Scientists are able to complete experiments which previously were no
longer deemed relevant if they need a point injection. Experiments left
behind are no longer completely useless bricks. Maybe even gives
latejoin scientists something to do.
- Scientists mid experiment can still complete it to not feel like their
time is wasted.

Overall I think this has many benefits to the current science system
where many have complaints.

## Changelog

🆑 Melbert
qol: Completing an experiment which discounts a researched tech node
will give a partial refund of the discount lost. For example,
researching the industrial engineering research without scanning iron
toilets will refund ~5000 points if you complete it afterwards. This
only applies once per experiment, so experiments which discount multiple
nodes only refund the first researched.
/🆑

---------

Co-authored-by: san7890 <the@ san7890.com>

* Completing experiments after their associated nodes have been researched gives back a partial refund of the discount lost

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-03-09 20:08:46 +00:00
SkyratBot
d9a813b3de [MIRROR] Makes datum stock parts work for Stock parts Experiment purposes 2: Electric Boogaloo [MDB IGNORE] (#18738)
* Makes datum stock parts work for Stock parts Experiment purposes 2: Electric Boogaloo (#72708)

## About The Pull Request
Fixes #72694
#72559 changed the requirements for pinpoint machine scanning
experiments to datums on accident, so to hopefully prevent further
mishaps I've commented the var further.

## Why This Speaks Volumes On The State Of Experi-Sci (Or Sybil RnD)

![image](https://user-images.githubusercontent.com/75863639/212465375-256fc9be-ef1f-4619-88cb-fb372b47ddc4.png)
____

![image](https://user-images.githubusercontent.com/75863639/212465379-dc48f1ab-6790-497b-b353-4bb8090feccb.png)

## Changelog
🆑
fix: pinpoint machine scanning experiments work again (again)
/🆑

* Makes datum stock parts work for Stock parts Experiment purposes 2: Electric Boogaloo

* Makes datum stock parts work for Stock parts Experiment purposes 2: Electric Boogaloo (#72708)

## About The Pull Request
Fixes #72694
#72559 changed the requirements for pinpoint machine scanning
experiments to datums on accident, so to hopefully prevent further
mishaps I've commented the var further.

## Why This Speaks Volumes On The State Of Experi-Sci (Or Sybil RnD)

![image](https://user-images.githubusercontent.com/75863639/212465375-256fc9be-ef1f-4619-88cb-fb372b47ddc4.png)
____

![image](https://user-images.githubusercontent.com/75863639/212465379-dc48f1ab-6790-497b-b353-4bb8090feccb.png)


## Changelog
🆑
fix: pinpoint machine scanning experiments work again (again)
/🆑

Co-authored-by: Sealed101 <75863639+Sealed101@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-01-20 14:38:41 -05:00
SkyratBot
902caab964 [MIRROR] Stock Part Datumization Complete [MDB IGNORE] (#18639)
* Stock Part Datumization Complete (#72559)

So i accidently reverted all my commits in #72511 when resolving a merge
conflict So ummm yeah fuck my bad anyway

Finishes what was started in #71693 and completes the
[initiative](https://github.com/tgstation/dev-cycles-initiative/issues/1)

Except for `obj/item/stock_parts/cell` and its subtypes. All machines
now use `datum/stock_part` for its requested components & component
parts

Not sure if i caught every machine & stuff in the game so merge with
caution
🆑
code: datum stock part for every obj stock part
refactor: all machines & dependent experiments to use datum stock parts
/🆑

* Fixes a teeny tiny Funce mistake :)

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-01-19 17:09:19 -05:00
SkyratBot
2a8f93b2bf [MIRROR] Ties research servers to Techwebs and de-hardcodes research point gen [MDB IGNORE] (#18735)
Ties research servers to Techwebs and de-hardcodes research point gen

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-01-19 21:20:43 +00:00
SkyratBot
7ee524f748 [MIRROR] Basic Mob Carp Part VIII: Basic Mob Carp [MDB IGNORE] (#18344)
* Basic Mob Carp Part VIII: Basic Mob Carp

* maps

* missed killing main carp file

* shorki and ocean biomes

* shorki 2: pet-a-boogaloo

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 05:48:50 -05:00
SkyratBot
650d64f6d4 [MIRROR] afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item [MDB IGNORE] (#18519)
* afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item

* Update _neck.dm

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-07 06:55:38 +00:00
SkyratBot
c89bc67cde [MIRROR] Makes datum stock parts work for Stock parts Experiment purposes [MDB IGNORE] (#18112)
* Makes datum stock parts work for Stock parts Experiment purposes (#71907)

## About The Pull Request
Fixes #71845
Sets the machinery scanning experiments up to check for datumised stock
parts.

## Why It's Good For The Game
Scanning module experiment is broken on live due to datumised scanning
modules, as the experiment was not modified to check for datum stock
parts.

## Changelog
🆑
fix: fixed Advanced Scanning Modules Calibration Experiment not
registering upgraded machines to its progress
/🆑

* Makes datum stock parts work for Stock parts Experiment purposes

Co-authored-by: Sealed101 <75863639+Sealed101@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2022-12-19 22:48:42 +13:00
SkyratBot
780c16cb16 [MIRROR] Better RND logs & Experiment handheld connects to techwebs directly [MDB IGNORE] (#18118)
* Better RND logs & Experiment handheld connects to techwebs directly (#71502)

## About The Pull Request

- Adds better feedback to the experiment handler's UI when it can't
connect to a techweb
- Experiment handlers now refs techwebs directly, instead of servers, so
if the server in question breaks there won't have some wonky stuff
happening.
- Adds logs when rnd machines (so techfabs & servers) are disconnected
from a techweb, either on the machine's destruction or when it gets
linked to another techweb.
- Disconnects experiment handlers if the techweb they're connected to
has no more research servers suddenly.

## Why It's Good For The Game

Better RnD logging, better user feedback, and connecting to techwebs
directly instead of servers makes it more resilient to bugs.

## Changelog

🆑
qol: Experiment handlers now give a more reasonable explanation for why
they can't find a server.
admin: Machines being disconnected from techwebs is now logged in
research.
/🆑

* Better RND logs & Experiment handheld connects to techwebs directly

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2022-12-14 22:45:37 -08:00
SkyratBot
565af6876b [MIRROR] Makes dog a basic mob [MDB IGNORE] [MDB IGNORE] (#17930)
* Makes dog a basic mob [MDB IGNORE]

* conflict

* map updatepaths

* minor banana spider improvement

* unnecessary SR edit, minor path stuff

* chadian, borgi

* tram conflict

* fixes after testing

Co-authored-by: Tastyfish <crazychris32@gmail.com>
2022-12-12 16:45:23 -05:00
SkyratBot
257feb1be7 [MIRROR] More horrible 515 proc compatibility. [MDB IGNORE] (#17671)
* More horrible 515 proc compatibility.

* Feex

* Hopefully we're done now

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-11-27 14:46:36 -08:00
SkyratBot
7e9f322a32 [MIRROR] More expanded multi-web support [MDB IGNORE] (#17644)
More expanded multi-web support

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2022-11-22 12:21:59 -05:00
SkyratBot
75c8e0126e [MIRROR] Adds support for non-science techwebs (+Config) [MDB IGNORE] (#17596)
* Adds support for non-science techwebs (+Config) (#71070)

## About The Pull Request

This is an expanding of
https://github.com/tgstation/tgstation/pull/69708

Adds a config to not connect machines to a techweb at the start of a
round
Adds the ability to multitool a server to get its techweb in its buffer,
which can then be used on machines to sync them.
Adds support for some machines to not cry when they don't have a techweb
linked to it, in case they actually don't.

If the config to not have machines connected to the science server is
enabled, research servers will make their own techwebs instead. This is
barebones though and would need more work if this option is used.

For misc stuff:
- I replaced checking ``GLOB.machines`` for research servers, to instead
check ``SSresearch.servers``, where we can use ``as anything``.
- Removed unused vars on the RD server control
- I renamed the operating computer's .dm file to remove the capitalized
letter from it. It's now operating_computer instead of Operations.

## Why It's Good For The Game

This is adding support for 2 different cases that can be used in the
future:
1. Off-station roles, we can make roles like Oldstation have their own
techweb so they don't ruin science's efforts, or use their advanced
research to get things we don't want, or even possibly have some
blacklist webs for ghost roles (like teleporters) so that way we don't
need to have this dance where we have to give them a very specific
amount of materials for them to do things while not being able to get a
teleporter and leaving. I heard discussions that people wanted this a
while back, and one of the main things preventing this from happening is
the lack of support. Hopefully this is encouragement to make it a
reality, because I think it would be a really cool expansion of ghost
roles and a good way to prevent them from messing with the round in
progress.
2. Downstreams who want to do different things with Science. Personally
I made this PR with voidcrew(shiptest) in mind and think this would make
their lives easier. I didn't expand too much on this because I'm leaving
up mostly to the downstreams to figure out what they want to do with
these systems.

## Changelog

This generally isn't really player facing, since most of the changes
would only come into effect if the config is enabled??

🆑
fix: Research servers now only show servers connected to their techweb.
/🆑

* Adds support for non-science techwebs (+Config)

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2022-11-22 11:47:40 -05:00
Zonespace
f7c26bbf25 515 Compat (#17465)
* ONLY SKYRAT CHANGES

* ACTUALLY SKYRAT CHANGES

* yolo, revert later

* Update alternate_byond_versions.txt

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2022-11-15 06:59:06 +00:00
SkyratBot
b5bd312379 [MIRROR] Add investigate_deaths [MDB IGNORE] (#17424)
* Add investigate_deaths

* merge changes other than giant_spider which deps on tg/70848

* gib

* dust

* death

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-11 14:44:33 -05:00
SkyratBot
95fd33d5de [MIRROR] Adds a special suicide to the Experi-Scanner [MDB IGNORE] (#17407)
* Adds a special suicide to the Experi-Scanner (#71103)

## About The Pull Request
Adds a `suicide_act` to the Experi-Scanner.

<details>
<summary>LiveLeak footage</summary>

https://user-images.githubusercontent.com/75863639/200129319-d112c8ea-e9f6-49a2-872b-8c2625f97e67.mp4

</details>

The victim's brain also gets placed into the resulting toilet's cistern.

<details>
<summary>Bodycam footage from the clean-up crew</summary>

https://user-images.githubusercontent.com/75863639/200129302-4b9b37fe-9c02-4712-8502-e4732b9258f5.mp4

</details>

The resulting toilet will not drop meat sheets when deconstructed,
leaving only a pile of bones behind.

_might add some bone crunching sounds later_

## Why It's Good For The Game
More variety is nice. A use for the experiscanner-closed icon. An
ultimate sacrifice for a single toilet that you can scan towards an
experiment.

## Changelog
🆑
add: Added a special suicide to the Experi-Scanner
/🆑

* Adds a special suicide to the Experi-Scanner

Co-authored-by: Sealed101 <75863639+Sealed101@users.noreply.github.com>
2022-11-06 16:47:22 -05:00
SkyratBot
62c02030e3 [MIRROR] Convert mouse and rat to basic mobs [MDB IGNORE] (#17215)
* Convert mouse and rat to basic mobs

* run the UpdatePaths script you borb

* packs and nests

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-10-28 21:27:47 -04:00
SkyratBot
6713b05af4 [MIRROR] Fix an invalid string macro [MDB IGNORE] (#16621)
* Fix an invalid string macro (#70274)

* Fix an invalid string macro

Co-authored-by: ike709 <ike709@users.noreply.github.com>
2022-10-04 09:46:59 -04:00
SkyratBot
1e416342ea [MIRROR] [IDB IGNORE] Renames the inhand/misc folder to inhand/items [MDB IGNORE] (#15956)
* [IDB IGNORE] Renames the inhand/misc folder to inhand/items (#69573)

Also adds balloons to inhand/items

* [IDB IGNORE] Renames the inhand/misc folder to inhand/items

* update modular

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-09-04 15:29:47 +01:00
SkyratBot
c05d5838ef [MIRROR] Adds more multiz support [MDB IGNORE] (#15957)
* Adds more multiz support (#69420)

* Adds more multiz support by making use of ``is_valid_z_level`` instead of simply checking if z is the same.

* Adds more multiz support

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2022-09-04 03:48:50 +01:00
SkyratBot
a8c10d1659 [MIRROR] Converts a shitload of istypes to their more concise macros [MDB IGNORE] (#15702)
Converts a shitload of istypes to their more concise macros

Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-08-27 16:23:44 -04:00
SkyratBot
14e08f610b [MIRROR] [NO GBP] Fix NT Frontier Partner Typo & Better Experiment Descriptions For Ordnance [MDB IGNORE] (#15799)
* [NO GBP] Fix NT Frontier Partner Typo & Better Experiment Descriptions For Ordnance (#69408)

* Fix typo

* Better descriptions

* Fix errant the

* Better perf hint

* [NO GBP] Fix NT Frontier Partner Typo & Better Experiment Descriptions For Ordnance

Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
2022-08-25 03:46:54 +01:00
SkyratBot
fee2611b19 [MIRROR] Fixes the stress experiment sometimes not working [MDB IGNORE] (#15241)
* Fixes the stress experiment sometimes not working and rebalances it (#68691)

* Fixes the stress experiment sometimes not working, allowing it to have a scan leeway of 2% each way.

* Fixes the stress experiment sometimes not working

Co-authored-by: Ekaterina-von-Russland <109872269+Ekaterina-von-Russland@users.noreply.github.com>
2022-07-27 22:53:26 -07:00
SkyratBot
553b6ae47f [MIRROR] Combat mech research nodes now require mech-themed experiments rather than bomb experiments. [MDB IGNORE] (#14863)
* 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>
2022-07-12 01:12:57 +01:00
SkyratBot
4bacfe18c0 [MIRROR] Makes the noblium gas shells experiment explicitly clear that it means hypernoblium [MDB IGNORE] (#14600)
* Makes the noblium gas shells experiment explicitly clear that it means hypernoblium (#67898)

* Makes the noblium gas shells experiment explicitly clear that it means hypernoblium

Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
2022-06-28 17:26:11 +01:00
SkyratBot
11a1410ae6 [MIRROR] Scipaper rebalancing: Nitrium and halon shell removal. Nitrous added. Emphasis on BZ. [MDB IGNORE] (#13962)
* Scipaper rebalancing: Nitrium and halon shell removal. Nitrous added. Emphasis on BZ.

* Scipaper rebalancing: Nitrium and halon shell removal. Nitrous added. Emphasis on BZ.

Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-05-28 15:48:48 +01:00
SkyratBot
d8fe5abef1 [MIRROR] Experiments now work on non-station z-levels [MDB IGNORE] (#13670)
* Experiments now work on non-station z-levels (#67022)

* Experiments now work on non-station z-levels

Co-authored-by: Andrew <mt.forspam@gmail.com>
2022-05-17 19:12:16 +01:00
SkyratBot
8b3645e137 [MIRROR] Fixed another outdated quip about buying scipapers [MDB IGNORE] (#13627)
* Fixed another outdated quip about buying scipapers (#66968)

* Fixed another outdated quip about buying scipapers

Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
2022-05-15 19:27:51 -07:00