Death Nettle changes (#25253)

* Added ThornyComponent, ThornyImmuneComponent, and ThornySystem, as well as changed Botanists glove's to have the ThornyImmuneComponent, and for Death Nettle to have the ThornyComponent.

* Added heat damage to the player if they pickup nettle without gloves. Also displays a popup message .

* Revised OnHandPickUp method and reduced whitespace

* Touching death nettle without gloves now does damage split between heat and caustic, and does more damage.

* File-scoped namespace adherence

* Code revisions, and removal of old file.

* Removed thornyImmune key from botanist's gloves in gloves.yml for cleanup / yaml linter

* Adds new generic DamageOnPickup, still very WIP

* Starting on localization, removed _Notes.txt, adds immunity component

* Added OnPickupDamageImmune component to botanists gloves

* Removed botany specific components/system, moved to generic DamageOnPickup. Added code comments. Extra checks in component for whether to toss an item, damage an entity. Still WIP.

* changes to audio and popups

* Removes my system/component/ftl in favor of DamageOnInteract, tweaking values

* me stupid

* Death nettle will 'wilt' after 5 hits

* added interaction delay to stop spam clicking, added a 10% stun (paralyze) chance

* minor changes/cleanup

* more minor changes and cleanup

* Reduced maximum amatoxin within fly amanita spores.

* Readjusted to allow more than 5 amatoxin above 50 potency

* Remove Debug.Log statement from system

* Mark Death Nettle as major contraband.
This commit is contained in:
James
2025-03-29 05:35:16 -04:00
committed by GitHub
parent 8f65144bb8
commit a8e99ff65c
5 changed files with 123 additions and 14 deletions

View File

@@ -44,4 +44,46 @@ public sealed partial class DamageOnInteractComponent : Component
/// </summary>
[DataField, AutoNetworkedField]
public bool IsDamageActive = true;
/// <summary>
/// Whether the thing should be thrown from its current position when they interact with the entity
/// </summary>
[DataField]
public bool Throw = false;
/// <summary>
/// The speed applied to the thing when it is thrown
/// </summary>
[DataField]
public int ThrowSpeed = 10;
/// <summary>
/// Time between being able to interact with this entity
/// </summary>
[DataField]
public uint InteractTimer = 0;
/// <summary>
/// Tracks the last time this entity was interacted with, but only if the interaction resulted in the user taking damage
/// </summary>
[DataField]
public TimeSpan LastInteraction = TimeSpan.Zero;
/// <summary>
/// Tracks the time that this entity can be interacted with, but only if the interaction resulted in the user taking damage
/// </summary>
[DataField]
public TimeSpan NextInteraction = TimeSpan.Zero;
/// <summary>
/// Probability that the user will be stunned when they interact with with this entity and took damage
/// </summary>
[DataField]
public float StunChance = 0.0f;
/// <summary>
/// Duration, in seconds, of the stun applied to the user when they interact with the entity and took damage
/// </summary>
[DataField]
public float StunSeconds = 0.0f;
}