-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
18 changed files
with
564 additions
and
100 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
using Content.Shared.ADT.Traits; | ||
using Content.Client.Storage.Components; | ||
using Content.Shared.Storage.EntitySystems; | ||
using Content.Shared.Verbs; | ||
using Content.Shared.Tools.Components; | ||
using Content.Shared.Whitelist; | ||
using Content.Shared.Lock; | ||
|
||
namespace Content.Client.ADT.Traits; | ||
|
||
public sealed class QuirksSystem : SharedQuirksSystem | ||
{ | ||
[Dependency] private readonly EntityWhitelistSystem _whitelist = default!; | ||
|
||
public override void Initialize() | ||
{ | ||
base.Initialize(); | ||
|
||
SubscribeLocalEvent<EntityStorageComponent, GetVerbsEvent<AlternativeVerb>>(OnGetHideVerbs); | ||
|
||
} | ||
|
||
private void OnGetHideVerbs(EntityUid uid, EntityStorageComponent comp, GetVerbsEvent<AlternativeVerb> args) | ||
{ | ||
if (!args.CanAccess || !args.CanInteract) | ||
return; | ||
|
||
if (!HasComp<FastLockersComponent>(args.User)) | ||
return; | ||
if (TryComp<WeldableComponent>(uid, out var weldable) && weldable.IsWelded) | ||
return; | ||
if (_whitelist.IsWhitelistFail(comp.Whitelist, args.User)) | ||
return; | ||
if (TryComp<LockComponent>(uid, out var lockComponent) && lockComponent.Locked) | ||
return; | ||
|
||
AlternativeVerb verb = new() | ||
{ | ||
Act = () => TryHide(args.User, uid), | ||
Text = Loc.GetString("quirk-fast-locker-hide-verb"), | ||
}; | ||
args.Verbs.Add(verb); | ||
|
||
} | ||
|
||
} |
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,46 @@ | ||
using Content.Shared.ADT.Traits; | ||
using Content.Server.Storage.Components; | ||
using Content.Shared.Storage.EntitySystems; | ||
using Content.Shared.Verbs; | ||
using Content.Shared.Tools.Components; | ||
using Content.Shared.Whitelist; | ||
using Content.Shared.Lock; | ||
|
||
namespace Content.Server.ADT.Traits; | ||
|
||
public sealed class QuirksSystem : SharedQuirksSystem | ||
{ | ||
[Dependency] private readonly EntityWhitelistSystem _whitelist = default!; | ||
public override void Initialize() | ||
{ | ||
base.Initialize(); | ||
|
||
SubscribeLocalEvent<EntityStorageComponent, GetVerbsEvent<AlternativeVerb>>(OnGetHideVerbs); | ||
|
||
} | ||
|
||
private void OnGetHideVerbs(EntityUid uid, EntityStorageComponent comp, GetVerbsEvent<AlternativeVerb> args) | ||
{ | ||
if (!args.CanAccess || !args.CanInteract) | ||
return; | ||
|
||
if (!HasComp<FastLockersComponent>(args.User)) | ||
return; | ||
if (TryComp<WeldableComponent>(uid, out var weldable) && weldable.IsWelded) | ||
return; | ||
|
||
if (_whitelist.IsWhitelistFail(comp.Whitelist, args.User)) | ||
return; | ||
if (TryComp<LockComponent>(uid, out var lockComponent) && lockComponent.Locked) | ||
return; | ||
|
||
AlternativeVerb verb = new() | ||
{ | ||
Act = () => TryHide(args.User, uid), | ||
Text = Loc.GetString("quirk-fast-locker-hide-verb"), | ||
}; | ||
args.Verbs.Add(verb); | ||
|
||
} | ||
|
||
} |
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 @@ | ||
using Robust.Shared.GameStates; | ||
|
||
namespace Content.Shared.ADT.Traits; | ||
|
||
[RegisterComponent] | ||
[NetworkedComponent] | ||
public sealed partial class FastLockersComponent : Component | ||
{ | ||
} |
13 changes: 13 additions & 0 deletions
13
Content.Shared/ADT/Quirks/Components/FreerunningComponent.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,13 @@ | ||
using Content.Shared.Tag; | ||
using Robust.Shared.Prototypes; | ||
using Robust.Shared.GameStates; | ||
|
||
namespace Content.Shared.ADT.Traits; | ||
|
||
[RegisterComponent] | ||
[NetworkedComponent] | ||
public sealed partial class FreerunningComponent : Component | ||
{ | ||
[DataField] | ||
public float Modifier = 0.6f; | ||
} |
13 changes: 13 additions & 0 deletions
13
Content.Shared/ADT/Quirks/Components/HardThrowerComponent.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,13 @@ | ||
using Content.Shared.Tag; | ||
using Robust.Shared.Prototypes; | ||
using Robust.Shared.GameStates; | ||
|
||
namespace Content.Shared.ADT.Traits; | ||
|
||
[RegisterComponent] | ||
[NetworkedComponent] | ||
public sealed partial class HardThrowerComponent : Component | ||
{ | ||
[DataField] | ||
public float Modifier = 0.8f; | ||
} |
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,12 @@ | ||
using Content.Shared.Tag; | ||
using Robust.Shared.Prototypes; | ||
using Robust.Shared.GameStates; | ||
|
||
namespace Content.Shared.ADT.Traits; | ||
|
||
[RegisterComponent] | ||
[NetworkedComponent] | ||
public sealed partial class SoftWalkComponent : Component | ||
{ | ||
public ProtoId<TagPrototype> Tag = "ShoesRequiredStepTriggerImmune"; | ||
} |
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,12 @@ | ||
using Content.Shared.Tag; | ||
using Robust.Shared.Prototypes; | ||
using Robust.Shared.GameStates; | ||
|
||
namespace Content.Shared.ADT.Traits; | ||
|
||
[RegisterComponent] | ||
[NetworkedComponent] | ||
public sealed partial class SprinterComponent : Component | ||
{ | ||
public float Modifier = 1.1f; | ||
} |
101 changes: 101 additions & 0 deletions
101
Content.Shared/ADT/Quirks/EntitySystems/SharedQuirksSystem.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,101 @@ | ||
using Robust.Shared.Prototypes; | ||
using Robust.Shared.Random; | ||
using Content.Shared.Climbing.Events; | ||
using Robust.Shared.Network; | ||
using Content.Shared.Throwing; | ||
using Content.Shared.Verbs; | ||
using Content.Shared.Tools.Components; | ||
using Content.Shared.Storage.Components; | ||
using Content.Shared.Storage.EntitySystems; | ||
using Content.Shared.Popups; | ||
using Content.Shared.Tag; | ||
using Content.Shared.Movement.Components; | ||
using Content.Shared.Movement.Systems; | ||
|
||
namespace Content.Shared.ADT.Traits; | ||
|
||
public abstract class SharedQuirksSystem : EntitySystem | ||
{ | ||
[Dependency] private readonly SharedEntityStorageSystem _storage = default!; | ||
[Dependency] protected readonly IRobustRandom _random = default!; | ||
[Dependency] private readonly IPrototypeManager _proto = default!; | ||
[Dependency] private readonly INetManager _netMan = default!; | ||
[Dependency] private readonly MovementSpeedModifierSystem _movementSpeed = default!; | ||
[Dependency] private readonly SharedPopupSystem _popup = default!; | ||
[Dependency] private readonly TagSystem _tag = default!; | ||
|
||
public override void Initialize() | ||
{ | ||
//SubscribeLocalEvent<SharedEntityStorageComponent, GetVerbsEvent<AlternativeVerb>>(OnGetHideVerbs); | ||
|
||
SubscribeLocalEvent<SoftWalkComponent, MapInitEvent>(OnSoftWalkMapInit); | ||
|
||
SubscribeLocalEvent<FreerunningComponent, CheckClimbSpeedModifiersEvent>(OnFreerunningClimbTimeModify); | ||
|
||
SubscribeLocalEvent<SprinterComponent, MapInitEvent>(OnSprinterMapInit); | ||
SubscribeLocalEvent<SprinterComponent, RefreshMovementSpeedModifiersEvent>(OnRefreshMovespeed); | ||
|
||
SubscribeLocalEvent<HardThrowerComponent, CheckThrowRangeModifiersEvent>(OnThrowerRangeModify); | ||
} | ||
|
||
//private void OnGetHideVerbs(EntityUid uid, SharedEntityStorageComponent comp, GetVerbsEvent<AlternativeVerb> args) | ||
//{ | ||
// if (!args.CanAccess || !args.CanInteract) | ||
// return; | ||
|
||
// if (!HasComp<FastLockersComponent>(args.User)) | ||
// return; | ||
// if (TryComp<WeldableComponent>(uid, out var weldable) && weldable.IsWelded) | ||
// return; | ||
// if (!comp.ItemCanStoreMobs) | ||
// return; | ||
|
||
// AlternativeVerb verb = new() | ||
// { | ||
// Act = () => TryHide(args.User, uid), | ||
// Text = Loc.GetString("quirk-fast-locker-hide-verb"), | ||
// }; | ||
// args.Verbs.Add(verb); | ||
|
||
//} | ||
|
||
public void TryHide(EntityUid uid, EntityUid closet) | ||
{ | ||
if (_storage.Insert(uid, closet)) | ||
_popup.PopupClient(Loc.GetString("quirk-fast-locker-hide-success"), uid); | ||
else | ||
_popup.PopupCursor(Loc.GetString("quirk-fast-locker-hide-fail"), uid); | ||
} | ||
|
||
private void OnSoftWalkMapInit(EntityUid uid, SoftWalkComponent comp, MapInitEvent args) | ||
{ | ||
if (_tag.HasTag(uid, comp.Tag)) | ||
RemComp<SoftWalkComponent>(uid); | ||
else | ||
_tag.AddTag(uid, comp.Tag); | ||
} | ||
|
||
private void OnFreerunningClimbTimeModify(EntityUid uid, FreerunningComponent comp, ref CheckClimbSpeedModifiersEvent args) | ||
{ | ||
if (args.User == args.Climber) | ||
args.Time *= comp.Modifier; | ||
} | ||
|
||
private void OnSprinterMapInit(EntityUid uid, SprinterComponent comp, MapInitEvent args) | ||
{ | ||
if (!TryComp<MovementSpeedModifierComponent>(uid, out var move)) | ||
return; | ||
_movementSpeed.RefreshMovementSpeedModifiers(uid, move); | ||
} | ||
private void OnRefreshMovespeed(EntityUid uid, SprinterComponent component, RefreshMovementSpeedModifiersEvent args) | ||
{ | ||
args.ModifySpeed(1f, component.Modifier); | ||
} | ||
|
||
private void OnThrowerRangeModify(EntityUid uid, HardThrowerComponent component, ref CheckThrowRangeModifiersEvent args) | ||
{ | ||
args.SpeedMod = component.Modifier; | ||
args.VectorMod = component.Modifier; | ||
} | ||
|
||
} |
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,6 @@ | ||
namespace Content.Shared.Climbing.Events; | ||
|
||
[ByRefEvent] | ||
public record struct CheckClimbSpeedModifiersEvent(EntityUid User, EntityUid Climber, EntityUid Climbable, float Time) | ||
{ | ||
} |
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
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 @@ | ||
using System.Numerics; | ||
|
||
namespace Content.Shared.Throwing; | ||
|
||
/// <summary> | ||
/// Raised on thrown entity. | ||
/// </summary> | ||
[ByRefEvent] | ||
public record struct CheckThrowRangeModifiersEvent(EntityUid? User, float VectorMod = 1f, float SpeedMod = 1f); |
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
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 @@ | ||
trait-category-quirks = Особенности |
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,14 @@ | ||
trait-soft-walk-name = Осторожный шаг | ||
trait-soft-walk-desc = Вы достаточно осторожны, чтобы не наступать на опасные точки даже без обуви. | ||
trait-freerunning-name = Паркурщик | ||
trait-freerunning-desc = Вы гораздо быстрее забираетесь на столы. | ||
trait-sprinter-name = Спринтер | ||
trait-sprinter-desc = Вы бегаете чуть быстрее остальных представителей своего вида. | ||
trait-fast-lockers-name = Ловкий | ||
trait-fast-lockers-desc = Вы можете моментально и максимально незаметно забраться внутрь шкафа, или ящика. | ||
trait-hard-thrower-name = Сильный бросок | ||
trait-hard-thrower-desc = Вы бросаетесь вещами сильнее остальных. |
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,4 @@ | ||
- type: traitCategory | ||
id: Quirks | ||
name: trait-category-quirks | ||
maxTraitPoints: 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,18 @@ | ||
- type: trait | ||
id: ADTHemophilia | ||
name: trait-hemophilia-name | ||
description: trait-hemophilia-desc | ||
category: Disabilities | ||
components: | ||
- type: Hemophilia | ||
modifier: 0.01 | ||
# - type: trait | ||
# id: ADTHemophilia | ||
# name: trait-hemophilia-name | ||
# description: trait-hemophilia-desc | ||
# category: Disabilities | ||
# components: | ||
# - type: Hemophilia | ||
# modifier: 0.01 | ||
|
||
# Simple Station | ||
# # Simple Station | ||
|
||
- type: trait | ||
id: ColorBlindnessMonochrome | ||
name: trait-monochromacy-name | ||
description: trait-monochromacy-description | ||
category: Disabilities | ||
components: | ||
- type: Monochromacy | ||
# - type: trait | ||
# id: ColorBlindnessMonochrome | ||
# name: trait-monochromacy-name | ||
# description: trait-monochromacy-description | ||
# category: Disabilities | ||
# components: | ||
# - type: Monochromacy |
Oops, something went wrong.