-
Notifications
You must be signed in to change notification settings - Fork 381
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
New Race: IPCs #1480
New Race: IPCs #1480
Conversation
RSI Diff Bot; head commit c268b95 merging into 913a223 Resources/Textures/DeltaV/Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_alt1.rsi
Resources/Textures/DeltaV/Mobs/Customization/cyberlimbs/shellguard/shellguard_alt1.rsi
Resources/Textures/DeltaV/Mobs/Customization/cyberlimbs/xion/xion_alt1.rsi
Resources/Textures/DeltaV/Mobs/Customization/cyberlimbs/xion/xion_monitor.rsi
Resources/Textures/DeltaV/Mobs/Customization/cyberlimbs/zenghu/zenghu_main.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/bishop/bishop_alt1.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/bishop/bishop_monitor.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_monitor.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/morpheus/morpheus_alt1.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/morpheus/morpheus_main.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/shellguard/shellguard_main.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/shellguard/shellguard_monitor.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/wardtakahashi/wardtakahashi_alt1.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/wardtakahashi/wardtakahashi_main.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/wardtakahashi/wardtakahashi_monitor.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/xion/xion_main.rsi
Resources/Textures/EstacaoPirata/Mobs/Customization/cyberlimbs/xion/xion_monitor.rsi
Resources/Textures/SimpleStation14/Mobs/Customization/ipc_antenna.rsi
Resources/Textures/SimpleStation14/Mobs/Customization/ipc_screens.rsi
|
LFG |
I can at least confirm that on the DS14 playtest of these, the IPCs have had pretty much all of their known issues fixed. We're actually sufficiently satisfied with IPC, that we're probably going to be putting them on the EE repository after Saturday if nothing comes up during the next playtest. |
really recommend fixing the suicide bug; IPC can kill themselves by accidentally taking out their own battery. Which instantly crits them... Yes; only idiots would open their own panel and attempt to take shit out of them but this should be fixed to not round-remove IPC's inside maints. |
It puts them to sleep, does not crit them. Additionally, they make a loud beeping noise when their charge is low or their battery is removed, which would likely alert anyone involved |
Just editing the comment to provide more context rather than being rude; it's up to you whether or not you fix it. It's easy to argue that it's natural selection whether or not an IPC pulls their own battery out. But this does happen on Deepstation, and Delta has lowpop hours too. This is a QOL that should be implemented if you are okay to do so; as this does impact rounds and people aren't as likely to find out-of-charge IPC's as much as you think. |
resolved, they can no longer eject their own battery |
Updated the description just a bit to reflect more features |
…nent.cs Signed-off-by: VMSolidus <[email protected]>
…nent.cs Signed-off-by: VMSolidus <[email protected]>
Signed-off-by: Timemaster99 <[email protected]>
Co-authored-by: VMSolidus <[email protected]> Signed-off-by: Timemaster99 <[email protected]>
updated with VM's code review |
@DeltaV-Station/maintainers thoughts whenever you can, admins are chatting about it |
return true; | ||
} | ||
RaiseLocalEvent(uid, new ElectrocutedEvent(uid, sourceUid, siemensCoefficient, shockDamage), true); // Parkstation-IPC | ||
return true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
undo these indents
@@ -1,4 +1,4 @@ | |||
using Content.Shared.Chat.Prototypes; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
undo BOM change
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did these have BOM before?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
look at original
@@ -13,6 +13,12 @@ public sealed partial class DeathgaspComponent : Component | |||
/// <summary> | |||
/// The emote prototype to use. | |||
/// </summary> | |||
[DataField("prototype", customTypeSerializer:typeof(PrototypeIdSerializer<EmotePrototype>))] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no reason to change this, it can be done upstream and use ProtoId too
@@ -1,4 +1,4 @@ | |||
using Content.Server.Chat.Systems; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BOM
/// The minimum and maximum max charge the battery can have. | ||
/// </summary> | ||
[DataField] | ||
public Vector2 BatteryMaxMinMax = new(0.85f, 1.15f); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use destruction MinMax instead of vector2
args.Cancelled = true; | ||
} | ||
|
||
private void OnItemSlotEjectAttempt(EntityUid uid, SiliconComponent component, ref ItemSlotEjectAttemptEvent args) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
move this to a method instead of copy pasting the exact same code for each event
[ValidatePrototypeId<AlertPrototype>] | ||
public const string ChargeAlertCategory = "BorgBattery"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is stored on the component so use it instead
if (!args.CanAccess || !args.CanInteract || args.Hands == null) | ||
return; | ||
|
||
if (!TryComp(uid, out MobStateComponent? mobStateComponent) || !_mobState.IsDead(uid, mobStateComponent)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dont need the trycomp
|
||
private void TryStartup(EntityUid user, EntityUid target, DeadStartupButtonComponent comp) | ||
{ | ||
if (!_net.IsServer) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no reason to not predict this
[DataField("cycleDelay")] | ||
public float CycleDelay = 2.0f; | ||
|
||
public float AccumulatedFrametime; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't have much to say with this review other than what Deltanedas has already caught, but I decided to take a look at the yaml. If you can take everything into account from that, quite frankly giant review, great.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to have a extra line at the end of this file if it ends at line seven because that's a standard thing for YAML...
color: "#FFFFFF" | ||
sprites: | ||
- sprite: EstacaoPirata/Mobs/Customization/cyberlimbs/morpheus/morpheus_main.rsi | ||
state: r_foot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If this is the end of the file, newline.
- sprite: EstacaoPirata/Mobs/Customization/cyberlimbs/shellguard/shellguard_main.rsi | ||
state: r_foot-1 | ||
- sprite: EstacaoPirata/Mobs/Customization/cyberlimbs/shellguard/shellguard_main.rsi | ||
state: r_foot-2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If this is the end of the file, newline.
speciesRestriction: [IPC] | ||
sprites: | ||
- sprite: EstacaoPirata/Mobs/Customization/cyberlimbs/wardtakahashi/wardtakahashi_main.rsi | ||
state: r_foot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If this is the end of the file, newline.
- sprite: EstacaoPirata/Mobs/Customization/cyberlimbs/xion/xion_main.rsi | ||
state: r_foot-1 | ||
- sprite: EstacaoPirata/Mobs/Customization/cyberlimbs/xion/xion_main.rsi | ||
state: r_foot-2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If this is the end of the file, newline.
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Signed-off-by: Adeinitas <[email protected]>
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Fuckin ell. Alright, here's the deal: IPCs are cool but having such a mechanically different species is a big deal. I'm gonna wait for Sam to get back from break so we can have a quick chat about this one, and see what the future looks like for synthetics as a whole |
Timemaster pleaseeeee get IPC into the game :3 |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Heya! Since this PR has gotten no commits or activity in the past 2 months, I'm going to close it. If you ever come back to this, feel free to open a new PR. |
# Description This PR brings back a feature that was present in the Psionic Refactor Version 1, which ultimately never made it into the game. I have substantially reworked the underlying math behind Glimmer, such that it operates on a Logistic Curve described by this equation: ![GlimmerEquation](https://github.com/user-attachments/assets/b079c0f6-5944-408f-adf6-170b8472d6c2) Instead of 0 being the "Normal" amount of glimmer, the "Normal" amount is the "seemingly arbitrary" number 502.941. This number is measured first by taking the derivative of the Glimmer Equation, and then solving for the derivative equal to 1. Above this constant, glimmer grows exponentially more difficult to increase. Below this constant, glimmer grows exponentially easier to increase. It will thus constantly attempt to trend towards the "Glimmer Equilibrium". Probers, Drainers, Anomalies, and Glimmer Mites all cause glimmer to "Fluctuate", either up or down the graph. This gives a glimmer that swings constantly to both high and low values, with more violent swings being caused by having more probers/anomalies etc. A great deal of math functions have been implemented that allow for various uses for glimmer measurements, and psionic powers can even have their effects modified by said measurements. The most significant part of this rework is what's facing Epistemics. It's essentially no longer possible for Probers to cause a round-ending chain of events known as "Glimmerloose". You can ALWAYS recover from high glimmer, no matter how high it gets. As a counterpart to this, Probers have had the math behind their research point generation reworked. Research output follows an inverse log base 4 curve. Which can be found here: https://www.desmos.com/calculator/q183tseun8 I wouldn't drop this massive update on people without a way for them to understand what's going on. So this PR also features the return(and expansion of), the much-demanded Psionics Guidebook. <details><summary><h1>Media</h1></summary> <p> Psionics Guidebook ![image](https://github.com/user-attachments/assets/6449f518-bdce-4ba5-a9f5-9f87b5c424c9) ![image](https://github.com/user-attachments/assets/5cf5d5a1-8567-40ae-a020-af074cf9abe3) </p> </details> # Changelog :cl: VMSolidus, Gollee - add: Glimmer has been substantially reworked. Please read the new Psionics Guidebook for more information. In short: "500 is the new normal glimmer. Stop panicking if Sophia says the glimmer is 500. Call code white if it gets to 750 and stays above that level." - add: The much-requested Psionics Guidebook has returned, now with all new up-to-date information. - remove: Removed "GLIMMERLOOSE". It's no longer possible for glimmer to start a chain of events that ends the round if epistemics isn't destroyed. You can ALWAYS recover from high glimmer now. - tweak: All glimmer events have had their thresholds tweaked to reflect the fact that 500 is the new "Normal" amount of glimmer. --------- Signed-off-by: VMSolidus <[email protected]>
About the PR
IPC race, ported over from this PR at deep. This includes the race with all old methods and conventions redone to work with our codebase.
Why / Balance
The balance information is at the linked PR, but here is a simple list. There will be some things missed here
Pros:
Cons:
Technical details
Adds multiple components exclusive to IPC, including its own
SharedSiliconSystem
to handle this silicon-type mob. The only thing I had to nuke from the DS14 port was theFlammableComponent
'satmosTransferEfficiency
, since it doesn't seem to exist anymore in the component.Media
These are videos taken from the PR at DS14, which are taken from the fork Estação Pirata.
2024-04-10_22-04-33.mp4
2024-04-10_23-28-58.mp4
2024-06-11_18-44-59.mp4
Breaking changes
Changelog
🆑