-
Notifications
You must be signed in to change notification settings - Fork 66
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'Fansana:master' into friend-shaped
- Loading branch information
Showing
31 changed files
with
927 additions
and
109 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 38 additions & 0 deletions
38
Content.Server/FloofStation/Traits/Components/SquirtProducerComponent.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
using Content.Shared.FixedPoint; | ||
using Content.Shared.Chemistry.Components; | ||
using Content.Shared.Chemistry.Reagent; | ||
using Content.Shared.FloofStation.Traits; | ||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; | ||
using Robust.Shared.Prototypes; | ||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; | ||
using Robust.Shared.GameStates; | ||
|
||
namespace Content.Server.FloofStation.Traits; | ||
|
||
[RegisterComponent, Access(typeof(LewdTraitSystem))] | ||
public sealed partial class SquirtProducerComponent : Component | ||
{ | ||
[DataField("solutionname")] | ||
public string SolutionName = "vagina"; | ||
|
||
[DataField] | ||
public ProtoId<ReagentPrototype> ReagentId = "NaturalLubricant"; | ||
|
||
[DataField] | ||
public FixedPoint2 MaxVolume = FixedPoint2.New(25); | ||
|
||
[DataField] | ||
public Entity<SolutionComponent>? Solution = null; | ||
|
||
[DataField] | ||
public FixedPoint2 QuantityPerUpdate = 5; | ||
|
||
[DataField] | ||
public float HungerUsage = 10f; | ||
|
||
[DataField] | ||
public TimeSpan GrowthDelay = TimeSpan.FromSeconds(10); | ||
|
||
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] | ||
public TimeSpan NextGrowth = TimeSpan.FromSeconds(0); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
9 changes: 9 additions & 0 deletions
9
Content.Shared/Floofstation/Leash/Components/LeashAnchorComponent.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
namespace Content.Shared.Floofstation.Leash.Components; | ||
|
||
/// <summary> | ||
/// Indicates that this entity or the entity that wears this entity can be leashed. | ||
/// </summary> | ||
[RegisterComponent] | ||
public sealed partial class LeashAnchorComponent : Component | ||
{ | ||
} |
103 changes: 103 additions & 0 deletions
103
Content.Shared/Floofstation/Leash/Components/LeashComponent.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
using Robust.Shared.GameStates; | ||
using Robust.Shared.Serialization; | ||
using Robust.Shared.Utility; | ||
|
||
namespace Content.Shared.Floofstation.Leash.Components; | ||
|
||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] | ||
public sealed partial class LeashComponent : Component | ||
{ | ||
/// <summary> | ||
/// Maximum number of leash joints that this entity can create. | ||
/// </summary> | ||
[DataField, AutoNetworkedField] | ||
public int MaxJoints = 1; | ||
|
||
/// <summary> | ||
/// Default length of the leash joint. | ||
/// </summary> | ||
[DataField, AutoNetworkedField] | ||
public float Length = 3.5f; | ||
|
||
/// <summary> | ||
/// Maximum distance between the anchor and the puller beyond which the leash will break. | ||
/// </summary> | ||
[DataField, AutoNetworkedField] | ||
public float MaxDistance = 8f; | ||
|
||
/// <summary> | ||
/// The time it takes for one entity to attach/detach the leash to/from another entity. | ||
/// </summary> | ||
[DataField, AutoNetworkedField] | ||
public TimeSpan AttachDelay = TimeSpan.FromSeconds(2f), DetachDelay = TimeSpan.FromSeconds(2f); | ||
|
||
/// <summary> | ||
/// The time it takes for the leashed entity to detach itself from this leash. | ||
/// </summary> | ||
[DataField, AutoNetworkedField] | ||
public TimeSpan SelfDetachDelay = TimeSpan.FromSeconds(8f); | ||
|
||
[DataField, AutoNetworkedField] | ||
public SpriteSpecifier? LeashSprite; | ||
|
||
[DataField] | ||
public TimeSpan NextPull = TimeSpan.Zero; | ||
|
||
[DataField, AutoNetworkedField] | ||
public TimeSpan PullInterval = TimeSpan.FromSeconds(1.5f); | ||
|
||
/// <summary> | ||
/// How much damage each leash joint can sustain before it breaks. | ||
/// </summary> | ||
/// <remarks>Not currently implemented; needs to be reworked in order to work.</remarks> | ||
[DataField, AutoNetworkedField] | ||
public float BreakDamage = 20f; | ||
|
||
/// <summary> | ||
/// How much damage each leash joint loses every <see cref="DamageInterval"/>. | ||
/// </summary> | ||
/// <remarks>Not currently implemented; needs to be reworked in order to work.</remarks> | ||
[DataField, AutoNetworkedField] | ||
public float JointRepairDamage = 1f; | ||
|
||
/// <summary> | ||
/// Interval at which damage is calculated for each joint. | ||
/// </summary> | ||
/// <remarks>Not currently implemented; needs to be reworked in order to work.</remarks> | ||
[DataField, AutoNetworkedField] | ||
public TimeSpan DamageInterval = TimeSpan.FromMilliseconds(200); | ||
|
||
/// <summary> | ||
/// List of all joints and their respective pulled entities created by this leash. | ||
/// </summary> | ||
[DataField, AutoNetworkedField] | ||
public List<LeashData> Leashed = new(); | ||
|
||
[DataDefinition, Serializable, NetSerializable] | ||
public sealed partial class LeashData | ||
{ | ||
[DataField] | ||
public string JointId = string.Empty; | ||
|
||
[DataField] | ||
public NetEntity Pulled = NetEntity.Invalid; | ||
|
||
/// <summary> | ||
/// Entity used to visualize the leash. Created dynamically. | ||
/// </summary> | ||
[DataField] | ||
public NetEntity? LeashVisuals = null; | ||
|
||
[DataField] | ||
public float Damage = 0f; | ||
|
||
[DataField] | ||
public TimeSpan NextDamage = TimeSpan.Zero; | ||
|
||
public LeashData(string jointId, NetEntity pulled) | ||
{ | ||
JointId = jointId; | ||
Pulled = pulled; | ||
} | ||
}; | ||
} |
Oops, something went wrong.