diff --git a/Content.Server/Medical/HealthAnalyzerSystem.cs b/Content.Server/Medical/HealthAnalyzerSystem.cs index d46a65a957..39c425a682 100644 --- a/Content.Server/Medical/HealthAnalyzerSystem.cs +++ b/Content.Server/Medical/HealthAnalyzerSystem.cs @@ -3,6 +3,7 @@ using Content.Server.AbstractAnalyzer; using Content.Server.Body.Components; using Content.Server.Medical.Components; using Content.Server.Temperature.Components; +using Content.Shared._Sunrise.Research.Artifact; using Content.Shared.Traits.Assorted; using Content.Shared.Chemistry.EntitySystems; using Content.Shared.Damage; @@ -58,6 +59,10 @@ public sealed class HealthAnalyzerSystem : AbstractAnalyzerSystem(target, out var unrevivableComp) && unrevivableComp.Analyzable) unrevivable = true; + // Sunrise edit start - новый триггер + RaiseLocalEvent(target, new EntityAnalyzedEvent ()); + // Sunrise edit end + _uiSystem.ServerSendUiMessage(healthAnalyzer, HealthAnalyzerUiKey.Key, new HealthAnalyzerScannedUserMessage( GetNetEntity(target), bodyTemperature, diff --git a/Content.Server/_Sunrise/Helpers/SunriseHelpersSystem.cs b/Content.Server/_Sunrise/Helpers/SunriseHelpersSystem.cs new file mode 100644 index 0000000000..2a8542474f --- /dev/null +++ b/Content.Server/_Sunrise/Helpers/SunriseHelpersSystem.cs @@ -0,0 +1,127 @@ +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using Content.Server.Atmos.EntitySystems; +using Content.Server.Station.Components; +using Content.Shared._Sunrise.Helpers; +using Content.Shared.Random.Helpers; +using Robust.Server.GameObjects; +using Robust.Shared.Collections; +using Robust.Shared.Map; +using Robust.Shared.Map.Components; +using Robust.Shared.Random; + +namespace Content.Server._Sunrise.Helpers; + +/// +/// Система-набор хелпер методов +/// +public sealed partial class SunriseHelpersSystem : SharedSunriseHelpersSystem +{ + [Dependency] private readonly AtmosphereSystem _atmosphere = default!; + [Dependency] private readonly MapSystem _map = default!; + [Dependency] private readonly IRobustRandom _random = default!; + + #region Private + + private bool TryGetRandomStation([NotNullWhen(true)] out EntityUid? station, Func? filter = null) + { + var stations = new ValueList(Count()); + + filter ??= _ => true; + var query = AllEntityQuery(); + + while (query.MoveNext(out var uid, out _)) + { + if (!filter(uid)) + continue; + + stations.Add(uid); + } + + if (stations.Count == 0) + { + station = null; + return false; + } + + station = stations[_random.Next(stations.Count)]; + return true; + } + + #endregion + + #region Tile + + public bool TryFindRandomTile(out Vector2i tile, + [NotNullWhen(true)] out EntityUid? targetStation, + out EntityUid targetGrid, + out EntityCoordinates targetCoords) + { + tile = default; + targetStation = EntityUid.Invalid; + targetGrid = EntityUid.Invalid; + targetCoords = EntityCoordinates.Invalid; + if (TryGetRandomStation(out targetStation)) + { + return TryFindRandomTileOnStation((targetStation.Value, Comp(targetStation.Value)), + out tile, + out targetGrid, + out targetCoords); + } + + return false; + } + + public bool TryFindRandomTileOnStation(Entity station, + out Vector2i tile, + out EntityUid targetGrid, + out EntityCoordinates targetCoords) + { + tile = default; + targetCoords = EntityCoordinates.Invalid; + targetGrid = EntityUid.Invalid; + + var weights = new Dictionary, float>(); + foreach (var possibleTarget in station.Comp.Grids) + { + if (!TryComp(possibleTarget, out var comp)) + continue; + + weights.Add((possibleTarget, comp), _map.GetAllTiles(possibleTarget, comp).Count()); + } + + if (weights.Count == 0) + { + targetGrid = EntityUid.Invalid; + return false; + } + + (targetGrid, var gridComp) = _random.Pick(weights); + + var found = false; + var aabb = gridComp.LocalAABB; + + for (var i = 0; i < 10; i++) + { + var randomX = _random.Next((int) aabb.Left, (int) aabb.Right); + var randomY = _random.Next((int) aabb.Bottom, (int) aabb.Top); + + tile = new Vector2i(randomX, randomY); + if (_atmosphere.IsTileSpace(targetGrid, Transform(targetGrid).MapUid, tile) + || _atmosphere.IsTileAirBlocked(targetGrid, tile, mapGridComp: gridComp) + || !_map.TryGetTileRef(targetGrid, gridComp, tile, out var tileRef) + || tileRef.Tile.IsEmpty) + { + continue; + } + + found = true; + targetCoords = _map.GridTileToLocal(targetGrid, gridComp, tile); + break; + } + + return found; + } + + #endregion +} diff --git a/Content.Server/_Sunrise/Misc/ShiftedAsciiTableAccent/ShiftedAsciiTableAccentSystem.cs b/Content.Server/_Sunrise/Misc/ShiftedAsciiTableAccent/ShiftedAsciiTableAccentSystem.cs new file mode 100644 index 0000000000..57061d001e --- /dev/null +++ b/Content.Server/_Sunrise/Misc/ShiftedAsciiTableAccent/ShiftedAsciiTableAccentSystem.cs @@ -0,0 +1,39 @@ +using Content.Server.Speech; +using Robust.Shared.Random; + +namespace Content.Server._Sunrise.Misc.ShiftedAsciiTableAccent; + +public sealed class AnomalyAccentSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + + // Значения сдвига по юникоду + private const int ShiftMin = 5; + private const int ShiftMax = 200; + + public override void Initialize() + { + SubscribeLocalEvent(OnAccent); + } + + private void OnAccent(Entity ent, ref AccentGetEvent args) + { + args.Message = Accentuate(args.Message); + } + + private string Accentuate(string message) + { + var speechArray = message.ToCharArray(); + + for (var i = 0; i < speechArray.Length; i++) + { + if (!_random.Prob(0.5f)) + continue; + + // Сдвиг символа по алфавиту юникода + speechArray[i] = (char)(speechArray[i] + _random.Next(ShiftMin, ShiftMax)); + } + + return new string(speechArray); + } +} diff --git a/Content.Server/_Sunrise/Misc/ShiftedAsciiTableAccent/ShiftedAsciiTabledAccentComponent.cs b/Content.Server/_Sunrise/Misc/ShiftedAsciiTableAccent/ShiftedAsciiTabledAccentComponent.cs new file mode 100644 index 0000000000..fa92358fde --- /dev/null +++ b/Content.Server/_Sunrise/Misc/ShiftedAsciiTableAccent/ShiftedAsciiTabledAccentComponent.cs @@ -0,0 +1,4 @@ +namespace Content.Server._Sunrise.Misc.ShiftedAsciiTableAccent; + +[RegisterComponent] +public sealed partial class AnomalyAccentComponent : Component; diff --git a/Content.Server/_Sunrise/Misc/TimedRemoveComponents/TimedRemoveComponentsComponent.cs b/Content.Server/_Sunrise/Misc/TimedRemoveComponents/TimedRemoveComponentsComponent.cs new file mode 100644 index 0000000000..6d5cec935d --- /dev/null +++ b/Content.Server/_Sunrise/Misc/TimedRemoveComponents/TimedRemoveComponentsComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.Prototypes; + +namespace Content.Server._Sunrise.Misc.TimedRemoveComponents; + +/// +/// Компонент, который автоматически убирает переданные компоненты через переданное время +/// +[RegisterComponent] +public sealed partial class TimedRemoveComponentsComponent : Component +{ + [DataField(required: true)] + public ComponentRegistry Components = default!; + + [DataField] + public TimeSpan RemoveAfter = TimeSpan.FromSeconds(5); +} diff --git a/Content.Server/_Sunrise/Misc/TimedRemoveComponents/TimedRemoveComponentsSystem.cs b/Content.Server/_Sunrise/Misc/TimedRemoveComponents/TimedRemoveComponentsSystem.cs new file mode 100644 index 0000000000..18081de4a2 --- /dev/null +++ b/Content.Server/_Sunrise/Misc/TimedRemoveComponents/TimedRemoveComponentsSystem.cs @@ -0,0 +1,41 @@ +using System.Threading; +using Content.Shared.GameTicking; +using Timer = Robust.Shared.Timing.Timer; + +namespace Content.Server._Sunrise.Misc.TimedRemoveComponents; + +public sealed class TimedRemoveComponentsSystem : EntitySystem +{ + private static CancellationTokenSource _timerDespawnToken = new (); + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnInit); + + SubscribeLocalEvent(_ => Clear()); + } + + private void OnInit(Entity ent, ref ComponentInit args) + { + Timer.Spawn(ent.Comp.RemoveAfter, () => RemoveComponents(ent), _timerDespawnToken.Token); + } + + private void RemoveComponents(Entity ent) + { + if (!Exists(ent)) + return; + + EntityManager.RemoveComponents(ent, ent.Comp.Components); + + // блять, я себя захуярил + RemComp(ent); + } + + private static void Clear() + { + _timerDespawnToken.Cancel(); + _timerDespawnToken = new(); + } +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/AddComponentsInRadius/AddComponentsInRadiusComponent.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/AddComponentsInRadius/AddComponentsInRadiusComponent.cs new file mode 100644 index 0000000000..e136afa323 --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/AddComponentsInRadius/AddComponentsInRadiusComponent.cs @@ -0,0 +1,22 @@ +using Content.Shared.Examine; +using Content.Shared.Whitelist; +using Robust.Shared.Prototypes; + +namespace Content.Server._Sunrise.Research.Artifact.Effects.AddComponentsInRadius; + +/// +/// Добавляет всем подходящим под вайтлист сущностням в переданном радиусе переданные компоненты +/// Если вайтлист пуст, то добавляет компоненты ВСЕМ СУЩНОСТЯМ ВОКРУГ +/// +[RegisterComponent] +public sealed partial class AddComponentsInRadiusComponent : Component +{ + [DataField(required: true)] + public ComponentRegistry Components = default!; + + [DataField, ViewVariables] + public float Radius = ExamineSystemShared.ExamineRange; + + [DataField] + public EntityWhitelist? Whitelist; +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/AddComponentsInRadius/AddComponentsInRadiusSystem.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/AddComponentsInRadius/AddComponentsInRadiusSystem.cs new file mode 100644 index 0000000000..d72518d844 --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/AddComponentsInRadius/AddComponentsInRadiusSystem.cs @@ -0,0 +1,24 @@ +using System.Linq; +using Content.Shared.Whitelist; +using Content.Shared.Xenoarchaeology.Artifact; +using Content.Shared.Xenoarchaeology.Artifact.XAE; + +namespace Content.Server._Sunrise.Research.Artifact.Effects.AddComponentsInRadius; + +public sealed class AddComponentsInRadiusSystem : BaseXAESystem +{ + [Dependency] private readonly EntityWhitelistSystem _whitelist = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + + protected override void OnActivated(Entity ent, ref XenoArtifactNodeActivatedEvent args) + { + var coords = Transform(ent).Coordinates; + var targets = _lookup.GetEntitiesInRange(coords, ent.Comp.Radius) + .Where(e => _whitelist.IsWhitelistPassOrNull(ent.Comp.Whitelist, e)); + + foreach (var target in targets) + { + EntityManager.AddComponents(target, ent.Comp.Components, false); + } + } +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/BoltAirlocks/ArtifactBoltAirlocksComponent.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/BoltAirlocks/ArtifactBoltAirlocksComponent.cs new file mode 100644 index 0000000000..34a3d685c1 --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/BoltAirlocks/ArtifactBoltAirlocksComponent.cs @@ -0,0 +1,8 @@ +namespace Content.Server._Sunrise.Research.Artifact.Effects.BoltAirlocks; + +[RegisterComponent] +public sealed partial class ArtifactBoltAirlocksComponent : Component +{ + [DataField] public float Range = 12f; + [DataField] public float Chance = 70f; +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/BoltAirlocks/ArtifactBoltAirlocksSystem.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/BoltAirlocks/ArtifactBoltAirlocksSystem.cs new file mode 100644 index 0000000000..c0182d82cf --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/BoltAirlocks/ArtifactBoltAirlocksSystem.cs @@ -0,0 +1,26 @@ +using Content.Server._Sunrise.Helpers; +using Content.Server.Doors.Systems; +using Content.Shared.Doors.Components; +using Content.Shared.Xenoarchaeology.Artifact; +using Content.Shared.Xenoarchaeology.Artifact.XAE; + +namespace Content.Server._Sunrise.Research.Artifact.Effects.BoltAirlocks; + +public sealed class ArtifactBoltAirlocksSystem : BaseXAESystem +{ + [Dependency] private readonly DoorSystem _door = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly SunriseHelpersSystem _sunriseHelpers = default!; + + protected override void OnActivated(Entity ent, ref XenoArtifactNodeActivatedEvent args) + { + var coords = Transform(ent).Coordinates; + var doors = _lookup.GetEntitiesInRange(coords, ent.Comp.Range, LookupFlags.Static); + var reducedDoors = _sunriseHelpers.GetPercentageOfHashSet(doors, ent.Comp.Chance); + + foreach (var door in reducedDoors) + { + _door.SetBoltsDown(door, true); + } + } +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/ModifyHunger/ArtifactModifyHungerComponent.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/ModifyHunger/ArtifactModifyHungerComponent.cs new file mode 100644 index 0000000000..941b92b0d0 --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/ModifyHunger/ArtifactModifyHungerComponent.cs @@ -0,0 +1,8 @@ +namespace Content.Server._Sunrise.Research.Artifact.Effects.ModifyHunger; + +[RegisterComponent] +public sealed partial class ArtifactModifyHungerComponent : Component +{ + [DataField] public float Range = 12f; + [DataField] public float Amount = 40f; +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/ModifyHunger/ArtifactModifyHungerSystem.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/ModifyHunger/ArtifactModifyHungerSystem.cs new file mode 100644 index 0000000000..b596876430 --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/ModifyHunger/ArtifactModifyHungerSystem.cs @@ -0,0 +1,25 @@ +using Content.Shared.Nutrition.Components; +using Content.Shared.Nutrition.EntitySystems; +using Content.Shared.Xenoarchaeology.Artifact; +using Content.Shared.Xenoarchaeology.Artifact.XAE; +using Robust.Shared.Random; + +namespace Content.Server._Sunrise.Research.Artifact.Effects.ModifyHunger; + +public sealed class ArtifactModifyHungerSystem : BaseXAESystem +{ + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly HungerSystem _hunger = default!; + [Dependency] private readonly IRobustRandom _random = default!; + + protected override void OnActivated(Entity ent, ref XenoArtifactNodeActivatedEvent args) + { + var humans = _lookup.GetEntitiesInRange(Transform(ent).Coordinates, ent.Comp.Range); + + foreach (var uid in humans) + { + var modifier = _random.NextFloat(-1f, 1f); + _hunger.ModifyHunger(uid, modifier * ent.Comp.Amount); + } + } +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/ModifyThirst/ArtifactModifyThirstComponent.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/ModifyThirst/ArtifactModifyThirstComponent.cs new file mode 100644 index 0000000000..14b99159a9 --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/ModifyThirst/ArtifactModifyThirstComponent.cs @@ -0,0 +1,8 @@ +namespace Content.Server._Sunrise.Research.Artifact.Effects.ModifyThirst; + +[RegisterComponent] +public sealed partial class ArtifactModifyThirstComponent : Component +{ + [DataField] public float Range = 12f; + [DataField] public float Amount = 40f; +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/ModifyThirst/ArtifactModifyThirstSystem.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/ModifyThirst/ArtifactModifyThirstSystem.cs new file mode 100644 index 0000000000..f2f074ae7d --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/ModifyThirst/ArtifactModifyThirstSystem.cs @@ -0,0 +1,25 @@ +using Content.Shared.Nutrition.Components; +using Content.Shared.Nutrition.EntitySystems; +using Content.Shared.Xenoarchaeology.Artifact; +using Content.Shared.Xenoarchaeology.Artifact.XAE; +using Robust.Shared.Random; + +namespace Content.Server._Sunrise.Research.Artifact.Effects.ModifyThirst; + +public sealed class ArtifactModifyThirstSystem : BaseXAESystem +{ + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly ThirstSystem _thirst = default!; + [Dependency] private readonly IRobustRandom _random = default!; + + protected override void OnActivated(Entity ent, ref XenoArtifactNodeActivatedEvent args) + { + var humans = _lookup.GetEntitiesInRange(Transform(ent).Coordinates, ent.Comp.Range); + + foreach (var uid in humans) + { + var modifier = _random.NextFloat(-1f, 1f); + _thirst.ModifyThirst(uid, uid, modifier * ent.Comp.Amount); + } + } +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/RandomTransformation/ArtifactRandomTransformationComponent.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/RandomTransformation/ArtifactRandomTransformationComponent.cs new file mode 100644 index 0000000000..3a6d0840e5 --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/RandomTransformation/ArtifactRandomTransformationComponent.cs @@ -0,0 +1,19 @@ +using Robust.Shared.Prototypes; + +namespace Content.Server._Sunrise.Research.Artifact.Effects.RandomTransformation; + +[RegisterComponent] +public sealed partial class ArtifactRandomTransformationComponent : Component +{ + [DataField, ViewVariables] + public float TransformationPercentRatio = 20f; + + [DataField, ViewVariables] + public float Radius = 12f; + + [DataField] + public HashSet? PrototypeBlacklist; + + [DataField] + public HashSet>? CategoryBlacklist; +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/RandomTransformation/ArtifactRandomTransformationSystem.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/RandomTransformation/ArtifactRandomTransformationSystem.cs new file mode 100644 index 0000000000..e23750e090 --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/RandomTransformation/ArtifactRandomTransformationSystem.cs @@ -0,0 +1,98 @@ +using System.Linq; +using Content.Server._Sunrise.Helpers; +using Content.Shared.Inventory; +using Content.Shared.Item; +using Content.Shared.Xenoarchaeology.Artifact; +using Content.Shared.Xenoarchaeology.Artifact.XAE; +using Robust.Server.GameObjects; +using Robust.Shared.Map; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; + +namespace Content.Server._Sunrise.Research.Artifact.Effects.RandomTransformation; + +public sealed class ArtifactRandomTransformationSystem : BaseXAESystem +{ + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly SunriseHelpersSystem _sunriseHelpers = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly IPrototypeManager _prototype = default!; + + protected override void OnActivated(Entity ent, ref XenoArtifactNodeActivatedEvent args) + { + var coords = Transform(ent).Coordinates; + var entities = _lookup.GetEntitiesInRange(coords, ent.Comp.Radius) + .Select(e => e.Owner) + .ToHashSet(); + + SearchPlayersInventoryForItems(ent, coords, out var inventoryItems); + + ReduceAndTransform(ent, inventoryItems); + ReduceAndTransform(ent, entities); + } + + private void SearchPlayersInventoryForItems(Entity ent, EntityCoordinates coords, out HashSet items) + { + var players = _lookup.GetEntitiesInRange(coords, ent.Comp.Radius); + items = []; + + foreach (var player in players) + { + var inventorySlots = _inventory.GetSlotEnumerator(player.Owner); + + while (inventorySlots.MoveNext(out var slot)) + { + if (!_inventory.TryGetSlotEntity(player, slot.ID, out var itemUid)) + continue; + + items.Add(itemUid.Value); + } + } + } + + private void ReduceAndTransform(Entity ent, IReadOnlyCollection entities) + { + var items = _sunriseHelpers.GetPercentageOfHashSet(entities, ent.Comp.TransformationPercentRatio); + + DoTransformation(ent, items); + } + + private void DoTransformation(Entity ent, IEnumerable items) + { + foreach (var item in items) + { + if (!_prototype.TryGetRandom(_random, out var prototype)) + continue; + + var proto = (EntityPrototype) prototype; + + if (!CanSpawnEntity(ent, proto)) + continue; + + /* + * TODO: Обработка ентити в контейнерах + * Требуется сделать проверку, что если ентити находится в контейнере + * То после создания нового оно помещается в тот же слот контейнера + */ + + Spawn(prototype.ID, _transform.GetMapCoordinates(item)); + QueueDel(item); + } + } + + private static bool CanSpawnEntity(Entity ent, EntityPrototype proto) + { + if (ent.Comp.PrototypeBlacklist != null && ent.Comp.PrototypeBlacklist.Contains(proto.ID)) + return false; + + if (proto.Abstract) + return false; + + if (ent.Comp.CategoryBlacklist != null && proto.Categories.Any(c => ent.Comp.CategoryBlacklist.Contains(c))) + return false; + + return true; + } +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/StartGameRule/ArtifactStartGameRuleComponent.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/StartGameRule/ArtifactStartGameRuleComponent.cs new file mode 100644 index 0000000000..17d38a27f2 --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/StartGameRule/ArtifactStartGameRuleComponent.cs @@ -0,0 +1,10 @@ +using Robust.Shared.Prototypes; + +namespace Content.Server._Sunrise.Research.Artifact.Effects.StartGamerule; + +[RegisterComponent] +public sealed partial class ArtifactStartGameRuleComponent : Component +{ + [DataField(required: true)] + public Dictionary Rules = new (); +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/StartGameRule/ArtifactStartGameRuleSystem.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/StartGameRule/ArtifactStartGameRuleSystem.cs new file mode 100644 index 0000000000..373b7dcb7c --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/StartGameRule/ArtifactStartGameRuleSystem.cs @@ -0,0 +1,21 @@ +using Content.Server.GameTicking; +using Content.Shared.Xenoarchaeology.Artifact; +using Content.Shared.Xenoarchaeology.Artifact.XAE; + +namespace Content.Server._Sunrise.Research.Artifact.Effects.StartGamerule; + +public sealed class ArtifactStartGameRuleSystem : BaseXAESystem +{ + [Dependency] private readonly GameTicker _gameTicker = default!; + + protected override void OnActivated(Entity ent, ref XenoArtifactNodeActivatedEvent args) + { + foreach (var (rule, amount) in ent.Comp.Rules) + { + for (var i = 0; i < amount; i++) + { + _gameTicker.StartGameRule(rule); + } + } + } +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/WhitelistSwap/ArtifactWhitelistSwapComponent.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/WhitelistSwap/ArtifactWhitelistSwapComponent.cs new file mode 100644 index 0000000000..4da8e01c2c --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/WhitelistSwap/ArtifactWhitelistSwapComponent.cs @@ -0,0 +1,10 @@ +using Content.Shared.Whitelist; + +namespace Content.Server._Sunrise.Research.Artifact.Effects.WhitelistSwap; + +[RegisterComponent] +public sealed partial class ArtifactWhitelistSwapComponent : Component +{ + [DataField(required: true)] + public EntityWhitelist TargetWhitelist; +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Effects/WhitelistSwap/ArtifactWhitelistSwapSystem.cs b/Content.Server/_Sunrise/Research/Artifact/Effects/WhitelistSwap/ArtifactWhitelistSwapSystem.cs new file mode 100644 index 0000000000..14efed4204 --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Effects/WhitelistSwap/ArtifactWhitelistSwapSystem.cs @@ -0,0 +1,31 @@ +using System.Linq; +using Content.Server._Sunrise.Helpers; +using Content.Shared.Humanoid; +using Content.Shared.Whitelist; +using Content.Shared.Xenoarchaeology.Artifact; +using Content.Shared.Xenoarchaeology.Artifact.XAE; +using Robust.Server.GameObjects; +using Robust.Shared.Random; + +namespace Content.Server._Sunrise.Research.Artifact.Effects.WhitelistSwap; + +public sealed class ArtifactWhitelistSwapSystem : BaseXAESystem +{ + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelist = default!; + [Dependency] private readonly SunriseHelpersSystem _sunriseHelpers = default!; + [Dependency] private readonly IRobustRandom _random = default!; + + protected override void OnActivated(Entity ent, ref XenoArtifactNodeActivatedEvent args) + { + var humans = _sunriseHelpers.GetAll().ToList(); + var targets = _sunriseHelpers.GetAll() + .Where(e => _whitelist.IsWhitelistPassOrNull(ent.Comp.TargetWhitelist, e)) + .ToList(); + + var ent1 = _random.PickAndTake(humans); + var ent2 = _random.PickAndTake(targets); + + _transform.SwapPositions((ent1, ent1.Comp2), (ent2, ent2)); + } +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Triggers/HealthAnalyzerInteraction/ArtifactHealthAnalyzerInteractionTriggerComponent.cs b/Content.Server/_Sunrise/Research/Artifact/Triggers/HealthAnalyzerInteraction/ArtifactHealthAnalyzerInteractionTriggerComponent.cs new file mode 100644 index 0000000000..7cd51a80d6 --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Triggers/HealthAnalyzerInteraction/ArtifactHealthAnalyzerInteractionTriggerComponent.cs @@ -0,0 +1,7 @@ +namespace Content.Server._Sunrise.Research.Artifact.Triggers.HealthAnalyzerInteraction; + +[RegisterComponent] +public sealed partial class ArtifactHealthAnalyzerInteractionTriggerComponent : Component +{ + +} diff --git a/Content.Server/_Sunrise/Research/Artifact/Triggers/HealthAnalyzerInteraction/ArtifactHealthAnalyzerInteractionTriggerSystem.cs b/Content.Server/_Sunrise/Research/Artifact/Triggers/HealthAnalyzerInteraction/ArtifactHealthAnalyzerInteractionTriggerSystem.cs new file mode 100644 index 0000000000..b6f2f62d1a --- /dev/null +++ b/Content.Server/_Sunrise/Research/Artifact/Triggers/HealthAnalyzerInteraction/ArtifactHealthAnalyzerInteractionTriggerSystem.cs @@ -0,0 +1,25 @@ +using Content.Shared._Sunrise.Research.Artifact; +using Content.Shared.Xenoarchaeology.Artifact.Components; +using Content.Shared.Xenoarchaeology.Artifact.XAT; + +namespace Content.Server._Sunrise.Research.Artifact.Triggers.HealthAnalyzerInteraction; + +public sealed class ArtifactHealthAnalyzerInteractionTriggerSystem : BaseXATSystem +{ + public override void Initialize() + { + base.Initialize(); + + XATSubscribeDirectEvent(OnAnalyzed); + } + + private void OnAnalyzed(Entity artifact, Entity node, ref EntityAnalyzedEvent args) + { + if (args.Handled) + return; + + Trigger(artifact, node); + args.Handled = true; + } +} + diff --git a/Content.Shared/_Sunrise/Helpers/DictionaryExtentions.cs b/Content.Shared/_Sunrise/Helpers/DictionaryExtentions.cs new file mode 100644 index 0000000000..cf33e17ebb --- /dev/null +++ b/Content.Shared/_Sunrise/Helpers/DictionaryExtentions.cs @@ -0,0 +1,18 @@ +namespace Content.Shared._Sunrise.Helpers; + +public static class DictionaryExtensions +{ + public static void AddOrIncrement(this Dictionary dict, TKey key, int increment = 1) + where TKey : notnull + { + if (dict.TryGetValue(key, out var currentValue)) + { + dict[key] = currentValue + increment; + } + else + { + dict[key] = increment; + } + } + +} diff --git a/Content.Shared/_Sunrise/Helpers/SharedSunriseHelpersSystem.cs b/Content.Shared/_Sunrise/Helpers/SharedSunriseHelpersSystem.cs new file mode 100644 index 0000000000..e5d3a18822 --- /dev/null +++ b/Content.Shared/_Sunrise/Helpers/SharedSunriseHelpersSystem.cs @@ -0,0 +1,104 @@ +using System.Diagnostics.CodeAnalysis; +using System.Linq; + +namespace Content.Shared._Sunrise.Helpers; + +public abstract partial class SharedSunriseHelpersSystem : EntitySystem +{ + #region Percente + + /// + /// Возвращает список с данным процентным соотношением + /// + /// Исходный список + /// Процент от 0 до 100 + /// Компонент + [Obsolete] + public IEnumerable GetPercentageOfHashSet(IReadOnlyCollection sourceList, float percentage) where T : IComponent + { + var countToAdd = (int) Math.Round((double) sourceList.Count * percentage / 100); + return sourceList.Where(t => !Transform(t.Owner).Anchored).Take(countToAdd).ToHashSet(); + } + + /// + /// Возвращает список с данным процентным соотношением + /// + /// Исходный список + /// Процент от 0 до 100 + /// Ентити с компонентом + public IEnumerable> GetPercentageOfHashSet(IReadOnlyCollection> sourceList, float percentage) where T : IComponent + { + var countToAdd = (int) Math.Round((double) sourceList.Count * percentage / 100); + return sourceList.Where(e => !Transform(e).Anchored).Take(countToAdd).ToHashSet(); + } + + /// + /// Возвращает список с данным процентным соотношением + /// + /// Исходный список + /// Процент от 0 до 100 + public IEnumerable GetPercentageOfHashSet(IReadOnlyCollection sourceList, float percentage) + { + var countToAdd = (int) Math.Round((double) sourceList.Count * percentage / 100); + return sourceList.Where(e => !Transform(e).Anchored).Take(countToAdd).ToHashSet(); + } + + #endregion + + #region Get All/First entity + + /// + /// Получает все список всех ентити с компонентами и возвращает. + /// Удобно для использования, так как не требует засорять код лишним циклом + /// + /// Компонент 1 + /// Компонент 2 + /// Список может быть пустым, если ничего не найдено + /// Полный список всех ентити в игре с данными компонентами + public IEnumerable> GetAll() where T1 : IComponent where T2 : IComponent + { + var query = EntityManager.AllEntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var component1, out var component2)) + { + yield return (uid, component1, component2); + } + } + + /// + /// Получает все список всех ентити с компонентом и возвращает. + /// Удобно для использования, так как не требует засорять код лишним циклом + /// + /// Компонент + /// Список может быть пустым, если ничего не найдено + /// Полный список всех ентити в игре с данным компонентом + public IEnumerable> GetAll() where T : IComponent + { + var query = EntityManager.AllEntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var component)) + { + yield return (uid, component); + } + } + + /// + /// Возвращает первый попавшийся ентити с данным компонентом + /// + /// Возвращаемый ентити + /// Компонент + /// Первый попавшийся ентити с данным компонентом + public bool TryGetFirst([NotNullWhen(true)] out Entity? entity) where T : IComponent + { + entity = null; + + var query = EntityManager.AllEntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var component)) + { + entity = (uid, component); + return true; + } + + return false; + } + + #endregion +} diff --git a/Content.Shared/_Sunrise/Misc/ArtifactFunnyTargetComponent.cs b/Content.Shared/_Sunrise/Misc/ArtifactFunnyTargetComponent.cs new file mode 100644 index 0000000000..cee80d878e --- /dev/null +++ b/Content.Shared/_Sunrise/Misc/ArtifactFunnyTargetComponent.cs @@ -0,0 +1,10 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._Sunrise.Misc; + +/// +/// Компонент маркер, что данная цель смешная. +/// Используется в +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class ArtifactFunnyTargetComponent : Component; diff --git a/Content.Shared/_Sunrise/Research/Artifact/ArtifactEvents.cs b/Content.Shared/_Sunrise/Research/Artifact/ArtifactEvents.cs new file mode 100644 index 0000000000..b3db237833 --- /dev/null +++ b/Content.Shared/_Sunrise/Research/Artifact/ArtifactEvents.cs @@ -0,0 +1,3 @@ +namespace Content.Shared._Sunrise.Research.Artifact; + +public sealed partial class EntityAnalyzedEvent : HandledEntityEventArgs; diff --git a/Resources/Locale/ru-RU/_strings/_sunrise/research/artifacts.ftl b/Resources/Locale/ru-RU/_strings/_sunrise/research/artifacts.ftl new file mode 100644 index 0000000000..4d971ee58b --- /dev/null +++ b/Resources/Locale/ru-RU/_strings/_sunrise/research/artifacts.ftl @@ -0,0 +1,3 @@ +artifact-trigger-hint-health-analyzer = Сканирование + +artifact-effect-hint-data-deleted = ██████████ █████ diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml index 426651b981..cc0d3e6e13 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml @@ -416,6 +416,7 @@ name: lead-lined box parent: BoxCardboard suffix: DEBUG + categories: [ Debug ] # Sunrise added id: BoxLeadLined description: This box stymies the transmission of harmful radiation. components: diff --git a/Resources/Prototypes/Catalog/Fills/Crates/engines.yml b/Resources/Prototypes/Catalog/Fills/Crates/engines.yml index ebff4eb6d8..fabc508191 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/engines.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/engines.yml @@ -111,6 +111,7 @@ parent: CrateEngineering name: generator crate suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: StorageFill contents: diff --git a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml index d5edf50ad1..e40d8bda23 100644 --- a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml +++ b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml @@ -349,6 +349,7 @@ name: wackpack description: What the fuck is this? suffix: Debug + categories: [ Debug ] # Sunrise added components: - type: Storage grid: @@ -365,6 +366,7 @@ name: big wackpack description: What the fuck is this? suffix: Debug + categories: [ Debug ] # Sunrise added components: - type: Storage grid: @@ -376,6 +378,7 @@ name: gay wackpack description: What the fuck is this? suffix: Debug + categories: [ Debug ] # Sunrise added components: - type: Storage grid: @@ -397,6 +400,7 @@ name: offset wackpack description: What the fuck is this? suffix: Debug + categories: [ Debug ] # Sunrise added components: - type: Storage grid: diff --git a/Resources/Prototypes/Entities/Debugging/debug_sweps.yml b/Resources/Prototypes/Entities/Debugging/debug_sweps.yml index 85843e01be..6bbcda1908 100644 --- a/Resources/Prototypes/Entities/Debugging/debug_sweps.yml +++ b/Resources/Prototypes/Entities/Debugging/debug_sweps.yml @@ -4,6 +4,7 @@ id: WeaponPistolDebug description: ded suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Tag tags: @@ -46,6 +47,7 @@ name: bang, ded mag parent: BaseMagazinePistol suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Tag tags: @@ -76,6 +78,7 @@ name: bang, ded cartridge parent: BaseCartridgePistol suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Tag tags: @@ -89,6 +92,7 @@ id: MeleeDebugGib description: hit hard ye suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Debugging/drugs.yml b/Resources/Prototypes/Entities/Debugging/drugs.yml index 932fdad2c2..6cfd61d9b3 100644 --- a/Resources/Prototypes/Entities/Debugging/drugs.yml +++ b/Resources/Prototypes/Entities/Debugging/drugs.yml @@ -4,6 +4,7 @@ name: meth # beer it is. coffee. beer? coff-ee? be-er? c-o... b-e description: Just a whole glass of meth. suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Debugging/item.yml b/Resources/Prototypes/Entities/Debugging/item.yml index e3c8ffddd2..e5260a4e57 100644 --- a/Resources/Prototypes/Entities/Debugging/item.yml +++ b/Resources/Prototypes/Entities/Debugging/item.yml @@ -4,6 +4,7 @@ name: weirdly shaped item description: What is it...? suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Debugging/options_visualizer.yml b/Resources/Prototypes/Entities/Debugging/options_visualizer.yml index 229ffa00cc..6f3be49cf1 100644 --- a/Resources/Prototypes/Entities/Debugging/options_visualizer.yml +++ b/Resources/Prototypes/Entities/Debugging/options_visualizer.yml @@ -1,6 +1,7 @@ - type: entity id: OptionsVisualizerTest suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Debugging/spanisharmyknife.yml b/Resources/Prototypes/Entities/Debugging/spanisharmyknife.yml index 023ba8c08a..859b14df14 100644 --- a/Resources/Prototypes/Entities/Debugging/spanisharmyknife.yml +++ b/Resources/Prototypes/Entities/Debugging/spanisharmyknife.yml @@ -4,6 +4,7 @@ id: ToolDebug description: The pain of using this is almost too great to bear. suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Debugging/stress_test.yml b/Resources/Prototypes/Entities/Debugging/stress_test.yml index 72651cdaee..09e9eca050 100644 --- a/Resources/Prototypes/Entities/Debugging/stress_test.yml +++ b/Resources/Prototypes/Entities/Debugging/stress_test.yml @@ -2,6 +2,7 @@ id: StressTest name: stress test suffix: DEBUG + categories: [ Debug, HideSpawnMenu ] # Sunrise added components: - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Markers/Spawners/debug.yml b/Resources/Prototypes/Entities/Markers/Spawners/debug.yml index 6c57847daf..0566feaccd 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/debug.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/debug.yml @@ -3,6 +3,7 @@ id: SpawnMobHuman parent: MarkerBase suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Sprite layers: diff --git a/Resources/Prototypes/Entities/Objects/Misc/dat_fukken_disk.yml b/Resources/Prototypes/Entities/Objects/Misc/dat_fukken_disk.yml index 9f7c929b04..e5259d83e6 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/dat_fukken_disk.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/dat_fukken_disk.yml @@ -4,6 +4,9 @@ id: NukeDisk description: A nuclear auth disk, capable of arming a nuke if used along with a code. Note from nanotrasen reads "THIS IS YOUR MOST IMPORTANT POSESSION, SECURE DAT FUKKEN DISK!" components: + # Sunrise added start + - type: ArtifactFunnyTarget + # Sunrise added end - type: NukeDisk - type: SpecialRespawn prototype: NukeDisk diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mecha_equipment.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mecha_equipment.yml index db430313ab..ffe47fbf11 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mecha_equipment.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mecha_equipment.yml @@ -2,7 +2,7 @@ id: DebugMechEquipment abstract: true suffix: DEBUG - categories: [ HideSpawnMenu ] + categories: [ HideSpawnMenu, Debug ] # Sunrise edit components: - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Research/disk.yml b/Resources/Prototypes/Entities/Objects/Specific/Research/disk.yml index 10b79ef2e4..760f0084b3 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Research/disk.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Research/disk.yml @@ -35,7 +35,7 @@ id: ResearchDiskDebug name: research point disk suffix: DEBUG, DO NOT MAP - categories: [ DoNotMap ] + categories: [ DoNotMap, Debug ] # Sunrise edit description: A disk for the R&D server containing all the points you could ever need. components: - type: ResearchDisk diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_xenoartifacts.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_xenoartifacts.yml index 83a04a809b..1843d1ebd7 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_xenoartifacts.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_xenoartifacts.yml @@ -55,12 +55,17 @@ - type: XenoArtifact effectsTable: !type:GroupSelector children: + # Sunrise edit start - новые смешные эффекты - !type:NestedSelector - tableId: XenoArtifactEffectsDefaultTable - weight: 54 + tableId: SunriseArtifactEffectsDefaultTable + weight: 3 - !type:NestedSelector - tableId: XenoArtifactEffectsHandheldOnlyTable - weight: 2 + tableId: SunriseArtifactEffectsVanillaDefaultReducedTable + weight: 3 + - !type:NestedSelector + tableId: SunriseArtifactEffectsUltraFunnyTable + weight: 1 + # Sunrise edit end - type: entity parent: BaseXenoArtifactItem diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/xenoartifacts.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/xenoartifacts.yml index 6fa30b7265..f3898ce828 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/xenoartifacts.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/xenoartifacts.yml @@ -24,8 +24,19 @@ - Xenoarchaeology # gameplay interactions - type: XenoArtifact - effectsTable: !type:NestedSelector - tableId: XenoArtifactEffectsDefaultTable + # Sunrise edit start - новые смешные эффекты + effectsTable: !type:GroupSelector + children: + - !type:NestedSelector + tableId: SunriseArtifactEffectsDefaultTable + weight: 3 + - !type:NestedSelector + tableId: SunriseArtifactEffectsVanillaDefaultReducedTable + weight: 3 + - !type:NestedSelector + tableId: SunriseArtifactEffectsUltraFunnyTable + weight: 1 + # Sunrise edit end - type: Damageable - type: Actions - type: Physics diff --git a/Resources/Prototypes/Entities/Objects/Specific/syndicate.yml b/Resources/Prototypes/Entities/Objects/Specific/syndicate.yml index 41cb919b81..d04deea850 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/syndicate.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/syndicate.yml @@ -136,6 +136,7 @@ parent: BaseUplinkRadio id: BaseUplinkRadioDebug suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Store balance: diff --git a/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml b/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml index 036c90e828..4bd9383c5f 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml @@ -792,6 +792,7 @@ name: table description: PUT ON THEM CODERSOCKS!! suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Structures/Machines/bombs.yml b/Resources/Prototypes/Entities/Structures/Machines/bombs.yml index 6e285a1b8f..aac9edc25b 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/bombs.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/bombs.yml @@ -147,6 +147,7 @@ id: DebugHardBomb name: debug bomb suffix: DEBUG + categories: [ Debug ] # Sunrise added description: Holy shit this is gonna explode. components: - type: Defusable diff --git a/Resources/Prototypes/Entities/Structures/Power/debug_power.yml b/Resources/Prototypes/Entities/Structures/Power/debug_power.yml index a102516ce6..5f30f1ae4d 100644 --- a/Resources/Prototypes/Entities/Structures/Power/debug_power.yml +++ b/Resources/Prototypes/Entities/Structures/Power/debug_power.yml @@ -2,6 +2,7 @@ id: DebugGenerator parent: BaseGenerator suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: PowerSupplier supplyRate: 300000 @@ -15,6 +16,7 @@ id: DebugConsumer name: consumer suffix: DEBUG + categories: [ Debug ] # Sunrise added placement: mode: SnapgridCenter components: @@ -60,6 +62,7 @@ id: DebugBatteryStorage name: battery storage suffix: DEBUG + categories: [ Debug ] # Sunrise added placement: mode: SnapgridCenter components: @@ -93,6 +96,7 @@ id: DebugBatteryDischarger name: battery discharger suffix: DEBUG + categories: [ Debug ] # Sunrise added placement: mode: SnapgridCenter components: @@ -128,6 +132,7 @@ id: DebugSMES parent: BaseSMES suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Tag tags: @@ -146,6 +151,7 @@ id: DebugAPC parent: BaseAPC suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Tag tags: @@ -155,6 +161,7 @@ id: DebugPowerReceiver name: power receiver suffix: DEBUG + categories: [ Debug ] # Sunrise added placement: mode: SnapgridCenter components: diff --git a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml index cbc556cb12..30c9ca3d38 100644 --- a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml +++ b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml @@ -116,6 +116,7 @@ id: DebugThruster parent: BaseThruster suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Thruster requireSpace: false @@ -215,6 +216,7 @@ id: DebugGyroscope parent: BaseThruster suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Thruster thrusterType: Angular diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml index b225f7fdb3..bb3f104add 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml @@ -225,6 +225,7 @@ id: WallDebug name: debug wall suffix: DEBUG + categories: [ Debug ] # Sunrise added components: - type: Tag tags: diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml index 4c833e80bc..3da878d3a1 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml @@ -15,6 +15,9 @@ special: - !type:AddComponentSpecial components: + # Sunrise added start + - type: ArtifactFunnyTarget + # Sunrise added end - type: Clumsy gunShootFailDamage: types: #literally just picked semi random valus. i tested this once and tweaked it. diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml index 70cfb9a7a1..5822c45e7a 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml @@ -15,6 +15,9 @@ special: - !type:AddComponentSpecial components: + # Sunrise added start + - type: ArtifactFunnyTarget + # Sunrise added end - type: MimePowers preventWriting: true - type: FrenchAccent diff --git a/Resources/Prototypes/Roles/Jobs/Command/captain.yml b/Resources/Prototypes/Roles/Jobs/Command/captain.yml index a0b1c0071c..7005cf07f2 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/captain.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/captain.yml @@ -34,6 +34,9 @@ implants: [ MindShieldImplant, TrackingImplant, DeathRattleImplantBlueShield ] - !type:AddComponentSpecial components: + # Sunrise added start + - type: ArtifactFunnyTarget + # Sunrise added end - type: CommandStaff speciesBlacklist: - Vox # Sunrise-Edit diff --git a/Resources/Prototypes/XenoArch/effects.yml b/Resources/Prototypes/XenoArch/effects.yml index 6fde7c25b8..dafe8ed919 100644 --- a/Resources/Prototypes/XenoArch/effects.yml +++ b/Resources/Prototypes/XenoArch/effects.yml @@ -142,7 +142,7 @@ - type: entity id: BaseXenoArtifactEffect name: effect - description: Неизвестно + description: artifact-effect-hint-data-deleted # Sunrise edit categories: [ HideSpawnMenu ] abstract: true components: @@ -154,7 +154,7 @@ id: BaseOneTimeXenoArtifactEffect parent: BaseXenoArtifactEffect name: one-time-effect - description: Неизвестно + description: artifact-effect-hint-data-deleted # Sunrise edit categories: [ HideSpawnMenu ] abstract: true components: @@ -169,7 +169,8 @@ - type: entity id: XenoArtifactEffectUniversalIntercom parent: BaseOneTimeXenoArtifactEffect - description: Обретает трансмогрификационные свойства + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents components: @@ -198,7 +199,8 @@ - type: entity id: XenoArtifactBecomeRandomInstrument parent: BaseOneTimeXenoArtifactEffect - description: Становится музыкальным инструментом + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents components: @@ -211,7 +213,8 @@ - type: entity id: XenoArtifactStorage parent: BaseOneTimeXenoArtifactEffect - description: Появляется скрытое хранилище + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents components: @@ -225,14 +228,16 @@ - type: entity id: XenoArtifactPhasing parent: BaseOneTimeXenoArtifactEffect - description: Теряет колизию + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAERemoveCollision - type: entity id: XenoArtifactWandering parent: BaseOneTimeXenoArtifactEffect - description: Начинает спонтанно двигаться + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents components: @@ -245,7 +250,8 @@ - type: entity id: XenoArtifactSolutionStorage parent: BaseOneTimeXenoArtifactEffect - description: Обретает свойства кувшина + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents components: @@ -273,7 +279,8 @@ - type: entity id: XenoArtifactSpeedUp parent: BaseOneTimeXenoArtifactEffect - description: Увеличивает скорость движения держателя + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents components: @@ -284,7 +291,8 @@ - type: entity id: XenoArtifactDrill parent: BaseOneTimeXenoArtifactEffect - description: Обретает свойства бура + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents components: @@ -300,7 +308,8 @@ - type: entity id: XenoArtifactGenerateEnergy parent: BaseOneTimeXenoArtifactEffect # todo - increment power, but only once per node - description: Излучает энергию + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents components: @@ -316,7 +325,8 @@ - type: entity id: XenoArtifactGun parent: BaseOneTimeXenoArtifactEffect - description: Обретает свойства оружия + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -347,7 +357,8 @@ - type: entity id: XenoArtifactGhost parent: BaseOneTimeXenoArtifactEffect - description: Становится разумным + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents components: @@ -367,7 +378,8 @@ - type: entity id: XenoArtifactOmnitool parent: BaseOneTimeXenoArtifactEffect - description: Получается свойства омнитула + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents components: @@ -414,7 +426,8 @@ - type: entity id: XenoArtifactEffectBadFeeling parent: BaseXenoArtifactEffect - description: Передаёт сообщение + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAETelepathic messages: @@ -444,7 +457,8 @@ - type: entity id: XenoArtifactEffectGoodFeeling parent: BaseXenoArtifactEffect - description: Передаёт сообщение + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAETelepathic messages: @@ -473,7 +487,8 @@ - type: entity id: XenoArtifactEffectJunkSpawn parent: BaseXenoArtifactEffect - description: Создаёт мусор + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -496,14 +511,16 @@ - type: entity id: XenoArtifactEffectLightFlicker parent: BaseXenoArtifactEffect - description: Создаёт незначительные электромагнитные помехи + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAELightFlicker - type: entity id: XenoArtifactPotassiumWave parent: BaseXenoArtifactEffect - description: Создаёт калий + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -530,7 +547,8 @@ - type: entity id: XenoArtifactFloraSpawn parent: BaseXenoArtifactEffect - description: Создаёт флору + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -545,7 +563,8 @@ - type: entity id: XenoArtifactChemicalPuddle parent: BaseXenoArtifactEffect - description: Создаёт лужу из химикатов # todo: make description say what exact chemical is produced, maybe add mixes into possible chemicals + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAECreatePuddle chemAmount: @@ -581,14 +600,16 @@ - type: entity id: XenoArtifactThrowThingsAround parent: BaseXenoArtifactEffect - description: Создаёт незначительный взрыв + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEThrowThingsAround - type: entity id: XenoArtifactColdWave parent: BaseXenoArtifactEffect - description: Охлаждает атмосферу вокруг + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAETemperature targetTemp: 50 @@ -596,7 +617,8 @@ - type: entity id: XenoArtifactHeatWave parent: BaseXenoArtifactEffect - description: Сильно нагревает окружающую атмосферу + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAETemperature targetTemp: 500 @@ -604,7 +626,8 @@ - type: entity id: XenoArtifactFoamMild parent: BaseXenoArtifactEffect - description: Создаёт пену из химикатов # todo: separate in 1 for each chemical for description? actually sounds like a very good idea + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEFoam replaceDescription: true @@ -624,7 +647,8 @@ - type: entity id: XenoArtifactRandomInstrumentSpawn parent: BaseXenoArtifactEffect - description: Создаёт музыкальный инструмент + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XenoArtifactNode maxDurability: 2 @@ -644,7 +668,8 @@ - type: entity id: XenoArtifactMonkeySpawn parent: BaseXenoArtifactEffect - description: Создаёт обезьяну + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XenoArtifactNode maxDurability: 3 @@ -667,7 +692,8 @@ - type: entity id: XenoArtifactRadioactive parent: BaseOneTimeXenoArtifactEffect - description: Становится радиоактивным + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -680,7 +706,8 @@ - type: entity id: XenoArtifactChargeBattery parent: BaseXenoArtifactEffect - description: Заряжает батарейки + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEChargeBattery - type: XAETelepathic @@ -690,7 +717,8 @@ - type: entity id: XenoArtifactKnock parent: BaseXenoArtifactEffect - description: Создаёт слабые электромагнитные помехи + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEKnock - type: XAELightFlicker @@ -698,7 +726,8 @@ - type: entity id: XenoArtifactMagnet parent: BaseOneTimeXenoArtifactEffect - description: Создаёт небольшой гравитационный колодец + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -712,7 +741,8 @@ - type: entity id: XenoArtifactMagnetNegative parent: BaseOneTimeXenoArtifactEffect - description: Создаёт небольшой гравитационный колодец + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -726,7 +756,8 @@ - type: entity id: XenoArtifactStealth parent: BaseOneTimeXenoArtifactEffect - description: Создаёт световую интерференцию + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents components: @@ -740,7 +771,8 @@ - type: entity id: XenoArtifactRareMaterialSpawn parent: BaseXenoArtifactEffect # todo: splice into different well-named effects, amounts should reflect how rare material is - description: Создаёт редкие материалы + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -770,7 +802,8 @@ - type: entity id: XenoArtifactRareMaterialSpawnSilver parent: BaseXenoArtifactEffect - description: Создаёт редкие материалы + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XenoArtifactNode maxDurability: 4 @@ -793,7 +826,8 @@ - type: entity id: XenoArtifactRareMaterialSpawnPlasma parent: BaseXenoArtifactEffect - description: Создаёт твёрдую плазму + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XenoArtifactNode maxDurability: 4 @@ -816,7 +850,8 @@ - type: entity id: XenoArtifactRareMaterialSpawnGold parent: BaseXenoArtifactEffect - description: Создаёт золото + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XenoArtifactNode maxDurability: 3 @@ -839,7 +874,8 @@ - type: entity id: XenoArtifactRareMaterialSpawnUranium parent: BaseXenoArtifactEffect - description: Создаёт уран + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XenoArtifactNode maxDurability: 4 @@ -862,7 +898,8 @@ - type: entity id: XenoArtifactAngryCarpSpawn parent: BaseXenoArtifactEffect - description: Создаёт агресивную рыбу + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XenoArtifactNode maxDurability: 3 @@ -885,7 +922,8 @@ - type: entity id: XenoArtifactFaunaSpawn parent: BaseXenoArtifactEffect - description: Создаёт дружелюбную фауну + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XenoArtifactNode maxDurability: 4 @@ -940,7 +978,8 @@ - type: entity id: XenoArtifactCashSpawn parent: BaseXenoArtifactEffect - description: Создаёт деньги + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XenoArtifactNode maxDurability: 2 @@ -969,7 +1008,8 @@ - type: entity id: XenoArtifactShatterWindows parent: BaseXenoArtifactEffect - description: Ломает окна + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XenoArtifactNode maxDurability: 3 @@ -988,7 +1028,8 @@ - type: entity id: XenoArtifactFoamGood parent: BaseXenoArtifactEffect - description: Создает волну полезной пены + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XenoArtifactNode maxDurability: 7 @@ -1009,7 +1050,8 @@ - type: entity id: XenoArtifactFoamDangerous parent: BaseXenoArtifactEffect - description: Создает волну вредной пены + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEFoam minFoamAmount: 20 @@ -1031,7 +1073,8 @@ - type: entity id: XenoArtifactPuddleRare parent: BaseXenoArtifactEffect - description: Создает лужу полезных химикатов + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAECreatePuddle chemAmount: @@ -1061,7 +1104,8 @@ - type: entity id: XenoArtifactAnomalySpawn parent: BaseOneTimeXenoArtifactEffect - description: Создаёт аномалию + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -1076,7 +1120,8 @@ - type: entity id: XenoArtifactIgnite parent: BaseXenoArtifactEffect - description: Делает пирокинез + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEIgnite range: 7 @@ -1087,14 +1132,16 @@ - type: entity id: XenoArtifactTeleport parent: BaseXenoArtifactEffect - description: Делает телепортацию + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAERandomTeleportInvoker - type: entity id: XenoArtifactEmp parent: BaseXenoArtifactEffect - description: Создаёт опасные электромагнитные помехи + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XenoArtifactNode maxDurability: 5 @@ -1106,14 +1153,16 @@ - type: entity id: XenoArtifactPolyMonkey parent: BaseXenoArtifactEffect - description: Временно преобразозует плоть в мех + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEPolymorph - type: entity id: XenoArtifactPolyLizard parent: BaseXenoArtifactEffect - description: Временно изменяет форму плоти в соответствии с масштабом + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEPolymorph polymorphPrototypeName: ArtifactLizard @@ -1121,7 +1170,8 @@ - type: entity id: XenoArtifactPolyLuminous parent: BaseXenoArtifactEffect - description: Временно преобразовать плоть в свет + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEPolymorph polymorphPrototypeName: ArtifactLuminous @@ -1129,7 +1179,8 @@ - type: entity id: XenoArtifactRadioactiveStrong parent: BaseOneTimeXenoArtifactEffect - description: Становиться сильно радиоактивным + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -1142,7 +1193,8 @@ - type: entity id: XenoArtifactMaterialSpawnGlass parent: BaseXenoArtifactEffect - description: Создаёт стекло + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -1157,7 +1209,8 @@ - type: entity id: XenoArtifactMaterialSpawnSteel parent: BaseXenoArtifactEffect - description: Создаёт сталь + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -1172,7 +1225,8 @@ - type: entity id: XenoArtifactMaterialSpawnPlastic parent: BaseXenoArtifactEffect - description: Создаёт пластик + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -1187,14 +1241,16 @@ - type: entity id: XenoArtifactPortal parent: BaseXenoArtifactEffect - description: Создаёт кратковременный блюспейс портал + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEPortal - type: entity id: XenoArtifactArtifactSpawn parent: BaseXenoArtifactEffect - description: Создаёт артефакт + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XenoArtifactNode maxDurability: 2 @@ -1214,7 +1270,8 @@ - type: entity id: XenoArtifactShuffle parent: BaseXenoArtifactEffect - description: Меняет местами разумные существа #not ALL beings, but oh well... + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEShuffle - type: XAETelepathic @@ -1225,7 +1282,8 @@ - type: entity id: XenoArtifactHealAll parent: BaseXenoArtifactEffect - description: Чудесно излечивает всех существ рядом + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEDamageInArea damageChance: 1 @@ -1241,7 +1299,8 @@ - type: entity id: XenoArtifactTesla parent: BaseOneTimeXenoArtifactEffect - description: Полномасштабные разрушения + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -1256,7 +1315,8 @@ - type: entity id: XenoArtifactSingularity parent: BaseOneTimeXenoArtifactEffect - description: Полномасштабные разрушения + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAEApplyComponents applyIfAlreadyHave: true @@ -1271,7 +1331,8 @@ - type: entity id: XenoArtifactExplosionScary parent: BaseOneTimeXenoArtifactEffect - description: Создаёт маломасштабную высокоскоростную ядерную реакцию + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAETriggerExplosives - type: Explosive @@ -1286,7 +1347,8 @@ - type: entity id: XenoArtifactBoom parent: BaseOneTimeXenoArtifactEffect - description: Создаёт взрыв + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAETriggerExplosives - type: Explosive @@ -1300,7 +1362,8 @@ - type: entity id: XenoArtifactEffectCreationGasPlasma parent: BaseXenoArtifactEffect - description: Создаёт газообразную плазму + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAECreateGas gases: @@ -1309,7 +1372,8 @@ - type: entity id: XenoArtifactEffectCreationGasTritium parent: BaseXenoArtifactEffect - description: Создаёт газообразный тритий + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAECreateGas gases: @@ -1318,7 +1382,8 @@ - type: entity id: XenoArtifactEffectCreationGasAmmonia parent: BaseXenoArtifactEffect - description: Создаёт аммиак + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAECreateGas gases: @@ -1327,7 +1392,8 @@ - type: entity id: XenoArtifactEffectCreationGasFrezon parent: BaseXenoArtifactEffect - description: Создаёт фрезон + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAECreateGas gases: @@ -1336,7 +1402,8 @@ - type: entity id: XenoArtifactEffectCreationGasNitrousOxide parent: BaseXenoArtifactEffect - description: Создаёт оксид азота + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAECreateGas gases: @@ -1345,7 +1412,8 @@ - type: entity id: XenoArtifactEffectCreationGasCarbonDioxide parent: BaseXenoArtifactEffect - description: Создаёт углекислый газ + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAECreateGas gases: @@ -1355,7 +1423,8 @@ - type: entity id: XenoArtifactEffectCreationGasBZ parent: BaseXenoArtifactEffect - description: Создаёт БЗ + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAECreateGas gases: @@ -1364,7 +1433,8 @@ - type: entity id: XenoArtifactEffectCreationGasHealium parent: BaseXenoArtifactEffect - description: Создаёт хилиум + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAECreateGas gases: @@ -1373,7 +1443,8 @@ - type: entity id: XenoArtifactEffectCreationGasNitrium parent: BaseXenoArtifactEffect - description: Создаёт нитриум + description: artifact-effect-hint-data-deleted # Sunrise edit + categories: [ HideSpawnMenu ] # Sunrise added components: - type: XAECreateGas gases: diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Fun/mech_spray_paint.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Fun/mech_spray_paint.yml index c94b5099d7..6fb657022b 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Objects/Fun/mech_spray_paint.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Fun/mech_spray_paint.yml @@ -48,6 +48,7 @@ parent: MechPaintBase suffix: DEBUG, Ripley, Aluminizer id: MechPaintRipleyAluminizer + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi @@ -78,6 +79,7 @@ parent: MechPaintBase suffix: DEBUG, Ripley, Combat Ripley id: MechPaintRipleyCombatRipley + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi @@ -108,6 +110,7 @@ parent: MechPaintBase suffix: DEBUG, Ripley, Firestarter id: MechPaintRipleyFirestarter + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi @@ -138,6 +141,7 @@ parent: MechPaintBase suffix: DEBUG, Ripley, Hauler id: MechPaintRipleyHauler + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi @@ -168,6 +172,7 @@ parent: MechPaintBase suffix: DEBUG, Ripley, Reaper id: MechPaintRipleyReaper + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi @@ -198,6 +203,7 @@ parent: MechPaintBase suffix: DEBUG, Ripley, Zairjah id: MechPaintRipleyZairjah + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi @@ -259,6 +265,7 @@ parent: MechPaintBase suffix: DEBUG, Clarke, Orangey id: MechPaintClarkeOrangey + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/clarke.rsi @@ -289,6 +296,7 @@ parent: MechPaintBase suffix: DEBUG, Gygax, Molot id: MechPaintGygaxMolot + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/gygax.rsi @@ -319,6 +327,7 @@ parent: MechPaintBase suffix: DEBUG, Gygax, Contraband id: MechPaintGygaxBlack + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/gygax.rsi @@ -349,6 +358,7 @@ parent: MechPaintBase suffix: DEBUG, Gygax, Legal id: MechPaintGygaxWhite + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/gygax.rsi @@ -379,6 +389,7 @@ parent: MechPaintBase suffix: DEBUG, Gygax, Pirate id: MechPaintGygaxPirate + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/gygax.rsi @@ -410,6 +421,7 @@ parent: MechPaintBase suffix: DEBUG, Gygax, Old id: MechPaintGygaxOld + categories: [ Debug ] components: - type: Sprite sprite: Objects/Fun/spraycans.rsi @@ -440,6 +452,7 @@ parent: MechPaintBase suffix: DEBUG, Durand, Unathi id: MechPaintDurandUnathi + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi @@ -470,6 +483,7 @@ parent: MechPaintBase suffix: DEBUG, Durand , Shire id: MechPaintDurandShire + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi @@ -500,6 +514,7 @@ parent: MechPaintBase suffix: DEBUG, Durand , Dollhouse id: MechPaintDurandDollhouse + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi @@ -530,6 +545,7 @@ parent: MechPaintBase suffix: DEBUG, Durand , Executor id: MechPaintDurandExecutor + categories: [ Debug ] components: - type: Sprite sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi @@ -559,6 +575,7 @@ - type: entity parent: MechPaintBase suffix: DEBUG, Mauler , Meowler + categories: [ Debug ] id: MechPaintMaulerMeowler components: - type: Sprite diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Melee/provinence.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Melee/provinence.yml index ab0c4218bd..a8cd00b1f3 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Melee/provinence.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Melee/provinence.yml @@ -208,7 +208,7 @@ parent: WeaponMeleeMoltenCollider id: WeaponMeleeMoltenColliderDEBUG suffix: DEBUG - categories: [ HideSpawnMenu ] + categories: [ HideSpawnMenu, Debug ] components: - type: MeleeWeapon damage: diff --git a/Resources/Prototypes/_Sunrise/Polymorphs/artifact_polymorph.yml b/Resources/Prototypes/_Sunrise/Polymorphs/artifact_polymorph.yml new file mode 100644 index 0000000000..c45132fefd --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Polymorphs/artifact_polymorph.yml @@ -0,0 +1,66 @@ +- type: polymorph + id: SunriseEffectChair + configuration: + entity: ChairFolding + forced: true + transferName: false + transferHumanoidAppearance: false + inventory: None + revertOnDeath: true + revertOnCrit: true + revertOnEat: true + duration: 120 + +- type: polymorph + id: SunriseEffectWatermelon + configuration: + entity: FoodWatermelon + forced: true + transferName: false + transferHumanoidAppearance: false + inventory: None + revertOnDeath: true + revertOnCrit: true + revertOnEat: true + duration: 120 + +- type: polymorph + id: SunriseEffectAppendix + configuration: + entity: OrganHumanAppendix + forced: true + transferName: false + transferHumanoidAppearance: false + inventory: None + revertOnDeath: true + revertOnCrit: true + revertOnEat: true + duration: 120 + +- type: polymorph + id: SunriseEffectDisposal + configuration: + entity: DisposalUnit + forced: true + transferName: false + transferHumanoidAppearance: false + inventory: None + revertOnDeath: true + revertOnCrit: true + revertOnEat: true + duration: 120 + +- type: polymorph + id: SunriseEffectTable + configuration: + entity: Table + forced: true + transferName: false + transferHumanoidAppearance: false + inventory: None + revertOnDeath: true + revertOnCrit: true + revertOnEat: true + duration: 120 + +# TODO: отдельные СМЕШНЫЕ полиморфы для LUST STATION diff --git a/Resources/Prototypes/_Sunrise/Research/Artifact/effects.yml b/Resources/Prototypes/_Sunrise/Research/Artifact/effects.yml new file mode 100644 index 0000000000..b6019bdb35 --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Research/Artifact/effects.yml @@ -0,0 +1,306 @@ +# Базовые эффекты + +- type: entity + id: SunriseEffectHeal + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEDamageInArea + damageChance: 1 + radius: 8 + whitelist: + components: + - MobState + damage: + groups: + Brute: -300 + Burn: -300 + +- type: entity + id: SunriseArtifactGenerateEnergy + parent: BaseOneTimeXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEApplyComponents + components: + - type: PowerSupplier + supplyRate: 20000 + - type: NodeContainer + examinable: true + nodes: + output_hv: + !type:CableDeviceNode + nodeGroupID: HVPower + +- type: entity + id: SunriseArtifactWandering + parent: BaseOneTimeXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEApplyComponents + components: + - type: RandomWalk + minSpeed: 12 + maxSpeed: 20 + minStepCooldown: 1 + maxStepCooldown: 3 + +- type: entity + id: SunriseArtifactThrowThingsAround + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEThrowThingsAround + +- type: entity + id: SunriseArtifactKnock + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEKnock + - type: XAELightFlicker + +- type: entity + id: SunriseArtifactEffectJunkSpawn + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEApplyComponents + applyIfAlreadyHave: true + refreshOnReactivate: true + components: + - type: EntityTableSpawner + deleteSpawnerAfterSpawn: false + offset: 5 + table: !type:GroupSelector + rolls: !type:RangeNumberSelector + range: 10, 40 + children: + - !type:NestedSelector + tableId: GenericTrashItems + weight: 35 + +- type: entity + id: SunriseArtifactShatterWindows + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XenoArtifactNode + maxDurability: 3 + maxDurabilityCanDecreaseBy: + min: 0 + max: 2 + - type: XAEDamageInArea + damageChance: 0.75 + whitelist: + tags: + - Window + damage: + types: + Structural: 200 + +- type: entity + id: SunriseEffectBoltAirlocks + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: ArtifactBoltAirlocks + +- type: entity + id: SunriseArtifactHunger + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: ArtifactModifyHunger + +- type: entity + id: SunriseEffectThirst + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: ArtifactModifyThirst + +- type: entity + id: SunriseEffectTeslaDischarge + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEApplyComponents + components: + - type: LightningArcShooter + maxLightningArc: 4 + shootMaxInterval: 4 + shootRange: 6 + - type: TimedRemoveComponents + removeAfter: 10 + components: + - type: LightningArcShooter + +- type: entity + id: SunriseEffectSpawnEvilTwin + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: ArtifactStartGameRule + rules: + EvilTwinSpawn: 2 + +- type: entity + id: SunriseArtifactTeleport + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEApplyComponents + components: + - type: XAERandomTeleportInvoker + +- type: entity + id: SunriseArtifactEmp + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XenoArtifactNode + maxDurability: 5 + maxDurabilityCanDecreaseBy: + min: 0 + max: 3 + - type: XAEEmpInArea + +- type: entity + id: SunriseEffectIgnite + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEIgnite + range: 7 + fireStack: + min: 3 + max: 6 + +- type: entity + id: SunriseEffectShuffleUltra + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEShuffle + radius: 70 + +- type: entity + id: SunriseEffectPolyChair + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEPolymorph + polymorphPrototypeName: SunriseEffectChair + +- type: entity + id: SunriseEffectPolyWatermelon + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEPolymorph + polymorphPrototypeName: SunriseEffectWatermelon + +- type: entity + id: SunriseEffectPolyAppendix + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEPolymorph + polymorphPrototypeName: SunriseEffectAppendix + +- type: entity + id: SunriseEffectPolyDisposal + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEPolymorph + polymorphPrototypeName: SunriseEffectDisposal + +- type: entity + id: SunriseEffectPolyTable + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEPolymorph + polymorphPrototypeName: SunriseEffectTable + +- type: entity + id: SunriseEffectSwap + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: ArtifactWhitelistSwap + targetWhitelist: + components: + - ArtifactFunnyTarget + +- type: entity + id: SunriseEffectRandomTransformation + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: ArtifactRandomTransformation + prototypeBlacklist: + - Singularity + - TeslaEnergyBall + - TeslaMiniEnergyBall + categoryBlacklist: + - HideSpawnMenu + - Debug + - Spawner + +- type: entity + id: SunriseEffectMagnetUltra + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: XAEApplyComponents + components: + - type: GravityWell + maxRange: 80 + baseRadialAcceleration: 90 + - type: TimedRemoveComponents + components: + - type: GravityWell + +- type: entity + id: SunriseEffectShiftedAsciiTableAccent + parent: BaseXenoArtifactEffect + description: artifact-effect-hint-data-deleted + categories: [ HideSpawnMenu ] + components: + - type: AddComponentsInRadius + whitelist: + components: + - HumanoidAppearance + components: + - type: AnomalyAccent + - type: TimedRemoveComponents + removeAfter: 600 + components: + - type: AnomalyAccent diff --git a/Resources/Prototypes/_Sunrise/Research/Artifact/tables.yml b/Resources/Prototypes/_Sunrise/Research/Artifact/tables.yml new file mode 100644 index 0000000000..3860070f46 --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Research/Artifact/tables.yml @@ -0,0 +1,167 @@ +# Эффекты + +- type: entityTable + id: SunriseArtifactEffectsDefaultTable + table: !type:GroupSelector + children: + - id: SunriseEffectHeal + weight: 2 + - id: SunriseArtifactGenerateEnergy + weight: 2 + - id: SunriseArtifactWandering + weight: 3 + - id: SunriseArtifactThrowThingsAround + weight: 3 + - id: SunriseArtifactKnock + weight: 3 + - id: SunriseArtifactEffectJunkSpawn + weight: 3 + - id: SunriseArtifactShatterWindows + weight: 3 + - id: SunriseEffectBoltAirlocks + weight: 3 + - id: SunriseArtifactHunger + weight: 2 + - id: SunriseEffectThirst + weight: 2 + - id: SunriseEffectTeslaDischarge + weight: 1 + - id: SunriseEffectSpawnEvilTwin + weight: 1 + - id: SunriseArtifactTeleport + weight: 2 + - id: SunriseArtifactEmp + weight: 2 + - id: SunriseEffectIgnite + weight: 1 + +- type: entityTable + id: SunriseArtifactEffectsUltraFunnyTable + table: !type:GroupSelector + children: + - id: SunriseEffectShuffleUltra + weight: 2 + - id: SunriseEffectPolyChair + weight: 3 + - id: SunriseEffectPolyWatermelon + weight: 3 + - id: SunriseEffectPolyAppendix + weight: 3 + - id: SunriseEffectPolyDisposal + weight: 3 + - id: SunriseEffectPolyTable + weight: 3 + - id: SunriseEffectSwap + weight: 3 + - id: SunriseEffectRandomTransformation + weight: 1 + - id: SunriseEffectMagnetUltra + weight: 2 + - id: SunriseEffectShiftedAsciiTableAccent + weight: 3 + +# Ванильная, которую я чуть подрезал +- type: entityTable + id: SunriseArtifactEffectsVanillaDefaultReducedTable + table: !type:GroupSelector + children: + - id: XenoArtifactSpeedUp + weight: 4.0 + - id: XenoArtifactGhost + weight: 4.0 + - id: XenoArtifactPotassiumWave + weight: 7.0 + - id: XenoArtifactFloraSpawn + weight: 7.0 + - id: XenoArtifactChemicalPuddle + weight: 7.0 + - id: XenoArtifactThrowThingsAround + weight: 7.0 + - id: XenoArtifactColdWave + weight: 7.0 + - id: XenoArtifactHeatWave + weight: 4.0 + - id: XenoArtifactFoamMild + weight: 5.0 + - id: XenoArtifactRandomInstrumentSpawn + weight: 7.0 + - id: XenoArtifactRadioactive + weight: 5.0 + - id: XenoArtifactChargeBattery + weight: 7.0 + - id: XenoArtifactStealth + weight: 1.0 + - id: XenoArtifactRareMaterialSpawnSilver + weight: 1.8 + - id: XenoArtifactRareMaterialSpawnPlasma + weight: 2.0 + - id: XenoArtifactRareMaterialSpawnGold + weight: 1.8 + - id: XenoArtifactRareMaterialSpawnUranium + weight: 1.0 + - id: XenoArtifactAngryCarpSpawn + weight: 4.0 + - id: XenoArtifactFaunaSpawn + weight: 7.0 + - id: XenoArtifactCashSpawn + weight: 7.0 + - id: XenoArtifactFoamGood + weight: 4.0 + - id: XenoArtifactFoamDangerous + weight: 2.0 + - id: XenoArtifactPuddleRare + weight: 2.0 + - id: XenoArtifactAnomalySpawn + weight: 7.0 + - id: XenoArtifactRadioactiveStrong + weight: 3.0 + - id: XenoArtifactMaterialSpawnGlass + weight: 3.3 + - id: XenoArtifactMaterialSpawnSteel + weight: 3.3 + - id: XenoArtifactMaterialSpawnPlastic + weight: 3.3 + - id: XenoArtifactArtifactSpawn + weight: 0.5 + - id: XenoArtifactExplosionScary + weight: 1.0 + - id: XenoArtifactBoom + weight: 5.0 + - id: XenoArtifactEffectCreationGasPlasma + weight: 2.0 + - id: XenoArtifactEffectCreationGasTritium + weight: 2.0 + - id: XenoArtifactEffectCreationGasAmmonia + weight: 3.0 + - id: XenoArtifactEffectCreationGasFrezon + weight: 1.0 + - id: XenoArtifactEffectCreationGasNitrousOxide + weight: 4.0 + - id: XenoArtifactEffectCreationGasCarbonDioxide + weight: 4.0 + +# Триггеры + +- type: weightedRandomXenoArchTrigger + id: SunriseDefaultTriggers + weights: + TriggerMusic: 1 + TriggerHeat: 1 + TriggerCold: 0.5 + TriggerPlasma: 0.5 + TriggerRadiation: 0.5 + TriggerPressureHigh: 0.5 + TriggerPressureLow: 1 + TriggerExamine: 1 + TriggerBruteDamage: 1 + TriggerWrenching: 1 + TriggerPrying: 1 + TriggerScrewing: 1 + TriggerPulsing: 1 + TriggerTimer: 0.25 + TriggerBlood: 1 + TriggerThrow: 1 + TriggerDeath: 1 + TriggerMagnet: 1 + # Дальше наши самописные + TriggerHealthAnalyzer: 1 diff --git a/Resources/Prototypes/_Sunrise/Research/Artifact/triggers.yml b/Resources/Prototypes/_Sunrise/Research/Artifact/triggers.yml new file mode 100644 index 0000000000..6bfe35581e --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Research/Artifact/triggers.yml @@ -0,0 +1,5 @@ +- type: xenoArchTrigger + id: TriggerHealthAnalyzer + tip: artifact-trigger-hint-health-analyzer + components: + - type: ArtifactHealthAnalyzerInteractionTrigger