From 0dbf9647a3ef80bc36db0a8c0e54546275b7d167 Mon Sep 17 00:00:00 2001 From: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> Date: Fri, 28 Nov 2025 02:26:53 -0600 Subject: [PATCH] Update mountain walls/alt-asteroids (#4777) * Update mountain walls/alt-asteroids * no rot --------- Co-authored-by: Velcroboy --- .../Construction/Commands/TileWallsCommand.cs | 14 +- .../Entities/Structures/Walls/asteroid.yml | 12 ++ .../Prototypes/_DV/Damage/modifier_sets.yml | 15 ++ .../Entities/Structures/Walls/mountain.yml | 164 +++++++++--------- Resources/Prototypes/_DV/tags.yml | 3 + 5 files changed, 129 insertions(+), 79 deletions(-) diff --git a/Content.Server/Construction/Commands/TileWallsCommand.cs b/Content.Server/Construction/Commands/TileWallsCommand.cs index ca87795b06..feda29ea96 100644 --- a/Content.Server/Construction/Commands/TileWallsCommand.cs +++ b/Content.Server/Construction/Commands/TileWallsCommand.cs @@ -22,7 +22,9 @@ public sealed class TileWallsCommand : IConsoleCommand public string Help => $"Usage: {Command} | {Command}"; public static readonly ProtoId TilePrototypeId = "Plating"; + public static readonly ProtoId TilePrototypeId2 = "FloorCave"; // Delta V - Add cave floor under asteroid rocks public static readonly ProtoId WallTag = "Wall"; + public static readonly ProtoId NaturalTag = "Natural"; // Delta V - Add cave floor under asteroid rocks public static readonly ProtoId DiagonalTag = "Diagonal"; public void Execute(IConsoleShell shell, string argStr, string[] args) @@ -70,6 +72,8 @@ public sealed class TileWallsCommand : IConsoleCommand var tagSystem = _entManager.EntitySysManager.GetEntitySystem(); var underplating = _tileDefManager[TilePrototypeId]; var underplatingTile = new Tile(underplating.TileId); + var naturalunderplating = _tileDefManager[TilePrototypeId2]; // Delta V - Add cave floor under asteroid rocks + var naturalunderplatingTile = new Tile(naturalunderplating.TileId); // Delta V - Add cave floor under asteroid rocks var changed = 0; var enumerator = _entManager.GetComponent(gridId.Value).ChildEnumerator; while (enumerator.MoveNext(out var child)) @@ -102,9 +106,17 @@ public sealed class TileWallsCommand : IConsoleCommand if (tileDef.ID == TilePrototypeId) { + // Delta V - Begin add natural wall tile replace + if (tagSystem.HasTag(child, NaturalTag)) + { + + mapSystem.SetTile(gridId.Value, grid, childTransform.Coordinates, naturalunderplatingTile); + changed++; + continue; + } + // Delta V - end add natural wall tile replace continue; } - mapSystem.SetTile(gridId.Value, grid, childTransform.Coordinates, underplatingTile); changed++; } diff --git a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml index 55211c0cf7..9c8b1ac62f 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml @@ -59,6 +59,12 @@ layer: - WallLayer density: 2000 + # Delta V - add Tag + - type: Tag + tags: + - Wall + - Natural + # Delta V - end tags - type: entity abstract: true @@ -812,6 +818,12 @@ state: rock_north - map: [ "enum.EdgeLayer.West" ] state: rock_west + # Delta V - add Tag + - type: Tag + tags: + - Wall + - Natural + # Delta V - end tags # Ore veins - type: entity diff --git a/Resources/Prototypes/_DV/Damage/modifier_sets.yml b/Resources/Prototypes/_DV/Damage/modifier_sets.yml index ec81c90c18..0796084c80 100644 --- a/Resources/Prototypes/_DV/Damage/modifier_sets.yml +++ b/Resources/Prototypes/_DV/Damage/modifier_sets.yml @@ -153,3 +153,18 @@ Blunt: 1.5 Holy: 2.5 Shadow: 0.7 + +- type: damageModifierSet + id: MountainRock + coefficients: + Structural: 0.25 + Blunt: 0.1 + Slash: 0.05 + Piercing: 0.2 + Heat: 0.5 + flatReductions: + Structural: 10 + Blunt: 15 + Slash: 40 + Piercing: 15 + Heat: 10 diff --git a/Resources/Prototypes/_DV/Entities/Structures/Walls/mountain.yml b/Resources/Prototypes/_DV/Entities/Structures/Walls/mountain.yml index 433d828355..a5eae3258d 100644 --- a/Resources/Prototypes/_DV/Entities/Structures/Walls/mountain.yml +++ b/Resources/Prototypes/_DV/Entities/Structures/Walls/mountain.yml @@ -1,20 +1,24 @@ - type: entity - id: AsteroidAltRock #It's 1994 - parent: BaseStructure + id: BaseAltRock #It's 1994 + parent: BaseWall + abstract: true name: asteroid rock - suffix: Low Ore Yield description: A rocky asteroid. components: - - type: Gatherable - toolWhitelist: - tags: - - Pickaxe - type: Sprite sprite: _DV/Structures/Walls/asteroid_rock.rsi state: full + - type: Icon + sprite: _DV/Structures/Walls/asteroid_rock.rsi + state: full + - type: Tag + tags: + - Wall + - Natural + - type: MiningScannerViewable - type: Damageable - damageContainer: Inorganic - damageModifierSet: Metallic + damageContainer: StructuralInorganic + damageModifierSet: Rock - type: Destructible thresholds: - trigger: @@ -23,15 +27,18 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] - - type: Occluder - - type: Airtight + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/break_stone.ogg + params: + volume: -6 - type: Fixtures fixtures: fix1: shape: !type:PhysShapeAabb bounds: "-0.5,-0.5,0.5,0.5" - density: 100 + density: 2000 mask: - FullTileMask layer: @@ -39,18 +46,75 @@ - type: IconSmooth key: walls base: rock_ + +- type: entity + id: AsteroidAltRock + parent: BaseAltRock + suffix: Low Yield, Standard Value + components: - type: OreVein oreChance: 0.2 oreRarityPrototypeId: RandomOreDistributionStandard - type: entity - id: MountainRockMining + id: AsteroidAltRockMining parent: AsteroidAltRock + suffix: High Yield, Standard Value + components: + - type: OreVein + oreChance: 0.33 + oreRarityPrototypeId: RandomOreDistributionStandard + +- type: entity + id: AsteroidRockOreCrab + parent: AsteroidAltRock + suffix: Ore Crab + components: + - type: OreVein + oreChance: 0.33 + oreRarityPrototypeId: OreCrab + +- type: entity + id: MountainRock + parent: BaseAltRock name: mountain rock - suffix: Low Yield/Higher Value Ore description: A craggy mountain wall. + suffix: Un-mineable components: - type: Sprite + sprite: _DV/Structures/Walls/mountain_rock.rsi + state: full + drawdepth: Walls + - type: Icon + sprite: _DV/Structures/Walls/mountain_rock.rsi + state: full + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: MountainRock + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1500 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/break_stone.ogg + params: + volume: -6 + +- type: entity + id: MountainRockMining + parent: MountainRock + suffix: Low Yield, High Value + components: + - type: Sprite + sprite: _DV/Structures/Walls/mountain_rock_ore.rsi + state: full + drawdepth: Walls + - type: Icon sprite: _DV/Structures/Walls/mountain_rock_ore.rsi state: full - type: Destructible @@ -61,70 +125,14 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/break_stone.ogg + params: + volume: -6 + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: Rock - type: OreVein oreChance: 0.20 oreRarityPrototypeId: RandomOreDistributionHigh - -- type: entity - id: MountainRock - parent: BaseStructure - name: mountain rock - suffix: Un-mineable - description: A craggy mountain wall. It is too hard to mine. - components: - - type: Sprite - sprite: _DV/Structures/Walls/mountain_rock.rsi - state: full - - type: Damageable - damageContainer: Inorganic - damageModifierSet: StrongMetallic - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 1500 - behaviors: - - !type:DoActsBehavior - acts: ["Destruction"] - - type: Occluder - - type: Airtight - - type: Fixtures - fixtures: - fix1: - shape: - !type:PhysShapeAabb - bounds: "-0.5,-0.5,0.5,0.5" - density: 100 - mask: - - FullTileMask - layer: - - WallLayer - - type: IconSmooth - key: walls - base: rock_ - -- type: entity - id: AsteroidAltRockMining - parent: AsteroidAltRock - name: asteroid rock - suffix: Higher Ore Yield - description: A rocky asteroid. - components: - - type: Gatherable - toolWhitelist: - tags: - - Pickaxe - - type: OreVein - oreChance: 0.33 - oreRarityPrototypeId: RandomOreDistributionStandard - -- type: entity - id: AsteroidRockOreCrab - parent: AsteroidAltRock - name: asteroid rock - suffix: Ore Crab - description: A rocky asteroid. - components: - - type: OreVein - oreChance: 0.33 - oreRarityPrototypeId: OreCrab diff --git a/Resources/Prototypes/_DV/tags.yml b/Resources/Prototypes/_DV/tags.yml index 0d0e84cbf4..8eea8b835a 100644 --- a/Resources/Prototypes/_DV/tags.yml +++ b/Resources/Prototypes/_DV/tags.yml @@ -141,6 +141,9 @@ - type: Tag id: MothroachHide +- type: Tag + id: Natural + - type: Tag id: NormalityCrystal