Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upstream merge, good lord. #216

Merged
merged 554 commits into from
Feb 9, 2025
Merged

Conversation

SynthTwo
Copy link
Contributor

@SynthTwo SynthTwo commented Jan 29, 2025

About The Pull Request

Does an upstream merge.

  • Update MainPage.tsx to split Character Creation and Character Lore into two tabs.

Why it's Good for the Game

This update is a biggen.

Proof of Testing

Compiled, didn't shit itself.

tgstation-ci bot and others added 30 commits January 19, 2025 06:50
## About The Pull Request

As described in issue #87019, the recharge time reduction given by
proto-kinetic accelerator cooldown modkits can become permanent,
resulting in a PKA with reduced cooldown without any mod capacity cost.
This PR ensures the recharge time is calculated based on the cooldown
kits actually installed, and recalculated whenever one is added or
removed.

## Why It's Good For The Game

Fixes #87019.

## Changelog
:cl:
fix: Fixed PKA cooldown mods becoming permanent
/:cl:
## About The Pull Request
- Fixes #89046. Even though it set `anomaly_type = null` is still set
`drops_core = TRUE` leading to the runtime.
- We now remove `drops_core` var all together. If `anomaly_type = null`
it means we don't drop a core and that's inferred so we don't need this
var to tell us that again

## Changelog
:cl:
code: removes a redundant var from anomaly effects
fix: Fixes runtimes for some anomaly effects
/:cl:
## About The Pull Request

<img alt="KvBypdgg5S"
src="https://github.com/user-attachments/assets/97fc809d-f8ae-48c3-b095-8909ff9f5222"
/>

<img alt="XIZEXhftqE"
src="https://github.com/user-attachments/assets/c769957e-94f9-41ae-9782-c685f3cf0e71"
/>

<img alt="mqOQUslfxP"
src="https://github.com/user-attachments/assets/66397673-d5c7-447e-b994-71643f8e7fe2"
/>

Made the plant analyzer output the scan data into UI instead of spamming
it into the chat.

## Why It's Good For The Game

There is too much data to show it properly in a text chat.

Botanists' chat is usually spammed with the scanning results, so it is
hard to find anything in the message history unless you filter the scan
data into a separate tab.

The new UI also has some explanation of plant stats useful for noobs.

## Changelog

:cl:
qol: Added UI for plant analyzer
del: Plant analyzer no longer spams scan data into the chat (except, it
still works for pod people as before)
/:cl:
# Conflicts:
#	code/modules/hydroponics/hydroitemdefines.dm
## About The Pull Request
On a quest to remove uselocalstate while converting files to typescript
Admin PDA also had a bug where textarea was waiting on blur rather than
on input, therefore you couldnt message someone unless you clicked off
the text area, bad UX

It looks the same

![image](https://github.com/user-attachments/assets/5cb90a6f-e93f-421b-8afe-bc25785f3f4b)
## Why It's Good For The Game
Bug fix, typescript, less custom state
## Changelog
:cl:
admin: Fixed a bug with the Admin PDA incorrectly displaying that the
message text wasn't filled out yet.
/:cl:
## About The Pull Request
- Fixes #89065

## Changelog
:cl:
fix: herignis heats up reagents inside mobs again
/:cl:
## About The Pull Request

It seems like mawed crucible was gaining charges above the allowed
maximum, and they were used fully when a potion is made, so it was
pointless.

This resulted in the crucible spamming the loud eating noise every 30
seconds even when it has 3/3 charges, and if you want it to shut up, you
could only break it down. And you couldn't use rusty grasp to do this
quickly.

## Why It's Good For The Game

Bug fixes are good.

## Changelog

:cl:
fix: Mawed crucible doesn't try to gain charges when they're at maximum
/:cl:
…ic scale (#88797)

## About The Pull Request

This PR makes the reward and cooldown for departmental orders scale with
crate cost using a logarithmic scaling, instead of comparing the price
to preset thresholds for time, or awarding the same amount as the
crate's cost.

Previously, to calculate the cooldown time, the code was calculated via
the following manner:

```
credits = clamp(credits, min, max)
time_y = 10 MINUTES * ((credits - min)/(max - min) + 1) 
```
Minimum was 320 credits, max was 3000, thus, all crates slid around
between 10 minutes to 20 minutes.

The reward for delivering the crates was the same as the crate's value.
This meant ordering egregiously expensive crates, far beyond 3000 was
way too desirable.

This PR changes both to use logarithmic scaling.

Cooldown time uses `60* log(price)^2.2`, and reward uses `140 *
log(price)^1.4`.

**Cooldown analysis**
At 320 it's 7.54 minutes, at 1400 it's 12.44 minutes, at 3000 (around
gun crates) it's 15.5 minutes, at 8000 (hat crate) 20 minutes, at 9000
(expensive atmos cans) it's 20.58 minutes, and at the 20k crate it's
24.76 minutes.

**Crate rewards analysis**
At 320 it's 475 credits, at 1400 it's 669 credits, at 3000 (around gun
crates) its 778, at 8000 (hat crate) it's 925 credits, at 9000
(expensive atmos cans) it's 943 credits, and at the 20k crate it's 1070
credits.

Up to 540 credits, you are actually getting a higher reward than what
the crate costs, but this is okay, as its a reward for delivering
simpler orders. A little surplus for you.

For the console UI, I have made items costing 3000 or more display
Moderate, and items costing 8000 or more, Long cooldowns.

## Why It's Good For The Game

Ordering really expensive crates should be a luxury, not a way to
generate money. The money is supposed to be a bonus, in addition to the
free crate to sell. Using a logarithmic scale, the credit bonus is
reigned in more evenly, making it more predictable for economy tweaking,
and avoids players double dipping credits in their free purchase.

Decreasing the rewards also give space for other new ways to generate
rewards in relation to departmental orders, such as stamping the
manifest with the correct head's stamp being worth more money and such.

<details>
  <summary>Old PR Text, which was using a price cap instead</summary>

## About The Pull Request

Departmental orders are a neat feature, but some of the available packs
had problems economywise. The cooldown of range from 10 to 20 minutes,
with 10 minutes being the base for anything costing less than 320
credits, and 20 minutes at 3000 credits. I have no problem with the
lower cap, but the upper cap has issues, as recently, a 20k crate was
added to cargo, which means it is possible to dump quite a large amount
of funds into cargo every 20 minutes.

Departmental orders probably need a bigger overhaul, and this solution
is imperfect, but I have talked with @ArcaneMusic about this as an
interim stop gap measure.

This PR also autodocs a proc, and moves some values to global defines,
for ease of balancing.

This PR affects the following crates, with the uncapped crate values in
brackets.

Armoury

- Combat Shotguns (3500 credits)
- Energy Guns (3600 credits)
- NT BR-38 Crate (20,000 credits)

Engineering

- BSA parts (6000 credits)
- DNA Vault Parts (4800 credits)

Engine Construction
- HFR Crate (4800)
- Supermatter Shard Crate (4000)

Materials

- BZ Crate (9000 credits)
- Nitrous Oxide (9000 credits)
- Water Vapor Crate (3010 credits)

Toys
- Collectible Hats Crate (8000 credits)

## Why It's Good For The Game

Instantly awarding 20k to cargo every 20 minute, in addition to 27k from
the other consoles (if both engineering and science orders BZ, service
orders collectible hats, and medical orders something around 1000), is a
bit too much. The money gained should be along a much more predictable
and expected value. With this chance, the most they can get is 13k every
20 minutes across all departments.
</details>

## Changelog

:cl:
balance: Rewards from departmental orders use a logarithmic scale,
resulting in less rewards for high tier crates. The cooldown time is
also logarithmic now, which has slightly decreased cooldown values on
cheaper crates.
/:cl:
… minor rework (#88591)

# About The Pull Request
## Nearsighted Sources
Nearsighted now associates/tracks severity applied by each source.
Previously, nearsighted only used a single variable which had to be
shared by every source, which caused problems for things like scarred
eyes which needed independent behaviour.

This implementation allows sources with different severity levels to
coexist without needing workarounds

There are now two different severity types for nearsightedness:
* Correctable: Can be mitigated with vision correction (like glasses)
* Absolute: Cannot be mitigated from any source, used for scarred eyes

Which can allow nearsighted sources to not be affected by vision
correction.
Also, since there is no more technical conflict between the two quirks,
I've made it so that nearsighted and scarred eye can be selected
together (as a QOL change)

There is also a new unit test for this new behaviour
(nearsighted_effect) that checks application and removal
## status_effect/grouped minor rework
Grouped status effects now have `source_added()` and `source_removed()`
procs, which are called whenever a source is added or removed from the
effect

I did this because the previous implementation was somewhat unwieldy. 
Inherited status effects would recieve the _currently existing_ effect
through merge_with_existing, and require them to modify the existing
effect's properties, which is odd and not intuitive to work with (the
proc's `src` was not the existing effect)
It not being called for every source also made users repeat code in
`on_creation()` and `merge_with_existing()` for every source added.

This new interface should prevent repetition and be generally more
intuitive to work with.

# Changelog

:cl:
refactor: Nearsighted has been reworked to track severity applied from
each source, as well as allow "non-correctable" nearsightedness (for
things like scarred eyes).
qol: The above being possible now means that you can select the
Nearsighted and Scarred eye quirks together
fix: Any bug that would occur from becoming nearsighted with a scarred
eye should be fixed now
code: status_effect/grouped merging code has been improved (i hope)
/:cl:
## About The Pull Request

The AI's definition is big and unorganized, which makes figuring out
what does what really annoying, so I took the time to document and
organize the file

Some vars have been renamed to better communicate what they actually do
when reading code
Unused vars have been deleted:
* var/chnotify
* var/waypoint
* var/interfaceButton

### Misc changes:
The check to see if malf modules could be used was written incorrectly,
and therefore all malf modules could be used without cooldown. The check
has been fixed, so actions which used to have no cooldown should now

AI bot summoning was supposed to have a cooldown, but it was broken and
not implemented for basic bots. This has been removed instead of fixed,
since I found it was an unnecessary limitation for something so simple.

## Changelog

:cl:
fix: Malf modules correctly use action cooldown (affects camera repair
and detonate RCDs)
code: Minor (extremely minor) AI code maintenance
/:cl:
…ragons also speak Draconic. (#89034)

## About The Pull Request


![image](https://github.com/user-attachments/assets/df57849b-c465-465a-9f8b-fc6550183794)

- Space Carps and Space Dragons no longer speak Common.
- Space Carps and Space Dragons now speak Carptongue, a language native
to Space Carps.
- Space Dragons also speak Draconic. 
- Space Dragons can still understand common, they just can't speak it. 
- Space Craps cannot understand common, unless they're a special carp
(Cayenne, Lia, Magicarps, those spawned from plushies)
- Ash Drakes and Ice Whelps also no longer speak Common, and instead
speak Draconic. They can still understand common.
- Carp Infusion now lets you speak and understand Carptongue.
- Fish Infusion now lets you speak and understand Carptongue.
- Fire Sharks now speak Carptongue instead of Common. They can still
understand common (to receive directions).

## Why It's Good For The Game

#89032 made me think "hey why CAN carps speak Common?" 

So I thought "What if the Space Dragon spoke Draconic instead since it's
a big lizard"

But naturally the Space Dragon still needs to communicate verbally to
its carps and, well, carps aren't really lizards so they shouldn't get
Draconic right?

So I thought "Why not add a Fish language" 

Now, various aquatic space creatures have a language that they can speak
between one another in privacy, while the Space Dragon can still
communicate to the crew for gimmicks via the curator (or draconic if
they want to speak to lizards)

## Changelog

:cl: Melbert
add: Adds Carptongue language, spoken by Space Carps.
del: Space Carps no longer speak or understand Common. Special carps
like Cayenne and Lia can still understand common.
add: Space Dragons can speak Draconic and Carptongue.
del: Space Dragons no longer speak Common. They can still understand it.
add: Ash Drakes and Ice Whelps now speak Draconic. 
del: Ash Drakes and Ice Whelps no longer speak Common. They can still
understand it.
add: Fire Sharks now speak Carptongue.
del: Fire Sharks no longer speak Common. They can still understand it. 
add: Fish and Carp Infusion now grant Carptongue, letting you speak to
(and understand) Space Carps.
add: Sleeping Carp grants you Carptongue, but as most human tongues
can't speak it, you'll only be able to understand Space Carps unless you
steal a fish tongue.
/:cl:
Co-authored-by: gleypi <gleypi>
OrbisAnima and others added 18 commits January 28, 2025 04:39
…e ammo per mag) (#4813)

* Initial Commit

* this is why we test stuff before making a PR

* Updates Magazine sprite with Trelus work

Co-Authored-By: Trelus <[email protected]>

---------

Co-authored-by: Trelus <[email protected]>
…mo case throwing (#4806)

spin the blockenheimer

Co-authored-by: Hatterhat <[email protected]>
* Adds a new pistol, the Zashch 10mm

Adds the 'Zashch' 10mm pistol to the game, a slow firing pistol with a time to crit on a human of 4 seconds, but boasts 18 rounds in a magazine, giving it the highest damage-per-reload of any handgun crew acquirable in the game.

It is sold by NRI surplus for the same price as the Bobr revolver. It is chambered for 10mm to give life to a dead calibre and to give a crew-gun that fires the bullet, to give the calibre a chance to have a life outside of being solely an evil syndicate calibre that is for some reason, orderable from cargo.

Magazines, in-hand sprites, and mob sprites are all tested and functioning correctly, as if the flashlight function.

* Update modular_nova/modules/modular_weapons/code/company_and_or_faction_based/szot_dynamica/pistol.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/modular_weapons/code/company_and_or_faction_based/szot_dynamica/pistol.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/modular_weapons/code/company_and_or_faction_based/szot_dynamica/magazines.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/modular_weapons/code/company_and_or_faction_based/szot_dynamica/pistol.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/modular_weapons/code/company_and_or_faction_based/szot_dynamica/pistol.dm

Co-authored-by: Bloop <[email protected]>

---------

Co-authored-by: Bloop <[email protected]>
* Fixes sound prefs not being respected

* Fix volume prefs

* Update radio.dm

* Update sounds.dm

* Update sounds.dm
@SynthTwo SynthTwo marked this pull request as ready for review January 31, 2025 16:37
@SynthTwo SynthTwo merged commit 0d97250 into IrisSS13:master Feb 9, 2025
15 of 21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.