fish-station/Content.Shared/_Sunrise/Anomaly/Components/AnomalyAutoInjectorComponent.cs
KAVALDi b40fb3101a
ПТ 2.0 | Metus | новая карта, роли, спавнеры, автоинъекторы... (#2692)
Co-authored-by: KAVALDi <localhost>
Co-authored-by: Vigers Ray <vigersray@gmail.com>
2025-09-26 23:36:33 +03:00

73 lines
2.9 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ключи локализации не используются, т.к. данная разработка только на одном языке, включая комментарии для кода.
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared._Sunrise.Anomaly.Components;
[RegisterComponent]
public sealed partial class AnomalyAutoInjectorComponent : Component // ниже значения по умолчанию, если не указали в yml
{
[DataField]
[ViewVariables]
public int CellularDamage = 50; // урон лечится фалангимином и доксарубиксадоном
[DataField]
[ViewVariables]
public int AnomalyDelay = 60; // через сколько сек цель первратится в аномалию после иньекции
[DataField]
[ViewVariables]
public int RainbowDuration = 60; // появляется от 20сек!
[DataField]
[ViewVariables]
public EntProtoId RainbowEffect = "StatusEffectSeeingRainbows"; // слабый эффект галлюцинаций
[DataField]
[ViewVariables]
public float RainbowEffectIntensity = 0.1f; // интенсивность эффекта галлюцинаций
// Для локализации: ключи, а не строки. Использовать Loc.GetString(Popup...) при показе.
[DataField]
[ViewVariables]
public string PopupNothingToInject = "uplink-anomaly-auto-injector-popup-nothing-to-inject";
[DataField]
[ViewVariables]
public string PopupNotApplicable = "uplink-anomaly-auto-injector-popup-not-applicable"; // остальные мобы, кроме гуманодов
[DataField]
[ViewVariables]
public string PopupPending = "uplink-anomaly-auto-injector-popup-pending"; // стадия заражения после инъекции
[DataField]
[ViewVariables]
public string PopupInfected = "uplink-anomaly-auto-injector-popup-infected"; // уже когда превратился в аномалию
[DataField]
[ViewVariables]
public string HypospraySound = "/Audio/Items/hypospray.ogg";
[DataField]
[ViewVariables]
public List<EntProtoId> AnomalyTrapProtos = new();
}
public enum AnomalyAutoInjectorVisualLayers : byte
{
Base
}
[RegisterComponent, NetworkedComponent] // Используется для смены спрайта и блокировки повторного использования инъектора
public sealed partial class UsedAnomalyAutoInjectorComponent : Component
{
[DataField]
[ViewVariables]
public string SpriteStateFull = "anomagen";
[DataField]
[ViewVariables]
public string SpriteStateEmpty = "anomagen_empty";
[DataField]
[ViewVariables]
public AnomalyAutoInjectorVisualLayers SpriteLayer = AnomalyAutoInjectorVisualLayers.Base;
}