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

@@ -26,8 +26,13 @@ public sealed class TileSystem : EntitySystem
var tileRef = grid.GetTileRef(indices); var tileRef = grid.GetTileRef(indices);
return PryTile(tileRef); return PryTile(tileRef);
} }
public bool PryTile(TileRef tileRef)
{
return PryTile(tileRef, false);
}
public bool PryTile(TileRef tileRef) 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

@@ -12,6 +12,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

@@ -37,6 +37,11 @@ namespace Content.Shared.Maps
public string BaseTurf { get; } = string.Empty; public string BaseTurf { get; } = string.Empty;
[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; }

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