mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-28 02:57:52 +03:00
* Уэээээээ * Почти настрадались * Скоро конец.... * СКОРО * Мышки плакали, кололись, но продолжали упорно жрать кактус * Все ближе! * Это такой конец? * Книжка говна * фиксики * ОНО ЖИВОЕ * Телепорт * разное * Added byond * ивенты теперь работают * Разфикс телепорта * Свет мой зеркальце скажи, да всю правду доложи - Я ль робастней всех на свете? * Разное * Еще многа всего * Многа разнава * Скоро конец.... * ЭТО КОНЕЦ * Фикс линтера (ну, или я на это надеюсь) * Еще один фикс линтера * Победа! * фиксики * пу пу пу * Фикс подмастерья * Мисклик * Высокочастотный меч * Неймспейсы * Пул способностей мага
71 lines
2.2 KiB
C#
71 lines
2.2 KiB
C#
// SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
|
|
// SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
|
|
// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
|
|
//
|
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
using Content.Shared.Polymorph.Systems;
|
|
using Content.Shared.Whitelist;
|
|
using Robust.Shared.Prototypes;
|
|
|
|
namespace Content.Shared.Polymorph.Components;
|
|
|
|
/// <summary>
|
|
/// A chameleon projector polymorphs you into a clicked entity, then polymorphs back when clicked on or destroyed.
|
|
/// This creates a new dummy polymorph entity and copies the appearance over.
|
|
/// </summary>
|
|
[RegisterComponent, Access(typeof(SharedChameleonProjectorSystem))]
|
|
public sealed partial class ChameleonProjectorComponent : Component
|
|
{
|
|
/// <summary>
|
|
/// If non-null, whitelist for valid entities to disguise as.
|
|
/// </summary>
|
|
[DataField(required: true)]
|
|
public EntityWhitelist? Whitelist;
|
|
|
|
/// <summary>
|
|
/// If non-null, blacklist that prevents entities from being used even if they are in the whitelist.
|
|
/// </summary>
|
|
[DataField(required: true)]
|
|
public EntityWhitelist? Blacklist;
|
|
|
|
/// <summary>
|
|
/// Disguise entity to spawn and use.
|
|
/// </summary>
|
|
[DataField(required: true)]
|
|
public EntProtoId DisguiseProto = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Action for disabling your disguise's rotation.
|
|
/// </summary>
|
|
[DataField]
|
|
public EntProtoId NoRotAction = "ActionDisguiseNoRot";
|
|
[DataField]
|
|
public EntityUid? NoRotActionEntity;
|
|
|
|
/// <summary>
|
|
/// Action for anchoring your disguise in place.
|
|
/// </summary>
|
|
[DataField]
|
|
public EntProtoId AnchorAction = "ActionDisguiseAnchor";
|
|
[DataField]
|
|
public EntityUid? AnchorActionEntity;
|
|
|
|
/// <summary>
|
|
/// Minimum health to give the disguise.
|
|
/// </summary>
|
|
[DataField]
|
|
public float MinHealth = 1f;
|
|
|
|
/// <summary>
|
|
/// Maximum health to give the disguise, health scales with mass.
|
|
/// </summary>
|
|
[DataField]
|
|
public float MaxHealth = 100f;
|
|
|
|
/// <summary>
|
|
/// User currently disguised by this projector, if any
|
|
/// </summary>
|
|
[DataField]
|
|
public EntityUid? Disguised;
|
|
} |