Files
OldThink/Content.Server/Guardian/GuardianComponent.cs
withoutcode333 08f0c51ce0 Upstream core (#284)
* [Feature] Holo Update (#948)

* Это база, основа, фундамент.

* update icons

* based2

* zamena headcoder

* протоНовые функции

     Обновлены окна персонажа для отображения статистики и навыков игрока.
     Добавлена система боевой музыки, которая активируется во время боя.
     Реализована функция широковещательной передачи сообщений в чате для нескольких получателей.
     Внедрены изменения на основе навыков и статистики для медицинских систем, включая дефибриллятор и лечение.
     Улучшена система ближнего боя с новыми действиями и сообщениями.
     Введена система предсказуемого рандома для продвинутой генерации случайных значений.
     Навыки и статистика теперь зависят от назначений на работу.

* abilities

* zvuk

* tweaks & fixes

* sprite fix

* govno

* govno2

* fix govna

* GOVNOOOOOOOOOOOO

* finally

* цена

(cherry picked from commit cf4a7d0a7ccb780905e0df7db80d60d2338c02d0)

* Automatic changelog update

(cherry picked from commit 32a1f13849b4593fa03eafff99179814278f5f11)

---------

Co-authored-by: RavmorganButOnCocaine <valtos@nextmail.ru>
2025-04-18 08:26:02 +05:00

83 lines
2.7 KiB
C#

using Content.Shared._White.Guardian;
using Robust.Shared.Audio;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Server.Guardian
{
/// <summary>
/// Given to guardians to monitor their link with the host
/// </summary>
[RegisterComponent]
public sealed partial class GuardianComponent : Component
{
/// <summary>
/// The guardian host entity
/// </summary>
[DataField]
public EntityUid? Host;
/// <summary>
/// Percentage of damage reflected from the guardian to the host
/// </summary>
[DataField("damageShare")]
public float DamageShare { get; set; } = 0.65f;
/// <summary>
/// Maximum distance the guardian can travel before it's forced to recall, use YAML to set
/// </summary>
[DataField("distance")]
public float DistanceAllowed { get; set; } = 5f;
/// <summary>
/// Maximum default distance the guardian can travel before it's forced to recall, use YAML to set
/// </summary>
[DataField("distanceDefault")]
public float DistanceAllowedDefault { get; set; } = 10f;
[DataField]
public float DistancePowerAssasin { get; set; } = 25f;
/// <summary>
/// If the guardian is currently manifested
/// </summary>
[DataField]
public bool GuardianLoose;
[DataField]
public GuardianSelector GuardianType = GuardianSelector.Standart;
[DataField("powerToggleAction", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
public string PowerToggleAction = "ActionGuardianPowerToggle";
[DataField]
public EntityUid? PowerToggleActionEntity;
[ViewVariables(VVAccess.ReadWrite), DataField]
public bool IsInPowerMode;
[DataField("chargerPowerAction", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
public string ChargerPowerAction = "ActionChargerPower";
[DataField]
public EntityUid? ChargerPowerActionEntity;
[ViewVariables(VVAccess.ReadWrite), DataField]
public bool IsCharged;
[ViewVariables(VVAccess.ReadWrite), DataField("assasinDamageModifier")]
public float AssasinDamageModifier = 3F;
[ViewVariables(VVAccess.ReadWrite), DataField]
public int LightingCount = 1;
[ViewVariables(VVAccess.ReadWrite), DataField]
public SoundSpecifier? ChargerSound = new SoundPathSpecifier("/Audio/White/Guardian/charger.ogg");
[DataField]
public EntProtoId Action = "ActionToggleGuardian";
[DataField] public EntityUid? ActionEntity;
}
}