fire axe plating (#18087)

This commit is contained in:
Ilya246
2023-07-17 11:47:20 +04:00
committed by GitHub
parent a5769429bf
commit 9261cef915
6 changed files with 22 additions and 4 deletions

View File

@@ -28,6 +28,11 @@ public sealed class TileSystem : EntitySystem
} }
public bool PryTile(TileRef tileRef) public bool PryTile(TileRef tileRef)
{
return PryTile(tileRef, false);
}
public bool PryTile(TileRef tileRef, bool pryPlating)
{ {
var tile = tileRef.Tile; var tile = tileRef.Tile;
@@ -36,7 +41,7 @@ public sealed class TileSystem : EntitySystem
var tileDef = (ContentTileDefinition) _tileDefinitionManager[tile.TypeId]; var tileDef = (ContentTileDefinition) _tileDefinitionManager[tile.TypeId];
if (!tileDef.CanCrowbar) if (!tileDef.CanCrowbar && !(pryPlating && tileDef.CanAxe))
return false; return false;
return DeconstructTile(tileRef); return DeconstructTile(tileRef);

View File

@@ -13,6 +13,12 @@ namespace Content.Server.Tools.Components
[DataField("qualityNeeded", customTypeSerializer:typeof(PrototypeIdSerializer<ToolQualityPrototype>))] [DataField("qualityNeeded", customTypeSerializer:typeof(PrototypeIdSerializer<ToolQualityPrototype>))]
public string QualityNeeded = "Prying"; public string QualityNeeded = "Prying";
/// <summary>
/// Whether this tool can pry tiles with CanAxe.
/// </summary>
[DataField("advanced")]
public bool Advanced = false;
[DataField("delay")] [DataField("delay")]
public float Delay = 1f; public float Delay = 1f;
} }

View File

@@ -51,7 +51,7 @@ public sealed partial class ToolSystem
$"{ToPrettyString(args.User):actor} pried {_tileDefinitionManager[tile.Tile.TypeId].Name} at {center}"); $"{ToPrettyString(args.User):actor} pried {_tileDefinitionManager[tile.Tile.TypeId].Name} at {center}");
} }
_tile.PryTile(tile); _tile.PryTile(tile, component.Advanced);
} }
private bool TryPryTile(EntityUid toolEntity, EntityUid user, TilePryingComponent component, EntityCoordinates clickLocation) private bool TryPryTile(EntityUid toolEntity, EntityUid user, TilePryingComponent component, EntityCoordinates clickLocation)
@@ -71,7 +71,7 @@ public sealed partial class ToolSystem
var tileDef = (ContentTileDefinition)_tileDefinitionManager[tile.Tile.TypeId]; var tileDef = (ContentTileDefinition)_tileDefinitionManager[tile.Tile.TypeId];
if (!tileDef.CanCrowbar) if (!tileDef.CanCrowbar && !(tileDef.CanAxe && component.Advanced))
return false; return false;
var ev = new TilePryingDoAfterEvent(coordinates); var ev = new TilePryingDoAfterEvent(coordinates);

View File

@@ -38,6 +38,11 @@ namespace Content.Shared.Maps
[DataField("canCrowbar")] public bool CanCrowbar { get; private set; } [DataField("canCrowbar")] public bool CanCrowbar { get; private set; }
/// <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; } [DataField("canWirecutter")] public bool CanWirecutter { get; private set; }
/// <summary> /// <summary>

View File

@@ -37,6 +37,7 @@
qualities: qualities:
- Prying - Prying
- type: TilePrying - type: TilePrying
advanced: true
- type: entity - type: entity
id: FireAxeFlaming id: FireAxeFlaming

View File

@@ -4,6 +4,7 @@
sprite: /Textures/Tiles/plating.png sprite: /Textures/Tiles/plating.png
baseTurf: Lattice baseTurf: Lattice
isSubfloor: true isSubfloor: true
canAxe: true
footstepSounds: footstepSounds:
collection: FootstepPlating collection: FootstepPlating
friction: 0.3 friction: 0.3