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

Better mapping editor (Part 1 - UI) #34302

Open
wants to merge 61 commits into
base: master
Choose a base branch
from

Conversation

poeMota
Copy link
Contributor

@poeMota poeMota commented Jan 8, 2025

About the PR

This PR heavily reworks and increases the functionality of the current map editor.

what's changed:

  • Improved the map editor UI: entities, decals, and tiles are now in separate lists; decal and tile lists have been moved to the right side of the screen; many interface icons have been added and updated.
  • Added a button for deleting tiles.
  • Removed the second button for deleting entities.
  • Decals in the decal list are now displayed in a gallery format.
  • When changing a decal's color, all decals in the list are updated to reflect the corresponding color.
  • A checkbox labeled "Use Custom Color" has been added to the decal menu.
  • Fixed a bug with tile texture rendering where extremely long sprites would now be cropped into a square.
  • Fixed the ability to open the main menu in the map editor.
  • Added the ability to rebind hotkeys for pick action.
  • Added ability to add objects from lists to “Favorites”.
  • Prototypes can now be searched by id, not just by name.
  • Now the mapping command increases zoom to 1.5 and enables map editor mode.
  • Added ability to rotate decals by clicking the middle mouse button.

Why / Balance

The current map editor sucks.

Technical details

  • Abstract parents have been added for all decals to facilitate grouping them into subcategories.

Media

изображение
изображение

editor2.mp4

Requirements

Changelog

no 🆑

@github-actions github-actions bot added the S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. label Jan 8, 2025
@ArtisticRoomba
Copy link
Contributor

Wanted to make another feature suggestion: could you add plus and minus buttons to the draw depth box, to quickly change the draw depth for decals?

In current mapping I found this really annoying where I had to heavily use my keyboard to change the draw depth, often happens when editing previous decals.

@beck-thompson
Copy link
Contributor

By the way, I am getting to this PR its just really big! I haven't forgotten about it :)

topLevel.Children.Add(prototype);
}
Screen.Entities.UpdateVisible(
new ([entities]),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
new ([entities]),
[entities],

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Weh, I remembered why I did it that way, because typecheck fails for some reason when written that way.

prototype.Children?.Sort(Compare);
}
Screen.Tiles.UpdateVisible(
new ([tiles]),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
new ([tiles]),
[tiles],


topLevel.Children.Sort(Compare);
Screen.Decals.UpdateVisible(
new ([decals]),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
new ([decals]),
[decals],

Comment on lines +601 to +605
button.CollapseButton.Pressed = true;
list.ToggleCollapse(button);
OnSelected(list, button, prototype.Prototype);
children = button.ChildrenPrototypes.Children.ToList();
children.AddRange(button.ChildrenPrototypesGallery.Children);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this loop structure isn't new to the PR but wow this is hard to follow

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know what's wrong with it or how it can be improved. These two functions do the same thing, just with different arguments.

@sowelipililimute
Copy link
Contributor

sowelipililimute commented Feb 3, 2025

grafik
locally i notice a lot fewer buttons on my top toolbar than i see in the PR description, is there something else that's required besides just doing the mapping <id> command to get those to show up or has the PR changed since that footage was taken?

@poeMota
Copy link
Contributor Author

poeMota commented Feb 3, 2025

locally i notice a lot fewer buttons on my top toolbar than i see in the PR description, is there something else that's required besides just doing the mapping <id> command to get those to show up or has the PR changed since that footage was taken?

These buttons were in the full version of the PR, on the advice of one of the maintainers I decided to split it into several parts, the buttons will be in the second one.

@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Feb 11, 2025
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@FairlySadPanda
Copy link
Contributor

FairlySadPanda commented Feb 12, 2025

I'm going to try and champion some eyeballs on this in the Discord's pull request review request channel.

Having watched a mapper use this for a little bit: there's two things that could be improved for the UX at the moment.

  1. There's a lot of junk entities that don't appear in normal mapping searching but show up when searching using this. This is why you'll see a lot of ERROR sprites and blank entries.
  2. You do lose a lot of screen real estate by having both columns always open. It'd be good if one or both sides were collapsible.

I think problem 1 is a must-fix at the moment.

@github-actions github-actions bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Feb 12, 2025
@poeMota
Copy link
Contributor Author

poeMota commented Feb 12, 2025

Yes, those are the right points, I'll definitely look into them,but it's hard to make myself work when none of the maintainers have ever really looked at the PR 😆

@poeMota
Copy link
Contributor Author

poeMota commented Feb 12, 2025

I think problem 1 is a must-fix at the moment.

Funny, but it took one line of code to do it. Fixed

@poeMota
Copy link
Contributor Author

poeMota commented Feb 13, 2025

  1. You do lose a lot of screen real estate by having both columns always open. It'd be good if one or both sides were collapsible.

Added buttons to hide/open each list.

@FairlySadPanda
Copy link
Contributor

FairlySadPanda commented Feb 13, 2025

Thanks!

I'm continuing to raise this in the Discord, here's some feedback from a mapper who tested it

image

Will keep pinging on this so it doesn't get buried 🫡

It took a really long time for the last mapping UI overhaul to go in - that was Smug's right at the start of 2024 IIRC - so please don't be discouraged if this takes a while.

It's still a really useful tool as-is because this build can be used to make and edit maps that work on live.

@poeMota
Copy link
Contributor Author

poeMota commented Feb 13, 2025

About the first, all hotkeys can be changed in the settings, in the “mapping” or “editor” section, I don't remember exactly. What about resizing the layout, I tried to do that, but because of the two nested SplitContainers needed for the flip function, I don't know how to implement it.

@poeMota
Copy link
Contributor Author

poeMota commented Feb 15, 2025

  • Added possibility to open object tree with object search by double-clicking it.
  • Fixed human-readable names for tiles (unfortunately it is impossible to do it for decals, because DecalPrototype has no name parameter).

@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Feb 16, 2025
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Feb 18, 2025
Peptide90 added a commit to Vault-Overseers/nuclear-14 that referenced this pull request Feb 23, 2025
* Fix Mining Drills & Reduce Stamina Cost (#1579)

# Description

Fixes the attack values of mining weapons which were messed up in the
Wizmerge.

For the pickaxe, I reverted all damage values to be the same as before.
For the mining drill however, I opted to keep the rapid fire rate
because it was an interesting effect and just added the extra range from
pre-wizmerge and the throwing damage back. I also **greatly reduced the
mining drill's stamina cost** because it was a common complaint among
players.

Before the wizmerge, the mining weapons (pickaxe and drill) were in
`Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml` but
they got moved to
`Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml` and
thus the EE-specific changes got wiped.

Also fixes a subtle bug in `SharedMeleeWeaponSystem.OnMeleeSelected`,
responsible for resetting the cooldown of a melee weapon upon selecting
it, that treated attack rate as attacks per second as opposed to seconds
per attack :
```diff
    private void OnMeleeSelected(EntityUid uid, MeleeWeaponComponent component, HandSelectedEvent args)
    {
        ...
-       var minimum = curTime + TimeSpan.FromSeconds(1 / attackRate);
+       var minimum = curTime + TimeSpan.FromSeconds(GetAttackRate(uid, args.User, component));

        if (minimum < component.NextAttack)
            return;
        component.NextAttack = minimum;
        DirtyField(uid, component, nameof(MeleeWeaponComponent.NextAttack));
    }
```

Bug above was particularly noticeable for weapons with a very fast
attack rate like the mining drill and north stars, which caused the
`NextAttack` delay on select to be 4 seconds instead of 0.25 seconds.

Another subtle issue, the Goliath's attack rate field was `0.75` but the
field was set from Wizden and means attacks per second, not seconds per
attack so I changed it `1.33`.

## Media

**Pickaxe**
<img width=300px
src="https://github.com/user-attachments/assets/8bf1290e-6506-4ac8-9b8b-2bb23a2013b6">

**Mining Drill**
<img width=300px
src="https://github.com/user-attachments/assets/2f852a29-7b58-4e33-8264-67bab87254fd">

**Diamond Tipped Mining Drill**
<img width=300px
src="https://github.com/user-attachments/assets/750fa019-17dc-4d21-900c-88526c873771">

**Mining with Mining Drill**


https://github.com/user-attachments/assets/a9822ccb-c991-4341-a076-fd89a8689e0c

## Changelog

:cl: Skubman
- fix: The mining drill now has a fast fire rate and extra range again.
- fix: The pickaxe and the mining drill can now be used as throwing
weapons again.
- fix: Fixed a bug where selecting weapons with a fast attack rate took
a few seconds before you could attack with them.
- fix: Fixed the Goliath attacking too fast. 
- tweak: The power attack stamina cost of mining drills has been reduced
to 0.7 stamina.
- tweak: Re-adjusted the damage of the pickaxe.

* Automatic Changelog Update (#1579)

* Add Magistrate, Dignitary Department, and Minor FTL Fixes (#1536)

# Description
This adds the Magistrate to the role list of Central Command VIPs. This
also splits up the Central Command VIPs into their own department named
"Dignitary" for the purpose of making it clear that Central Command VIPs
are above Command and should be responding to orders from Central
Command.

---

# TODO
Lots of stuff to do here, mostly just transferring Chief Justice's
loadout to also work for Magistrate (most of it). I'll also list the
basics I've done as well.

### Magistrate-Specific
- [x] Add Magistrate-only Access (for locker).
- [x] Add Magistrate Job, Job Icon, and PlayTimeTracker
- [x] Add Magistrate clothes (ported from PS13)
- [x] Add Magistrate job spawner.
- [x] Add Magistrate Locker Teleporter and Locker.
- [x] Add Magistrate Contents to Locker.
- [x] Add Magistrate loadout (Chief Justice included).
- [x] Add Magistrate stamp and stamped icon.

### Dignitary Department
- [x] Add Dignitary Department.
- [x] Put Magistrate, Blueshield Officer, and Nanotrasen Representative
in Dignitary.
- [x] Add FTL for Dignitary.
- [x] Put Dignitary above Command.

### Map Stuff
- [x] Add Magistrate job spawners to maps.
- [x] Add a Centcom Wintercoat to NTR and Magistrate on the Glacier
map.\

### Extras/Fixes
- [x] Add winter coats for Magistrate and NanoRep on Glacier.
- [x] Fix the category grouping FTL for NTR and BSO.

---
# Media

<details><summary><h3>Lobby/Customization Screenshots</h3></summary>
<p>

Jobs Listing

![image](https://github.com/user-attachments/assets/61ebe868-b411-449c-810d-794536b7c76f)
Category Grouping

![image](https://github.com/user-attachments/assets/98a6707b-9631-4a38-892a-492a8b9461d3)

</p>
</details>
<details><summary><h3>Items/Clothes/Entities</h3></summary>
<p>

Stamps (Stamp shows the same in the spawn menu)

![image](https://github.com/user-attachments/assets/7225ccca-a07e-4ae3-bd1f-c2e806a7b377)
Magistrate Robes

![image](https://github.com/user-attachments/assets/abb39f42-e9bf-4038-94ad-418f0c642ff7)
Spawner & Magistrate Robes

![image](https://github.com/user-attachments/assets/cdd38786-222c-48b8-8aaa-332f65dad265)
Access List

![image](https://github.com/user-attachments/assets/f92cc6b5-3884-4a17-b898-095e7968ce2a)
PDA Crew Manifest

![image](https://github.com/user-attachments/assets/38c5dc83-6fdf-41fe-b304-2f294359a87d)
Lockers with Teleporter

![image](https://github.com/user-attachments/assets/cf1346fc-5b8f-4c52-a7a7-33c0c7bbedb6)
Locker with Contents (from Teleported Locker)

![image](https://github.com/user-attachments/assets/9f18290a-07cc-4e4b-93f2-01276c7611b6)

</p>
</details>
<details><summary><h3>Map Spawners</h3></summary>
<p>

Arena

![image](https://github.com/user-attachments/assets/10ba04c1-9d48-46e7-aa1e-700f22f1d169)
Asterisk

![image](https://github.com/user-attachments/assets/a49434ef-2efe-4ae4-ae1e-c405add68704)
Core

![image](https://github.com/user-attachments/assets/0fe868e4-92a9-4100-803b-66bb130ee68c)
Edge

![image](https://github.com/user-attachments/assets/bbeebbc6-2a82-4707-b874-7ef8216ccb03)
Europa

![image](https://github.com/user-attachments/assets/6be71cca-6599-46bb-8f8c-f67be12fdaf2)
Gaxstation

![image](https://github.com/user-attachments/assets/02dfe9bb-98ff-41d5-bf9d-d87a4a05fe60)
Glacier (Winter Coats for NTR and Magistrate as well.)

![image](https://github.com/user-attachments/assets/1849f239-611d-4370-a58d-2d63b9cba03c)
Hammurabi

![image](https://github.com/user-attachments/assets/f8b544be-b8ab-4dd9-b801-d5482d244bb9)
Hive

![image](https://github.com/user-attachments/assets/09514381-4131-491e-aa56-fff7b27d200a)
Lighthouse

![image](https://github.com/user-attachments/assets/a0ddcddb-9133-40b0-9f77-b6d2a8eb0f21)
Meta

![image](https://github.com/user-attachments/assets/695dec69-24f8-4de0-a237-9d24000d2a35)
Pebble

![image](https://github.com/user-attachments/assets/1f9926c9-f5fc-4a4d-a4a0-1cabb15e5907)
Radstation

![image](https://github.com/user-attachments/assets/b61dda0d-5a4c-4463-bc80-508426039c85)
Saltern

![image](https://github.com/user-attachments/assets/57c3e590-09f4-4862-b1d0-193c1db9488e)
Shoukou

![image](https://github.com/user-attachments/assets/81a9b185-8d7b-4efa-b565-397f44fe5cd8)
Submarine

![image](https://github.com/user-attachments/assets/2e5860c1-8bea-4730-a629-da348056d7c3)
Tortuga

![image](https://github.com/user-attachments/assets/e45b066a-3180-4dce-af27-bc4af8c2bb59)

</p>
</details>
<details><summary><h3>Misc. Minor Fixes</h3></summary>
<p>

Chief Justice Access

![image](https://github.com/user-attachments/assets/10d54485-d0ee-40bb-b048-738e61bf585f)
Category Groupings (BSO AND NTR)

![image](https://github.com/user-attachments/assets/8548dc33-f75f-4051-84b2-e26230f3cc2c)

![image](https://github.com/user-attachments/assets/dd67ad17-0128-4ca6-bf8d-9b4fded117a5)

</p>
</details>

---

# Changelog
:cl:
- add: Added Magistrate role.
- add: Added Dignitary Department.
- add: Added winter coats for NTR and Magistrate on Glacier Spawn.
- tweak: Moved Blueshield Officer and Nanotrasen Representative to
Dignitary Department.
- fix: Fixed the category groups identifier for BSO and NTR in Loadouts.
- fix: Fixed Chief Justice tag in ID Card Computer.

---------

Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>

* Automatic Changelog Update (#1536)

* Vigor Buff & Lethargy Nerf (#1578)

# Description

Adds new attributes to Vigor and Lethargy to catch up with the recent
traits:

Vigor:
- Still has +10 stamina
- Now increases stamina regen per second from 3 to 3.6
  - Time to regenerate 50 stamina: ~13.8 seconds
- (As a reference, the base time to regenerate 50 stamina with 3 regen
is ~16.6 seconds)
- Now reduces the delay of stamina regen after stamina damage from 3
seconds to 2.25 seconds

Lethargy:
- Still has -15 stamina
- Now decreases stamina regen per second from 3 to 2.4
  - Time to regenerate 50 stamina: ~20.8 seconds
- Now increases the delay of stamina regen after stamina damage from 3
seconds to 3.75 seconds

As a bonus change to be consistent with the traits, Onis and Felinids
now have their stamina regen scaled precisely with their non-standard
stamina points, such that the time where they regenerate all their
stamina is the exact same. Onis have (3 * 1.15) 3.45 stamina regen, and
Felinids have (3 * 0.85) 2.55 stamina regen.

## Why / Balance

Vigor/Lethargy was one of the traits designed early in Einstein Engines'
lifetime. For better or for worse, Vigor has been powercreeped by
several traits in the same cost bracket:


![image](https://github.com/user-attachments/assets/7df6a18d-dc6d-499f-8c7d-1a7ef51c10ee)

Why get a +10 stamina stat increase when for the same points you can
either have a constant source of power attacks (Martial Artist),
traverse difficult terrain faster (Parkour Training), or have a constant
10% armor (Dermal Armor)?

Adding faster stamina regen could mean more stamina for Power Attacks in
prolonged fights, and being able to recover from stamina slowdowns
faster, escaping bad situations more efficiently. This makes Vigor more
or less up to par with the new traits.

## Media
**New Vigor Description**

![newvigor](https://github.com/user-attachments/assets/4735e7e2-70d7-4afe-84d7-ad120d839dd4)

**New Lethargy Description**

![newlethargy](https://github.com/user-attachments/assets/089573b8-05e3-40e2-bcce-f5c6b63eabec)

## Changelog

:cl: Skubman
- add: The Vigor trait now has additional effects! Aside from increasing
stamina, Vigor now increases stamina regen per second, and reduces the
delay of stamina regen after taking stamina damage. The opposite effects
have been added to the Lethargy trait.
- tweak: The Oni species now has slightly increased stamina regen, and
Felinids decreased stamina regen.

* Automatic Changelog Update (#1578)

* Fix Sophia Sending a Massive Float to Chat (#1581)

![image](https://github.com/user-attachments/assets/b53f8a0a-422b-47f8-acda-01d830dc8aaa)


# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- fix: Fixed full glimmer float being displayed to chat by Sophia.

* Automatic Changelog Update (#1581)

* Make Room for Longer Chem Names. (#1582)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

Fixed not having enough space for longer chemicals on the ChemMaster UI.

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- fix: Fixed not having enough space for longer chemicals on the
ChemMaster UI.

* Automatic Changelog Update (#1582)

* IPCs Can Cryo Again (#1583)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

My bad

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- fix: Fixed IPCs being unable to cryo.

* Automatic Changelog Update (#1583)

* Split All CVars Into Separate Files (#1587)

# Description

This PR splits all the CVars into separate files. Unfortunately I need
to hella clean this up by restoring all the CVars that are different on
EE, because cherrypicking it reset everything to Wizden's Defaults
(Including CVars that no longer exist on EE, and removing CVars from
systems I codeown now, such as Atmos, Guns, and Melee).

# Changelog

No changelog because this isn't player facing. :)

---------

Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>

* Add Classic Asimov Laws (#1588)

# Description

This PR adds in the classic Asimov's Three Laws of Robotics as a
standard lawset for Synthetics. The laws are given thus.

Law 1: A robot may not injure a human being or, through inaction, allow
a human being to come to harm.
Law 2: A robot must obey the orders given it by human beings except
where such orders would conflict with the First Law.
Law 3: A robot must protect its own existence as long as such protection
does not conflict with the First or Second Law.

The localizations for them are intentionally left exactly-as-is from the
original 3 laws written by Isaac Asimov. Yes this is totally different
from "Crewsimov", yes this does actually mean an Asimov AI isn't
required to obey orders given to it by a Moth. Yes this does actually
mean that the AI isn't allowed to "Harm" nukies so long as it can verify
that the Nukie in question is a human.

Also includes this cherry-pick
https://github.com/space-wizards/space-station-14/pull/31040
Because this is a fix for a crash that was happening in my dev
environment...

# TODO

<details><summary><h1>Media</h1></summary>
<p>


![image](https://github.com/user-attachments/assets/9276a514-78dc-4447-8324-4de6e28004af)

</p>
</details>

# Changelog

:cl:
- add: Added the classic Asimov's Three Laws of Robotics to the game.
- add: AI now starts with Asimov laws by default, instead of
"Crewsimov".

---------

Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>

* Automatic Changelog Update (#1588)

* ChemMaster+ (#1585)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Changes how the ChemMaster works:
1. Removes the amount buttons and instead uses a textbox that resets
whenever a value is entered or focus ends.
2. Shrinks the ChemMaster again.
3. Adds sorting options, including for quantity, last added, and a sort
option for the (default) alphabetical order.
4. Sorting options save via the ChemMaster itself, not per-user.

Video showcase:
https://discord.com/channels/1218698320155906090/1218698321053356060/1330129166384894046

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- add: Added sorting options to the ChemMaster.
- add: Added the ability to input custom amounts into the ChemMaster via
a textbox that resets on change.
- tweak: The width of the ChemMaster UI has been lowered.
- remove: Removed quantity buttons from the ChemMaster.

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>

* Automatic Changelog Update (#1585)

* Remove Default Scream Action (#1589)

# Description

This PR adds a new server configuration that disables the special Scream
Action that all players spawn with. It's stupid, it's NRP. And you can
still scream with the emote or emote wheel. If the config is set to
false at roundstart, the Scream action simply won't spawn.

# Changelog

:cl:
- tweak: The "Scream Action" no longer appears by default. It may be set
in your server's configuration to spawn or not.

* Automatic Changelog Update (#1589)

* Update build-test-debug.yml

* Update CCVars.Misc.cs (#1590)

# Description

Apparently a lot of people were extremely angry that this was defaulted
false.

# Changelog

:cl:
- tweak: Scream is once again by default on the action bar. The server
configuration for removing it still exists however.

* Automatic Changelog Update (#1590)

* fix whitelist.enabled test fail

* Update PoolTestLogHandler.cs

* Fix Cargo Shuttle

* Fix Lathe Issue

* More various fixes

* More Fixes

* Network Configurator Fixes (#1592)

# Description

Fixes the infamous "local entity uid 0" error (hopefully forever)
Also fixes the infamous Access denied with network configs in mapping
mode.

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- fix: Fixed the infamous "Access denied" when using a network config in
mapping mode.

---------

Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Automatic Changelog Update (#1592)

* aaaaa

* Disable Blood Traits For Lamia (#1586)

# Description

It turns out that when you have a species that has 20x the blood volume
of a human, letting them take a trait that makes them constantly bleed
some percentage of their blood volume causes a lot of problems. Usually
by FLOODING the station with blood. This PR just makes Lamia ineligible
for the two blood traits, it unfortunately doesn't fix the issue of them
excessively bleeding when you attack them(I actually don't fully
consider it to be an issue. I have issues instead with system instances
of hardcoded blood amounts).

# Changelog

:cl:
- remove: Lamia can no longer take blood related traits, such as Blood
Deficiency.

* Automatic Changelog Update (#1586)

* Add mapping editor (#23427)

* Add mapping editor (#757)

* Remove mapping actions, never again

* Cleanup actions system

* Jarvis, remove all references to CM14

* Fix InventoryUIController crashing when an InventoryGui is not found

* Rename mapping1 to mapping

* Clean up context calls

* Add doc comments

* Add delegate for hiding decals in the mapping screen

* Jarvis mission failed

* a

* Add test

* Fix not flushing save stream in mapping manager

* change

* Fix verbs

* fixes

* localise

---------

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>

* Fix coords monitor in replays (#29512)

The F3 coords manager is blocked if you're not an admin. This check happened even when playing a replay, where you actually aren't. There's now a check to make sure you are actually server-connected-to-game before running the logic.

Also moved it to a manager because this *shouldn't be a bloody entity system in the first place*.

* Fix Airlock Error (#1593)

fixes the "missing layer" error

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Fix verbs in mapping state (#30631)

* MORE FIXES

* Update CCVars.Whitelist.cs

* IPCs dont have blood

* Update CCVars.Admin.Logs.cs

* SHUT

* aaaaaaaaaaaa

* Automatic Changelog Update (#1455)

* Fix verb sub (#30667)

* Fix verb sub

Mapping casualty, verbs are weird.

* also this

* Fix Hissing & Another Airlock Error (#1596)

errors/test fail ops

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update miningrock.yml (#1595)

Yeets a heisentest.

* There's literally no reason to do this because it impacts only the people who don't know.

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>

* 1984 "Unobtainium Chemistry" (#1600)

# Description

Making chems use Unobtainium Reagents doesn't make chemistry
interesting, it makes medical gameplay boring. This PR replaces the
unobtainium recipes with suitably expensive and/or complicated recipes.
Have fun memorizing how to make Acetone, Ammonia and Impedrezine.

# Changelog

:cl:
- remove: 1984'd most instances of "Unobtainium" chemistry. Chems like
Necrosol that previously required normally unobtainable reagents such as
Cognizine or Vestine now instead have long production chains of chems
that are obtainable, but complicated to produce. Check the chemistry
menu for more information.

* Automatic Changelog Update (#1600)

* Update CargoTest.cs

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>

* Consolidate Arsenal Research

* Update arsenal.yml

* aaaaaaaa

* aaaaaaaa

* Consolidate Civilian Research

* Automatic Changelog Update (#1602)

* Automatic Changelog Update (#1603)

* Arsenal Tacsuit Research (#1604)

# Description

This PR fills in the basics for the previously commented placeholders
for "Advanced Tacsuits" and "Prototype Tacsuits", both new Arsenal
researches. These both unlock recipes for manufacturing tacsuits at a
Security Techfab, and are an alternative method to making them outside
of buying them through Cargo. Here's a genuine reason for Epistemics to
consider doing Arsenal T3.

<details><summary><h1>Media</h1></summary>
<p>


![image](https://github.com/user-attachments/assets/697e70cb-e1da-4590-aa2b-01555b88f40d)


![image](https://github.com/user-attachments/assets/60977362-18aa-4253-9045-61129866fad7)


![image](https://github.com/user-attachments/assets/79ed2ffd-19a3-4a4d-9412-51ba96de82ac)


![image](https://github.com/user-attachments/assets/070e99d0-48d6-40ad-add5-a1e51b23f77b)

</p>
</details>

# Changelog

:cl:
- add: Added Advanced Tacsuits, and Prototype Tacsuits to Arsenal
research. Along with them comes Security Techfab recipes for said
tacsuits.

* Automatic Changelog Update (#1604)

* Replace Tech Lockout With Softcap (#1605)

# Description

This PR fully replaces the "Tier 3 Tech Lockout" with a research
softcap. How it works is that technologies are allowed to set a softcap
contribution, meaning that they multiplicatively increase the cost of
all other research by a certain amount. By default, this is done by all
Tier 3 Technologies. Essentially, this means that you're no longer
limited to a single research category's tier 3 selections. Instead the
costs of research increase the more capstones you unlock. The current
cost increase for research is displayed on the console.

<details><summary><h1>Media</h1></summary>
<p>


![image](https://github.com/user-attachments/assets/e65fa1ee-c849-489c-b690-f7ce8d98b678)

</p>
</details>

# Changelog

:cl:
- remove: Removed the "Tier 3 Tech Lockout" mechanic. You are no longer
limited to 1 discipline worth of t3 research.
- add: Research is now "Softcapped" by Tier 3 unlocks. Each unlocked
Tier 3 technology multiplicatively increases the cost of all other
research. Rushing a capstone can be quite expensive, as will be getting
multiple capstones. I hope you're glad that you can build more than one
prober now without guaranteeing the station will explode.

* Automatic Changelog Update (#1605)

* Fix Possible Loadout Related Crash (#1607)

# Description

Servers are occasionally experiencing roundstart crashes, and the logs I
received concerning this crash imply that LoadoutSystem is SOMEHOW being
handed a player character that doesn't actually exist. Well an easy
solution I guess is to just make LoadoutSystem check if the entity
*factually* exists, before attempting to apply a loadout to it.

# Changelog

:cl:
- fix: Possibly fixed a crash related to Loadouts being applied to
entities that don't exist.

* Automatic Changelog Update (#1607)

* Augustine Lawset (#1609)

# Description
New lawset, see media.


![image](https://github.com/user-attachments/assets/4a6bcb72-17df-416c-8c66-663107754b37)


---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl: Rane
- add: Added Augustine lawset as a middle ground between Asimov and
Crewsimov.

* Automatic Changelog Update (#1609)

* v240.1.0 (#1606)

it's an engine update folks

---------

Co-authored-by: Tobias Berger <toby@tobot.dev>

* Make CODEOWNERS (#1608)

maintainers get over here

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Signed-off-by: Skubman <ba.fallaria@gmail.com>
Co-authored-by: Skubman <ba.fallaria@gmail.com>

* ATS V2 (#1612)

# Description

Howdy, y'all, I just wanted to give you a quick update on the ATS. I've
added the proper tiny fan, add snacks, and drinks vendors, and some
lighting.

<details><summary><h1>Media</h1></summary>
<p>

![Example Media Embed](https://example.com/thisimageisntreal.png)
![Screenshot 2025-01-19
204215](https://github.com/user-attachments/assets/c81ad460-b9fe-461a-b2e7-713c78798c06)


</p>
</details>

---

# Changelog

:cl: Mike32oz
- add: ATS, light post, snacks/drinks vendors.
- tweak: ATS, tiny fan, convenient belt.
- remove: ATS, spawn-MobBear in the Maintenance room.

* Automatic Changelog Update (#1612)

* Modular Computers Part 2: Disk Burner (#1580)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

This is **Part 2** of the Modular Computers system, adding the
functional player facing stuff- the modular computer itself, a way to
make and burn disks via the Disk Burner and a related research.

Also comes with some cleanup changes to fix parts of the system that
broke in testing.

---

# TODO

<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->

- [x] Actually run through this thing when my laptop is out of battery
(everything worked except CONSTRUCTING the disk burner)
- [ ] Add disk burning delay, make it more intuitive? Maybe a guidebook
entry?

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>

NO.

</p>
</details>

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- add: Added the Disk Burner, the Modular Computer as a board and a way
to make computer disks.

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Signed-off-by: Eris <erisfiregamer1@gmail.com>
Signed-off-by: Eris <eris@erisws.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

* Automatic Changelog Update (#1580)

* Update CODEOWNERS (#1613)

* Mapping Mini-Wizmerge & New Central Command (#1610)

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Ports https://github.com/space-wizards/space-station-14/pull/32294
Ports https://github.com/ss14-harmony/ss14-harmony/pull/310 (and
everything needed for it to function)
Early-merges
https://github.com/space-wizards/space-station-14/pull/34302

Adds the ability for multiple central command maps that get randomly
selected.
Tested and works.

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl: Several contributors
- add: Added a new central command map that is randomly picked alongside
the old one (thank you to Spanky from Harmony)
- add: Added Advanced SMES for mappers.
- add: Added the atmospheric network monitor for seeing what the
temperature, moles, and pressure is on every pipe everywhere through a
computer.
- add: Nukie med bundle now contains a compact defibrillator.
- add: Ported a better mapping editor.
- add: Added the throngler plushie.
- remove: Removed the Throngler as a possible loot spawn for gamble
crates.

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>

* Automatic Changelog Update (#1610)

* Update Credits (#1594)

This is an automated Pull Request. This PR updates the GitHub
contributors in the credits section.

Co-authored-by: SimpleStation Changelogs <SimpleStation14@users.noreply.github.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>

* Fix Fent Zombies in Medbay (#1614)

(fix medbays making people go up/down if they speak)

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- fix: The medbay fent zombie epidemic is now fixed.

Co-authored-by: BarryNorfolk <barrynorfolkman@protonmail.com>

* Automatic Changelog Update (#1614)

* Psionics Registry Computer, PsiWatch, and Epi-Glasses/Epi-HUD (#1598)

# Description
This adds the wonderful `Psionics Registry Computer` which allows you
to, just like Criminal Records, mark people that will show their icons
to other individuals wearing the appropriate gear, and will allow you to
keep track of such individuals in a similar way by making a `PsiWatch`
app that will show the reasons.

For the purposes of easement, I've left the fingerprints and DNA in
there, but individuals will not show up with it in the actual file. The
game would just crash when I removed the filters, so I left them in. The
dropdown also just looked cleaner when it was there instead of removing
it and replacing it with a label.

I've recolored the sprites for the sec-glasses and sec-HUD to make the
epi-glasses and epi-HUD using Epistemics colors.
I've recolored the sprite for the CriminalRecords computer to look
different and be cool.

---

# TODO
A list of things I've done split into categories.

### Spriting
- [x] (Recolor) Sprite the epi-glasses and epi-HUD.
- [x] Sprite the PsionicsRecords computer screen.
- [x] Sprite the Psionics Status icons.
- [x] Change the sprite for the Psionics Abusing (it is hard to tell any
difference from suspected right now).

### Records
- [x] Set up records XAML that basically duplicates the Criminal
Records.
- [x] Remove History (not necessary).
- [x] Change all the naming schema to match.
- [x] Change the categories and setup reason-requirement for each
submission type.
- [x] Change the "reason" to "psionics" so it is more intuitive.

### Computer Setup
- [x] Setup computer to show UI.
- [x] Setup system to report to report to Epistemics (Science) radio
when anything is changed.
- [x] Setup the system to only accept Epistemics (Research) access.
- [x] Setup the computer board.
- [x] Setup the sprites for the computers.

### Equipment and Icons
- [x] Create the icons and ensure the ShowPsionicsRecordIcons prototype
works.
- [x] Create the entity prototypes for the glasses and HUD in the game
to show textures.
- [x] Set it up so the glasses and HUD show the user the icons when
they're wearing them (having hard time fixing this at 06:00 in the
morning).

### PDA App
- [x] Setup the PDA app to mimic the SecWatch app as its own (PsiWatch).
- [x] Add the PDA app cartridge to Chaplain, Mantis, Cataloguer, and
Mystagogue.
- [x] Add cartridge to the Mystagogue locker (so they can give others
it).

### Loadouts
- [x] Add the epi-HUD to the Chaplain, Mantis, Cataloguer and
Mystagogue.
- [x] Add the epi-glasses to the Mystagogue.
- [x] Add the epi-glasses to Chaplain, Mantis, and Cataloguer (for 3
points).

### Mapping
- [x] Add the Psionics Registry Computer to every map.

### Miscellaneous Fixes/Changes
- [x] Make the computer only work for Chaplain (Chapel), Cataloguer
(Library), Mantis (Mantis), and Mystagogue (ResearchDirector).
- [x] Fix Chaplain PDA (did not have any programs installed
automatically, now it does).

---

# Media
I will add more media when I finish the rest. For now, it's just us.

<details><summary><h3>Registry Working</h3></summary>
<p>


https://github.com/user-attachments/assets/f534a1b6-6873-4bcd-9fe5-c7138069ecc0

</p>
</details>
<details><summary><h3>Loadouts and PsiWatch</h3></summary>
<p>

Cataloguer

![image](https://github.com/user-attachments/assets/3a5c3b2c-13e8-470f-8ea7-cff828f03e8d)
Chaplain

![image](https://github.com/user-attachments/assets/35a1255c-9447-4aeb-b200-48f2d00782e1)
Mantis

![image](https://github.com/user-attachments/assets/155ac859-10fd-4233-a84d-31f8f32b2f71)
Mystagogue

![image](https://github.com/user-attachments/assets/ddfd178f-2d79-4e1f-9226-51352eb8c0c9)

---

No Users in PsiWatch

![image](https://github.com/user-attachments/assets/63186e30-8c04-409b-8478-eb6bc9006f5f)
Suspected in PsiWatch

![image](https://github.com/user-attachments/assets/e9009714-0ed5-496f-a836-04f01f9e13e8)
Registered in PsiWatch

![image](https://github.com/user-attachments/assets/5f565ec6-4f5f-4303-89cc-f9201de01568)
Abusing in PsiWatch

![image](https://github.com/user-attachments/assets/d2f623b4-f2fa-419b-9b3e-a77001aff8ae)
PsiWatch in PDA

![image](https://github.com/user-attachments/assets/262ffd2e-f798-41db-8e45-4b64613aac0d)
Picture of the PDAs and PsiWatch Cartridge

![image](https://github.com/user-attachments/assets/ed334e8d-6236-4252-82b8-327f59609751)

---

Mystagogue Lockers with PsiWatch Cartridge

![image](https://github.com/user-attachments/assets/e56cef9c-2d9e-46bb-87ca-3e6cd2c85240)

</p>
</details>
<details><summary><h3>Mapping Locations</h3></summary>
<p>

Arena

![image](https://github.com/user-attachments/assets/b24e997d-051d-4def-a28c-dc1029566f0d)
Asterisk

![image](https://github.com/user-attachments/assets/6e2faf02-350e-4608-b629-c402d8c2a0fc)
Core

![image](https://github.com/user-attachments/assets/0d43e3a0-36c2-4c51-9745-d2a4e1d70217)
Edge

![image](https://github.com/user-attachments/assets/478180e2-e63a-4d9a-bf13-365b2648778b)
Europa

![image](https://github.com/user-attachments/assets/a385fc48-016e-40bd-8dbc-dc3904b62f05)
Gaxstation

![image](https://github.com/user-attachments/assets/207c267b-bf01-4ba5-b829-034ad26d48ef)
Glacier

![image](https://github.com/user-attachments/assets/2432840a-2ecc-4957-b82e-ed8406453fbc)
Hive

![image](https://github.com/user-attachments/assets/d03ec8a0-de82-4f0f-af90-3bb3e76c1ff7)
Lighthouse

![image](https://github.com/user-attachments/assets/3a6b8cc0-5692-4e12-a90f-8d0427469cd5)
Meta

![image](https://github.com/user-attachments/assets/c8092fd1-a2cb-4b07-966c-c13a673f16ac)
Pebble

![image](https://github.com/user-attachments/assets/084d76a1-b458-4693-a22e-3787a00f69fd)
Radstation

![image](https://github.com/user-attachments/assets/a98b48dc-70e3-429c-b2f5-99ba2a5f194a)
Saltern

![image](https://github.com/user-attachments/assets/b7e52f6f-8d55-476f-9991-de72c559fc16)
Shoukou

![image](https://github.com/user-attachments/assets/2495e13f-f07a-414d-993e-7e29e48c7f9c)
Submarine

![image](https://github.com/user-attachments/assets/08a92a84-513f-40d2-8ed3-313189805838)
Tortuga

![image](https://github.com/user-attachments/assets/0009b512-ff07-4d17-8825-71a182cb67dc)

</p>
</details>

---

# Changelog
:cl:
- add: Added Psionics Registry Computer. Now you can record Psionics
users in Epistemics.
- add: Added epi-glasses and epi-HUD to see Psionics Users icons.
(Chaplain, Cataloguer, Mantis, and Mystagogue have access in loadout).
- add: Added PsiWatch. Now you can see the Psionics Records data on your
PDA!
- fix: Fixed Chaplain not having any programs in their PDA on spawn.

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>

* Automatic Changelog Update (#1598)

* Update Redshirt Trait Description (#1616)

# Changelog

:cl:
- tweak: Made the Redshirt trait's description say what it does

Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#1616)

* BSO Changes - Headset and MedTek (#1617)

# Description
This gives the Blueshield Officer a Central Command Headset and gives
them MedTek as well (by giving ERT Leader MedTek).

The Blueshield Officer should have access to a Central Command Headset
to communicate with the other Dignitaries (NTR and MAG) and to
communicate with Central Command if they are the only acting Dignitary
as well.

The Blueshield Officer should have access to MedTek since they already
have access to their sunglasses so that they can check the injuries of
an injured command without needing a health analyzer.

---

# Changelog
:cl:
- add: Added MedTek to Blushield Officer PDA.
- tweak: Blueshield Officer now has a Central Command Headset instead of
an All-Access Command Headset.

* Automatic Changelog Update (#1617)

* Supermatter Fixes (#1618)

# Description

Supermatter was essentially interacting with atmos about 20 to 60 times
faster than the atmos system was doing its own calculations, since *at
least some of atmos* is differentiated with respect to time, whereas
Supermatter was not. Thus supermatter was updating atmos fully every
single tick, whereas elsewhere these variables were being divided by the
delta time(multiply by Update(frameTime)). You can think of these
equations as, "How much it is modified per unit of time", and
multiplying by frameTime is the same as making it, "Per second".

This should rather dramatically cut down on the problem Supermatter has
where its seemingly going to explode every single round if even the
tiniest thing goes wrong, and that nothing you could do could save it if
it catches fire.

# Changelog

:cl:
- fix: Fixed the Supermatter engine math so that it actually respects
the server's tickrate. It should now be SIGNIFICANTLY less likely to
enter a plasma fire death spiral. If it does catch fire, just make sure
coolant is being pumped into the engine, and start blasting it with a
fire extinguisher.

* Automatic Changelog Update (#1618)

* Show Puddles and Footsteps in Context Menu (#1620)

for our janitors

:cl:
- tweak: Tweaked puddles and footsteps to be able to see them in context
menu.

---------

Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Automatic Changelog Update (#1620)

* Newtonian Singularity (#1619)

# Description

By request from the very same person who assisted with
https://github.com/Simple-Station/Einstein-Engines/pull/1618
This PR ports(and fixes)
https://github.com/space-wizards/space-station-14/pull/23372 such that
it works on modern Robust Toolbox.

This PR essentially makes it so that the Singularity (And Tesla by
extension) inherit some of the momentum of objects thrown into them. Im
practice it means that they now work more like they do in SS13, whereby
if a traitor does not actively intervene in a Singuloose(such as by
using a Singularity Beacon), the singularity will usually be "Blown back
into space" by space wind throwing objects at it in retaliation to it
eating engineering.

<details><summary><h1>Media</h1></summary>
<p>


https://github.com/user-attachments/assets/04e9e5b9-d873-4425-b19a-b854b57db486

</p>
</details>

# Changelog

:cl:
- add: Singularity and Tesla are now affected by objects thrown into
them, causing them to change directions. Unless a traitor intervenes
(with a Singularity Beacon), a "Singuloose" is extremely likely to be
blown out to space.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#1619)

* Yet Another "OnPlayerSpawn" Crash Fix Attempt (#1621)

There absolutely should not be something deleting the player characters
when starting a round.

---------

Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>

* Use System (#1622)

yes this is a system

i dont know why it's not better named

* Kill Mana (#1623)

it is genuinely so bad

:cl:
- remove: Remove mana.

* Automatic Changelog Update (#1623)

* Only Use Roundstart Species for RandomHumanoid (#1624)

it will no longer choose vox or lamia.

* Update MacOS Logo (#1625)

# Description

Updated the MacOS logo to the EE one.

Also, the base logo was 256x258, which caused me physical distress, so I
fixed that too.

# Changelog

None

* Revert "Update MacOS Logo (#1625)" (#1628)

This reverts commit 881ae3be0ad5e0c8f1311738b12ebd1e142f4c82.

not a valid png

* Gladiabot (#1548)

Co-authored-by: stellar-novas <stellar_novas@riseup.net>
Co-authored-by: RedFoxIV <38788538+RedFoxIV@users.noreply.github.com>

* Automatic Changelog Update (#1548)

* Update MacOS Logo (#1629)

This is the same as #1625, but it doesn't use symlinks, which are broken
on Windows.

# Changelog

None

* Loadouts Item Failed to Spawn Check (#1630)

* Harpy Displacement Map (#1633)

# Description

Adds a displacement map for Harpies so that they can now wear pants.

<details><summary><h1>Media</h1></summary>
<p>


![image](https://github.com/user-attachments/assets/265fdbc2-66ff-4dfb-a55f-16baf946e4a2)

</p>
</details>

---

# Changelog

:cl:
- add: Harpies can now wear pants, and have a displacement map to make
them look less terrible when doing so.

* Automatic Changelog Update (#1633)

* Engine Update v240.1.3 (#1634)

* v240.1.2 (#1636)

accidentally used sourcegen

* Hotfix AI Being Eaten by Singulo (#1637)

ports #31556

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>

* Goob Mechs (#1611)

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

We like mechs here, yeah?

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl: Mocho, John Space
- tweak: The H.O.N.K. has received an airtight cabin for honk operations
in outer space.
- add: Added the Ripley MK-II, a heavy, slow all-purpose mech, featuring
a pressurized cabin for space operations.
- add: Added the Clarke, A fast moving mech for space travel, with built
in thrusters (not certain if they work properly though :trollface:)
- add: Added the Gygax, a lightly armored and highly mobile mech with
enough force to rip walls, or someone's head off.
- add: Added the Durand, a slow but beefy combat suit that you dont want
to fight in close quarters.
- add: Added the Marauder, a specialized mech issued to ERT operatives.
- add: Added the Seraph, a specialized combat suit issued to ???
operatives.
- add: The syndicate has started issuing units under the codenames "Dark
Gygax" and "Mauler" to syndicate agents at an introductory price.
- add: The exosuit fabricator can now be emagged to reveal new recipes.
- add: There are 4 new bounties cargo can fulfill for mechs. Feedback on
the cost/reward is welcome!

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: John Space <bigdumb421@gmail.com>
Co-authored-by: gluesniffler <159397573+gluesniffler@users.noreply.github.com>
Co-authored-by: ScyronX <166930367+ScyronX@users.noreply.github.com>

* Automatic Changelog Update (#1611)

* Fix Gun Contests (#1638)

Co-authored-by: VMSolidus <evilexecutive@gmail.com>

* Fix RoundLevel Test Fail (#1635)

* Player Customization (#1626)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Adds cosmetic pronouns, visible through examining people (if they have
any) as a PushMarkup.
Adds Station AI/borg name customization.

CCVars:
customize.allow_cosmetic_pronouns (default false)
customize.allow_custom_station_ai_name (default false)
customize.allow_custom_cyborg_name (default false, for borgs, mediborgs,
etc)

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- add: Added cosmetic pronouns. (disabled by default)
- add: Added Station AI name customization through character
customization. (disabled by default)
- add: Added Cyborg name customization through character customization.
(disabled by default)

* Remove Gamerule Count Test  (#1639)

* Automatic Changelog Update (#1626)

* Adds Veterancy Weapons to Sec, Removes Ion (Broken), Fixes Cutlass Sp… (#1599)

# Description

Adds some more expensive weapons to security which eat up more value.
idea from [goob
MRP](https://discord.com/channels/1323488536501944350/1330495398137298975)

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- add: Added 2 new security loadout items
- tweak: Tweaked BSO's ammo
- fix: Fixed energy cutlass sprite
- remove: Removed broken Ion component

---------

Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>

* Automatic Changelog Update (#1599)

* Box Station For EE (#1615)

# Description
Howdy, y'all, I apologize for the delay, but I've finally completed the
Box Station for EE. I've added a few things, including the supermatter
crystal (SM) with the thermal-electric generator (TEG) near the Atmos
Department TEG-KIT. I've also added all the job spawn points that were
available for now: NanotrasenRepresentative, BlueshieldOfficer,
Magistrate, AdministrativeAssistant, SeniorEngineer, SeniorPhysician,
SeniorResearcher, SeniorOfficer, MailCarrier, ForensicMantis,
Roboticist, MailCarrier, Reporter, StationAI, and MedicalBorg. Finally,
I added holopads in all departments with AI upload (all law circuit
boards).




<details><summary><h1>Media</h1></summary>
<p>

![Screenshot 2025-01-20
075641](https://github.com/user-attachments/assets/b41d0518-5bd8-48fd-ab7f-fcd3b4b8a585)
![Screenshot 2025-01-20
075630](https://github.com/user-attachments/assets/725d5af0-c238-4da3-8e8d-3944b1ecbbc3)
![Screenshot 2025-01-20
075617](https://github.com/user-attachments/assets/80e7c6f4-52b6-4754-80af-a4a1f9cafdf7)
![Screenshot 2025-01-20
075606](https://github.com/user-attachments/assets/e92b4c84-88e8-4aca-8f19-f1970406eeac)
![Screenshot 2025-01-20
075558](https://github.com/user-attachments/assets/fdbb4277-2982-4c77-81b2-73a7ee335340)
![Screenshot 2025-01-20
075552](https://github.com/user-attachments/assets/b298326e-132c-42c0-abce-3259a6d589b6)
![Screenshot 2025-01-20
075546](https://github.com/user-attachments/assets/66cda318-167f-4728-8e8c-e273f108bcbd)
![Screenshot 2025-01-20
075541](https://github.com/user-attachments/assets/22a586c8-7205-4caf-b87f-a55361c87015)
![Screenshot 2025-01-20
075535](https://github.com/user-attachments/assets/3413741d-574a-45ab-aba0-5c5bb8b315ee)
![Screenshot 2025-01-20
075521](https://github.com/user-attachments/assets/13dd5158-1956-4a16-b780-79a8b06e8efe)
![Screenshot 2025-01-20
075511](https://github.com/user-attachments/assets/efd8bd4a-8ddc-4c75-83fb-d20927f13487)
![Screenshot 2025-01-20
075505](https://github.com/user-attachments/assets/ccfb7557-dc62-4437-8472-3277973c9951)
![Screenshot 2025-01-20
075455](https://github.com/user-attachments/assets/6dd6b99b-c060-4fb8-b8d8-e7b007997f0e)
![Screenshot 2025-01-20
075449](https://github.com/user-attachments/assets/156f21d7-2856-48d0-b151-5b11d7d2f772)
![Screenshot 2025-01-20
075445](https://github.com/user-attachments/assets/2b30ddb3-1a9a-44b4-b57c-c3a6bc0deb33)
![Screenshot 2025-01-20
075433](https://github.com/user-attachments/assets/e0b22201-9cc7-48a0-abb2-da8a2b35673b)
![Screenshot 2025-01-20
075423](https://github.com/user-attachments/assets/4f2eb824-a9b1-4823-8215-361ee5d51240)
![Screenshot 2025-01-20
075400](https://github.com/user-attachments/assets/6dedfd3b-bb9d-418d-8138-dc42bb9edf80)
![Screenshot 2025-01-20
075339](https://github.com/user-attachments/assets/5b786512-7005-4a7e-b356-407734cee759)
![Screenshot 2025-01-20
075320](https://github.com/user-attachments/assets/0e6ecf0b-1a79-429e-96a0-ff9ba9185644)
![Screenshot 2025-01-20
075308](https://github.com/user-attachments/assets/e9954ada-ac51-4696-ae05-72a6bb6aac86)
![Screenshot 2025-01-20
044511](https://github.com/user-attachments/assets/b10ee8fd-9989-433a-be58-96e361e3f284)
![Screenshot 2025-01-20
044343](https://github.com/user-attachments/assets/9fcf6d20-c9ee-44d9-83e5-a2708fee750c)


</p>
</details>

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl: Mike32oz
- add: Box Station, supermatter crystal, holopads, and Thermal-electric
generator.
- tweak: Box Station, Engineer, Medical, Epistemics, Cargo, Security,
and Service Departments.
- remove: Box Station, Particle Accelerator Room in Engineer
Departments.

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: stellar-novas <stellar_novas@riseup.net>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>

* Automatic Changelog Update (#1615)

* Add MathNet.Numerics To The Project (#1641)

# Description

The documentation for it can be found here:
https://numerics.mathdotnet.com/api/MathNet.Numerics/index.htm
This adds an entire massive library of academic/scientific/engineering
math functions.

I basically need this going forwards to start comprehensively fixing
this game's terrible math.

# Changelog
Not player facing, but it deserves to be here:

:cl:
- add: (For Developers): Added the MathNet.Numerics library. It contains
a great number of scientific and engineering math related functions. For
more information, its documentation can be found here,
https://numerics.mathdotnet.com/api/MathNet.Numerics/index.htm

* Automatic Changelog Update (#1641)

* Update SupermatterSystem.Processing.cs (#1642)

# Description

Mirror of a bugfix from
https://github.com/Goob-Station/Goob-Station/pull/1469

* MathNet.Numerics Apparently Needed To Be In Server And Client Too (#1643)

Whoops. To be fair it's my first time adding something like this to a
project. :)

* Better Progress Bar (#1648)

# Description

DoAfter progress bar like in ss13 forks.

---


![2025-01-24_01-04_2](https://github.com/user-attachments/assets/df524426-cecd-4a32-a3b3-f588f11684b1)

![2025-01-24_01-03](https://github.com/user-attachments/assets/62dcb13a-4259-4980-8aa2-87de6e77a226)

![2025-01-24_01-04](https://github.com/user-attachments/assets/493c0c54-4225-40c9-8518-4da613bb2e12)

---

# Changelog

Fuck it, no need this, im not a contributor.

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>

* Removes Asphyxiation From Lamia in Favor of Pierce/Poison (#1645)

# Description

The asphyxiation damage was extremely temporary and it took less than a
cycle to get it healed up. In the current stage where you can't strangle
someone, this kind of damage is irrelevant.

Thus I have moved the 2 points of asphyx equaly to piercing and poison
instead, making the lamia melee feel a bit stronger.

---

# Changelog

:cl:
- tweak: Tweaked lamia bite

* Automatic Changelog Update (#1645)

* Change Time Requirements for Command Positions & Mystagogue (#1649)

# Description
Normalizes the time requirements for some of the command positions,
specifically the `Logistics Officer`, `Chief Engineer`, `Chief Medical
Officer`, and `Mystagogue`.

The Logistics Officer has too much overall time requirement. 40 hours
compared to other positions that only have 30 and 25? Lowered it.
The Chief Engineer and CMO have their times raised since Chief Engineer
should know more and CMO now has Surgery that they should know and be
familiar with as well.
The Mystagogue should have a slightly higher time requirement with
Psionics and should also be required to be a Mantis and Cataloguer for a
minimum of 5 hours so they know how their innate abilities and how to
deal with Psionics.

---

# Changelog
:cl:
- tweak: Logistics Officer now has 30 hours instead of 40 hours of time
requirement overall.
- tweak: Chief Engineer and CMO have 25 hours instead of 30 hours of
time requirement.
- tweak: Mystagogue now has 5 hours of time requirement as Mantis and
Cataloguer.

* Automatic Changelog Update (#1649)

* HideSpawnMenu Harpy Dummy (#1651)

fuc u tcj

---------

Signed-off-by: Aiden <aiden@djkraz.com>

* Port Stunbot and Disablerbot From Floofstation PR (#1631)

Taken from: https://github.com/Fansana/floofstation1/pull/501

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Adds the Batonbot and the Disablerbot. Both of these will idle around
until they encounter hostile wildlife, such as angry slimes, and will
then liberally apply their respective weapon until the threat is no
more.

The Batonbot has a weakened version of the Baton, applying 15 less
Stamins damage and only 4 burn damage
The Disablerbot uses the SMG Disabler bullet with a significant spread
at a fire rate of 1
This means that both of them are less powerful than a normal baton or
disabler.

They are built with:
- Proximity Sensor
- Security Helmet
- Stunbaton/Disabler
As such requiring co-operation from Security to construct.

Also included are Spawners, for if we want them on stations on
round-start.

The recipes necessitated a few new tags, which have been marked with #
Floofstation, along with the reason they were added to the entities.

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>



https://github.com/user-attachments/assets/8e6c9861-004c-4138-abcc-f0fe203ed9d0



https://github.com/user-attachments/assets/7c7cd08d-3c8e-4896-8f25-ce8cd5a4fb0e



</p>
</details>

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl: Timfa
- add: Add Batonbot
- add: Add Disablerbot

---------

Co-authored-by: stellar-novas <stellar_novas@riseup.net>

* Automatic Changelog Update (#1631)

* MODsuits (Port From Goob #1242) (#1640)

# Description

Ports MODsuits from Goobstation PR
https://github.com/Goob-Station/Goob-Station/pull/1242. The PR author
has confirmed that he is okay with me doing this.

---

# TODO

- [X] Port in sprites
- [x] Port in YMLs
- [X] Port code
- [x] Port code PATCHES
- [x] Update EE with required fixes

---

<details><summary><h1>Media</h1></summary>
<p>

## Modsuit crafting


https://github.com/user-attachments/assets/8ff03d3a-0fc1-4818-b710-bfc43f0e2a68

## Modsuit sealing


https://github.com/user-attachments/assets/6671459a-7767-499b-8678-062fc1db7134

</p>
</details>

---

# Changelog

:cl:
- add: Modsuits have been ported from Goobstation!

---------

Signed-off-by: Eris <erisfiregamer1@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

* Automatic Changelog Update (#1640)

* ChemMaster Improvements (#1650)

Hate having to use the same buffer for pills? Want sorting and container
solutions for output? No need to wait _any_ longer! A brand new pill
buffer, a sort feature _for_ the new pill buffer **and** you have your
amount buttons back!

Showcase:
https://ptb.discord.com/channels/1218698320155906090/1218698321053356060/1332224976803074123

:cl:
- add: A new ChemMaster experience has been granted to the people of
Einstein Engines. Includes a pill buffer!

* Automatic Changelog Update (#1650)

* Hardsuits Fire Protection (#1445)

# Description

I have incredibly vivid memories from SS13 over a decade ago. In
particular, every time the Supermatter delaminated, one of the Engineers
would inevitably end up heroically sacrificing themself by walking
directly into the supermatter core in order to drag the crystal to
space. This was made only possible because the engineering suits made
you immune to fire damage. It's currently not possible for engineers to
do this, since fire damage is ABSURD, and having an 80% reduction to 400
damage per second is still death in less than 3 seconds.

So this PR corrects the injustice. Now the chief engineer gets to
heroically sacrifice himself by dragging the supermatter crystal out to
space.

# Changelog

:cl:
- add: Engineering Hardsuits, Maxim Hardsuit, and Cybersun's Elite
Tacsuit now all make the wearer immune to atmos fires. Have fun walking
directly into the supermatter engine. Play out your heroic engineer
fantasy by dragging the supermatter crystal to space in order to save
the station.

---------

Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>

* Automatic Changelog Update (#1445)

* [Port] Playing Cards (#1451)

# Description


This ports Playing Cards from:
Estacao Pirata...
Frontier...
and GoobStation...

More specifically, ports
https://github.com/Goob-Station/Goob-Station/pull/1215 and
https://github.com/Goob-Station/Goob-Station/pull/1311 sequentially.

In short...
 - Adds 3 skins of the playing cards: Nanotrasen, Syndicate, and Black.
- NT can be obtained as an item in your loadout but is locked behind a
command job.
 - Syndicate can be obtained as a pointless item in the uplink for 1 TC.
- Black can be obtained both as an item in your loadout and from the
Games Vendor.

---

# TODO before review

<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->

- [X] De-namespace all of (_)EstacaoPirata? (not required, it is an EE
fork)
- [X] **_TO MAINTAINERS/CONTRIBS, NEED YOUR INPUT!!!_**: See
`Content.Client/Inventory/StrippableBoundUserInterface.cs:220`'s "DRAFT
TODO". Basically its me asking how to involve the thieving trait in the
omission of the playing cards in the strip menu. Currently, it does not
take into account the trait and simply obscures. (prolly dont take the
trait into account, obscure regardless)
- [X] Figure out what to do with the Nanotrasen deck variant: should it
remain free like the black deck or restricted like the syndicate? Locked
behind any command job? (prolly this)
- [X] Get media actually filled in

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>


![image](https://github.com/user-attachments/assets/66c94a1d-4389-4a65-a547-c11c54efac42)

</p>
</details>

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- add: Playing Cards. You may get one in the Games Vendor or as an item
in your loadout.

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>

* Automatic Changelog Update (#1451)

* Try Fix Loadouts, Again (#1652)

more than likely this is just because of invalid loadouts

* Chitinid (From Delta-V) (#1644)

port https://github.com/DeltaV-Station/Delta-v/pull/2707 (with
permission)

:cl: ElusiveCoin
- add: Added a new species, the Chitinid.

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: ElusiveCoin <elusivecoin@gmail.com>
Co-authored-by: rosieposie <52761126+rosieposieeee@users.noreply.github.com>
Co-authored-by: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

* Automatic Changelog Update (#1644)

* Change "Kill" To "Teach a Lesson" (#1654)

better for MRP
this code is originally by me anyway, they just made it better

:cl:
- tweak: Kill random person objective has been replaced by teaching them
a lesson, removing the need to RR a random person.

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>
Co-authored-by: Milon <milonpl.git@proton.me>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

* Automatic Changelog Update (#1654)

* Fix Melee Attack Speed Again (#1653)

# Description

Melee Weapons were accidentally given the wrong attack speed formula
again. It took me awhile of reviewing the entire history, but eventually
I found the line where the wizmerge introduced a new check that used the
old formula.

Also to help prevent this from happenin…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A: Mapping Area: Maps, or tools used for mapping Changes: UI Changes: Might require knowledge of UI design or code. D1: High Difficulty: Extensive codebase knowledge required. P1: High Priority: Higher priority than other items, but isn't an emergency. S: Needs Review Status: Requires additional reviews before being fully accepted size/L Denotes a PR that changes 1000-4999 lines. T: New Feature Type: New feature or content, or extending existing content T: Refactor Type: Refactor of notable amount of codebase
Projects
None yet
Development

Successfully merging this pull request may close these issues.