Generalize tile prying to any tool quality (#24432)

* Generalize tile prying to any tool quality

* ballin
This commit is contained in:
Nemanja
2024-01-23 02:45:40 -05:00
committed by GitHub
parent 258b9436b5
commit 5e2e652165
22 changed files with 267 additions and 389 deletions

View File

@@ -1,5 +1,6 @@
using Content.Shared.Atmos;
using Content.Shared.Movement.Systems;
using Content.Shared.Tools;
using Robust.Shared.Audio;
using Robust.Shared.Map;
using Robust.Shared.Prototypes;
@@ -12,6 +13,9 @@ namespace Content.Shared.Maps
[Prototype("tile")]
public sealed partial class ContentTileDefinition : IPrototype, IInheritingPrototype, ITileDefinition
{
[ValidatePrototypeId<ToolQualityPrototype>]
public const string PryingToolQuality = "Prying";
public const string SpaceID = "Space";
[ParentDataFieldAttribute(typeof(AbstractPrototypeIdArraySerializer<ContentTileDefinition>))]
@@ -38,14 +42,13 @@ namespace Content.Shared.Maps
[DataField("baseTurf")]
public string BaseTurf { get; private set; } = string.Empty;
[DataField("canCrowbar")] public bool CanCrowbar { get; private set; }
[DataField]
public PrototypeFlags<ToolQualityPrototype> DeconstructTools { get; set; } = new();
/// <summary>
/// Whether this tile can be pried by an advanced prying tool if not pryable otherwise.
/// </summary>
[DataField("canAxe")] public bool CanAxe { get; private set; }
[DataField("canWirecutter")] public bool CanWirecutter { get; private set; }
/// <remarks>
/// Legacy AF but nice to have.
/// </remarks>
public bool CanCrowbar => DeconstructTools.Contains(PryingToolQuality);
/// <summary>
/// These play when the mob has shoes on.