diff --git a/OpenRA.Mods.Common/Traits/Buildings/FootprintUtils.cs b/OpenRA.Mods.Common/Traits/Buildings/FootprintUtils.cs index f2467eb682..a4a90bfd88 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/FootprintUtils.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/FootprintUtils.cs @@ -50,6 +50,13 @@ namespace OpenRA.Mods.Common.Traits yield return tile + position; } + public static IEnumerable PathableTiles(string name, BuildingInfo buildingInfo, CPos position) + { + var footprint = buildingInfo.Footprint.Where(x => !char.IsWhiteSpace(x)).ToArray(); + foreach (var tile in TilesWhere(name, buildingInfo.Dimensions, footprint, a => a == '_')) + yield return tile + position; + } + static IEnumerable TilesWhere(string name, CVec dim, char[] footprint, Func cond) { if (footprint.Length != dim.X * dim.Y) diff --git a/OpenRA.Mods.TS/OpenRA.Mods.TS.csproj b/OpenRA.Mods.TS/OpenRA.Mods.TS.csproj index f2e9b0f651..b59843ae05 100644 --- a/OpenRA.Mods.TS/OpenRA.Mods.TS.csproj +++ b/OpenRA.Mods.TS/OpenRA.Mods.TS.csproj @@ -69,6 +69,7 @@ + diff --git a/OpenRA.Mods.TS/Traits/Buildings/LowBridge.cs b/OpenRA.Mods.TS/Traits/Buildings/LowBridge.cs new file mode 100644 index 0000000000..d1eeb93fd0 --- /dev/null +++ b/OpenRA.Mods.TS/Traits/Buildings/LowBridge.cs @@ -0,0 +1,72 @@ +#region Copyright & License Information +/* + * Copyright 2007-2016 The OpenRA Developers (see AUTHORS) + * This file is part of OpenRA, which is free software. It is made + * available to you under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 of + * the License, or (at your option) any later version. For more + * information, see COPYING. + */ +#endregion + +using System.Collections.Generic; +using OpenRA.Graphics; +using OpenRA.Mods.Common.Traits; +using OpenRA.Primitives; +using OpenRA.Traits; + +namespace OpenRA.Mods.TS.Traits +{ + [Desc("Bridge actor that can't be passed underneath.")] + class LowBridgeInfo : ITraitInfo, Requires + { + public readonly string TerrainType = "Road"; + + public object Create(ActorInitializer init) { return new LowBridge(init.Self, this); } + } + + class LowBridge : INotifyAddedToWorld, INotifyRemovedFromWorld + { + readonly LowBridgeInfo info; + readonly IEnumerable cells; + + public LowBridge(Actor self, LowBridgeInfo info) + { + this.info = info; + + var buildingInfo = self.Info.TraitInfo(); + cells = FootprintUtils.PathableTiles(self.Info.Name, buildingInfo, self.Location); + } + + void UpdateTerrain(Actor self, byte terrainIndex) + { + foreach (var cell in cells) + self.World.Map.CustomTerrain[cell] = terrainIndex; + + var domainIndex = self.World.WorldActor.TraitOrDefault(); + if (domainIndex != null) + domainIndex.UpdateCells(self.World, cells); + } + + void INotifyAddedToWorld.AddedToWorld(Actor self) + { + var tileSet = self.World.Map.Rules.TileSet; + var terrainIndex = tileSet.GetTerrainIndex(info.TerrainType); + UpdateTerrain(self, terrainIndex); + } + + void KillUnitsOnBridge(Actor self) + { + foreach (var c in cells) + foreach (var a in self.World.ActorMap.GetActorsAt(c)) + if (a.Info.HasTraitInfo() && !a.Trait().CanEnterCell(c)) + a.Kill(self); + } + + void INotifyRemovedFromWorld.RemovedFromWorld(Actor self) + { + UpdateTerrain(self, byte.MaxValue); + KillUnitsOnBridge(self); + } + } +} diff --git a/OpenRA.Mods.TS/UtilityCommands/ImportTSMapCommand.cs b/OpenRA.Mods.TS/UtilityCommands/ImportTSMapCommand.cs index 78feabfa80..896b66c99e 100644 --- a/OpenRA.Mods.TS/UtilityCommands/ImportTSMapCommand.cs +++ b/OpenRA.Mods.TS/UtilityCommands/ImportTSMapCommand.cs @@ -18,6 +18,7 @@ using OpenRA.FileSystem; using OpenRA.Mods.Common; using OpenRA.Mods.Common.FileFormats; using OpenRA.Mods.Common.Traits; +using OpenRA.Traits; namespace OpenRA.Mods.TS.UtilityCommands { @@ -72,40 +73,41 @@ namespace OpenRA.Mods.TS.UtilityCommands { 0x47, "palet02" }, { 0x48, "palet03" }, { 0x49, "palet04" }, - /* - { 0x4A, "lobrdg01" }, - { 0x4B, "lobrdg02" }, - { 0x4C, "lobrdg03" }, - { 0x4D, "lobrdg04" }, - { 0x4E, "lobrdg05" }, - { 0x4F, "lobrdg06" }, - { 0x50, "lobrdg07" }, - { 0x51, "lobrdg08" }, - { 0x52, "lobrdg09" }, - { 0x53, "lobrdg10" }, - { 0x54, "lobrdg11" }, - { 0x55, "lobrdg12" }, - { 0x56, "lobrdg13" }, - { 0x57, "lobrdg14" }, - { 0x58, "lobrdg15" }, - { 0x59, "lobrdg16" }, - { 0x5A, "lobrdg17" }, - { 0x5B, "lobrdg18" }, - { 0x5C, "lobrdg19" }, - { 0x5D, "lobrdg20" }, - { 0x5E, "lobrdg21" }, - { 0x5F, "lobrdg22" }, - { 0x60, "lobrdg23" }, - { 0x61, "lobrdg24" }, - { 0x62, "lobrdg25" }, - { 0x63, "lobrdg26" }, - { 0x64, "lobrdg27" }, - { 0x65, "lobrdg28" }, - { 0x7A, "lobrdg1" }, - { 0x7B, "lobrdg2" }, - { 0x7C, "lobrdg3" }, - { 0x7D, "lobrdg4" }, - */ + + { 0x4A, "lobrdg_b" }, // lobrdg01 + { 0x4B, "lobrdg_b" }, // lobrdg02 + { 0x4C, "lobrdg_b" }, // lobrdg03 + { 0x4D, "lobrdg_b" }, // lobrdg04 + { 0x4E, "lobrdg_b" }, // lobrdg05 + { 0x4F, "lobrdg_b" }, // lobrdg06 + { 0x50, "lobrdg_b" }, // lobrdg07 + { 0x51, "lobrdg_b" }, // lobrdg08 + { 0x52, "lobrdg_b" }, // lobrdg09 + { 0x53, "lobrdg_a" }, // lobrdg10 + { 0x54, "lobrdg_a" }, // lobrdg11 + { 0x55, "lobrdg_a" }, // lobrdg12 + { 0x56, "lobrdg_a" }, // lobrdg13 + { 0x57, "lobrdg_a" }, // lobrdg14 + { 0x58, "lobrdg_a" }, // lobrdg15 + { 0x59, "lobrdg_a" }, // lobrdg16 + { 0x5A, "lobrdg_a" }, // lobrdg17 + { 0x5B, "lobrdg_a" }, // lobrdg18 + { 0x5C, "lobrdg_r_se" }, // lobrdg19 + { 0x5D, "lobrdg_r_se" }, // lobrdg20 + { 0x5E, "lobrdg_r_nw" }, // lobrdg21 + { 0x5F, "lobrdg_r_nw" }, // lobrdg22 + { 0x60, "lobrdg_r_ne" }, // lobrdg23 + { 0x61, "lobrdg_r_ne" }, // lobrdg24 + { 0x62, "lobrdg_r_sw" }, // lobrdg25 + { 0x63, "lobrdg_r_sw" }, // lobrdg26 + { 0x64, "lobrdg_b_d" }, // lobrdg27 + { 0x65, "lobrdg_a_d" }, // lobrdg28 + + { 0x7A, "lobrdg_r_se" }, // lobrdg1 + { 0x7B, "lobrdg_r_nw" }, // lobrdg2 + { 0x7C, "lobrdg_r_ne" }, // lobrdg3 + { 0x7D, "lobrdg_r_sw" }, // lobrdg4 + { 0xA7, "veinhole" }, { 0xA8, "srock01" }, { 0xA9, "srock02" }, @@ -121,6 +123,93 @@ namespace OpenRA.Mods.TS.UtilityCommands { 0xBC, "crate" } }; + static readonly Dictionary OverlayShapes = new Dictionary() + { + { 0x4A, new Size(1, 3) }, + { 0x4B, new Size(1, 3) }, + { 0x4C, new Size(1, 3) }, + { 0x4D, new Size(1, 3) }, + { 0x4E, new Size(1, 3) }, + { 0x4F, new Size(1, 3) }, + { 0x50, new Size(1, 3) }, + { 0x51, new Size(1, 3) }, + { 0x52, new Size(1, 3) }, + { 0x53, new Size(3, 1) }, + { 0x54, new Size(3, 1) }, + { 0x55, new Size(3, 1) }, + { 0x56, new Size(3, 1) }, + { 0x57, new Size(3, 1) }, + { 0x58, new Size(3, 1) }, + { 0x59, new Size(3, 1) }, + { 0x5A, new Size(3, 1) }, + { 0x5B, new Size(3, 1) }, + { 0x5C, new Size(1, 3) }, + { 0x5D, new Size(1, 3) }, + { 0x5E, new Size(1, 3) }, + { 0x5F, new Size(1, 3) }, + { 0x60, new Size(3, 1) }, + { 0x61, new Size(3, 1) }, + { 0x62, new Size(3, 1) }, + { 0x63, new Size(3, 1) }, + { 0x64, new Size(1, 3) }, + { 0x65, new Size(3, 1) }, + { 0x7A, new Size(1, 3) }, + { 0x7B, new Size(1, 3) }, + { 0x7C, new Size(3, 1) }, + { 0x7D, new Size(3, 1) }, + }; + + static readonly Dictionary OverlayToHealth = new Dictionary() + { + // 1,3 bridge tiles + { 0x4A, DamageState.Undamaged }, + { 0x4B, DamageState.Undamaged }, + { 0x4C, DamageState.Undamaged }, + { 0x4D, DamageState.Undamaged }, + + { 0x4E, DamageState.Heavy }, + { 0x4F, DamageState.Heavy }, + + { 0x50, DamageState.Heavy }, + + { 0x51, DamageState.Critical }, + { 0x52, DamageState.Critical }, + + // 3,1 bridge tiles + { 0x53, DamageState.Undamaged }, + { 0x54, DamageState.Undamaged }, + { 0x55, DamageState.Undamaged }, + { 0x56, DamageState.Undamaged }, + + { 0x57, DamageState.Heavy }, + { 0x58, DamageState.Heavy }, + + { 0x59, DamageState.Heavy }, + + { 0x5A, DamageState.Critical }, + { 0x5B, DamageState.Critical }, + + // Ramps + { 0x5C, DamageState.Undamaged }, + { 0x5D, DamageState.Heavy }, + { 0x5E, DamageState.Undamaged }, + { 0x5F, DamageState.Heavy }, + { 0x60, DamageState.Undamaged }, + { 0x61, DamageState.Heavy }, + { 0x62, DamageState.Undamaged }, + { 0x63, DamageState.Heavy }, + + // Ramp duplicates + { 0x7A, DamageState.Undamaged }, + { 0x7B, DamageState.Undamaged }, + { 0x7C, DamageState.Undamaged }, + { 0x7D, DamageState.Undamaged }, + + // actually dead, placeholders for resurrection + { 0x64, DamageState.Undamaged }, + { 0x65, DamageState.Undamaged }, + }; + static readonly Dictionary ResourceFromOverlay = new Dictionary() { // "tib" - Regular Tiberium @@ -274,6 +363,9 @@ namespace OpenRA.Mods.TS.UtilityCommands var overlayDataPack = new byte[1 << 18]; UnpackLCW(overlayDataCompressed, overlayDataPack, temp); + var overlayIndex = new CellLayer(map); + overlayIndex.Clear(0xFF); + for (var y = 0; y < fullSize.Y; y++) { for (var x = fullSize.X * 2 - 2; x >= 0; x--) @@ -288,38 +380,79 @@ namespace OpenRA.Mods.TS.UtilityCommands if (!map.Resources.Contains(uv)) continue; - var idx = rx + 512 * ry; - var overlayType = overlayPack[idx]; - if (overlayType == 0xFF) - continue; - - string actorType; - if (OverlayToActor.TryGetValue(overlayType, out actorType)) - { - var ar = new ActorReference(actorType) - { - new LocationInit(uv.ToCPos(map)), - new OwnerInit("Neutral") - }; - - map.ActorDefinitions.Add(new MiniYamlNode("Actor" + map.ActorDefinitions.Count, ar.Save())); - continue; - } - - var resourceType = ResourceFromOverlay - .Where(kv => kv.Value.Contains(overlayType)) - .Select(kv => kv.Key) - .FirstOrDefault(); - - if (resourceType != 0) - { - map.Resources[uv] = new ResourceTile(resourceType, overlayDataPack[idx]); - continue; - } - - Console.WriteLine("{0} unknown overlay {1}", uv, overlayType); + overlayIndex[uv] = rx + 512 * ry; } } + + foreach (var cell in map.AllCells) + { + var overlayType = overlayPack[overlayIndex[cell]]; + if (overlayType == 0xFF) + continue; + + string actorType; + if (OverlayToActor.TryGetValue(overlayType, out actorType)) + { + var shape = new Size(1, 1); + if (OverlayShapes.TryGetValue(overlayType, out shape)) + { + // Only import the top-left cell of multi-celled overlays + var aboveType = overlayPack[overlayIndex[cell - new CVec(1, 0)]]; + if (shape.Width > 1 && aboveType != 0xFF) + { + string a; + if (OverlayToActor.TryGetValue(aboveType, out a) && a == actorType) + continue; + } + + var leftType = overlayPack[overlayIndex[cell - new CVec(0, 1)]]; + if (shape.Height > 1 && leftType != 0xFF) + { + string a; + if (OverlayToActor.TryGetValue(leftType, out a) && a == actorType) + continue; + } + } + + var ar = new ActorReference(actorType) + { + new LocationInit(cell), + new OwnerInit("Neutral") + }; + + DamageState damageState; + if (OverlayToHealth.TryGetValue(overlayType, out damageState)) + { + var health = 100; + if (damageState == DamageState.Critical) + health = 25; + else if (damageState == DamageState.Heavy) + health = 50; + else if (damageState == DamageState.Medium) + health = 75; + + if (health != 100) + ar.Add(new HealthInit(health)); + } + + map.ActorDefinitions.Add(new MiniYamlNode("Actor" + map.ActorDefinitions.Count, ar.Save())); + + continue; + } + + var resourceType = ResourceFromOverlay + .Where(kv => kv.Value.Contains(overlayType)) + .Select(kv => kv.Key) + .FirstOrDefault(); + + if (resourceType != 0) + { + map.Resources[cell] = new ResourceTile(resourceType, overlayDataPack[overlayIndex[cell]]); + continue; + } + + Console.WriteLine("{0} unknown overlay {1}", cell, overlayType); + } } static void ReadWaypoints(Map map, IniFile file, int2 fullSize) diff --git a/mods/ts/maps/arivruns/map.bin b/mods/ts/maps/arivruns/map.bin index 68f09a1ec5..bd0097b1f8 100644 Binary files a/mods/ts/maps/arivruns/map.bin and b/mods/ts/maps/arivruns/map.bin differ diff --git a/mods/ts/maps/arivruns/map.png b/mods/ts/maps/arivruns/map.png index bcb6f2c759..6672192624 100644 Binary files a/mods/ts/maps/arivruns/map.png and b/mods/ts/maps/arivruns/map.png differ diff --git a/mods/ts/maps/arivruns/map.yaml b/mods/ts/maps/arivruns/map.yaml index 306fe94b7f..7019cd5b07 100644 --- a/mods/ts/maps/arivruns/map.yaml +++ b/mods/ts/maps/arivruns/map.yaml @@ -14,7 +14,7 @@ Bounds: 2,4,130,242 Visibility: Lobby -Categories: Conquest, Playable, Original TS Map +Categories: Conquest, Original TS Map Players: PlayerReference@Neutral: @@ -59,6 +59,86 @@ Players: Enemies: Creeps Actors: + Actor0: cabhut + Location: 104,-68 + Owner: Neutral + Health: 100 + Facing: 96 + Actor1: cabhut + Location: 95,-72 + Owner: Neutral + Health: 100 + Facing: 96 + Actor2: cabhut + Location: 169,68 + Owner: Neutral + Health: 100 + Facing: 96 + Actor3: cabhut + Location: 158,64 + Owner: Neutral + Health: 100 + Facing: 96 + Actor4: cabhut + Location: 116,56 + Owner: Neutral + Health: 100 + Facing: 96 + Actor5: cabhut + Location: 120,43 + Owner: Neutral + Health: 100 + Facing: 96 + Actor6: cabhut + Location: 179,-26 + Owner: Neutral + Health: 100 + Facing: 96 + Actor7: cabhut + Location: 172,-30 + Owner: Neutral + Health: 100 + Facing: 96 + Actor8: cabhut + Location: 145,-51 + Owner: Neutral + Health: 100 + Facing: 96 + Actor9: cabhut + Location: 149,-57 + Owner: Neutral + Health: 100 + Facing: 96 + Actor10: cabhut + Location: 95,28 + Owner: Neutral + Health: 100 + Facing: 96 + Actor11: cabhut + Location: 87,24 + Owner: Neutral + Health: 100 + Facing: 96 + Actor12: cabhut + Location: 174,2 + Owner: Neutral + Health: 100 + Facing: 96 + Actor13: cabhut + Location: 183,6 + Owner: Neutral + Health: 100 + Facing: 96 + Actor14: cabhut + Location: 239,2 + Owner: Neutral + Health: 100 + Facing: 96 + Actor15: cabhut + Location: 229,-2 + Owner: Neutral + Health: 100 + Facing: 96 Actor16: tibtre01 Location: 133,-102 Owner: Neutral @@ -473,9 +553,6 @@ Actors: Actor153: tree03 Location: 87,19 Owner: Neutral - Actor154: tree03 - Location: 96,32 - Owner: Neutral Actor155: tree04 Location: 96,33 Owner: Neutral @@ -752,544 +829,757 @@ Actors: Actor246: trock05 Location: 127,-102 Owner: Neutral - Actor247: trock01 + Actor247: lobrdg_b + Location: 96,-71 + Owner: Neutral + Actor248: lobrdg_r_nw + Location: 95,-71 + Owner: Neutral + Actor250: trock01 Location: 84,-60 Owner: Neutral - Actor248: trock03 + Actor251: trock03 Location: 64,-39 Owner: Neutral - Actor249: trock01 + Actor252: trock01 Location: 49,-25 Owner: Neutral - Actor250: trock05 + Actor253: trock05 Location: 114,-87 Owner: Neutral - Actor251: trock05 + Actor254: lobrdg_b + Location: 98,-71 + Owner: Neutral + Health: 25 + Actor255: lobrdg_b + Location: 97,-71 + Owner: Neutral + Actor260: trock05 Location: 33,-6 Owner: Neutral - Actor252: trock04 + Actor261: trock04 Location: 25,2 Owner: Neutral - Actor253: trock02 + Actor262: trock02 Location: 121,-92 Owner: Neutral - Actor254: trock03 - Location: 75,-47 + Actor263: lobrdg_b + Location: 100,-71 Owner: Neutral - Actor255: trock02 - Location: 70,-42 - Owner: Neutral - Actor256: trock01 - Location: 68,-39 - Owner: Neutral - Actor257: trock02 - Location: 41,-13 - Owner: Neutral - Actor258: trock04 - Location: 33,-4 - Owner: Neutral - Actor259: trock03 - Location: 120,-89 - Owner: Neutral - Actor260: trock04 - Location: 115,-85 - Owner: Neutral - Actor261: trock01 - Location: 110,-79 - Owner: Neutral - Actor262: trock03 - Location: 96,-65 - Owner: Neutral - Actor263: trock03 - Location: 33,-2 - Owner: Neutral - Actor264: trock03 - Location: 127,-94 - Owner: Neutral - Actor265: trock04 - Location: 107,-75 - Owner: Neutral - Actor266: trock02 - Location: 106,-74 - Owner: Neutral - Actor267: trock02 - Location: 93,-60 - Owner: Neutral - Actor268: trock05 - Location: 95,-58 + Health: 25 + Actor264: lobrdg_b_d + Location: 99,-71 Owner: Neutral Actor269: trock03 - Location: 115,-76 + Location: 75,-47 Owner: Neutral - Actor270: trock05 - Location: 23,15 + Actor270: trock02 + Location: 70,-42 Owner: Neutral - Actor271: trock05 - Location: 138,-97 + Actor271: trock01 + Location: 68,-39 Owner: Neutral - Actor272: trock03 - Location: 49,-9 + Actor272: trock02 + Location: 41,-13 Owner: Neutral - Actor273: trock03 - Location: 26,14 + Actor273: trock04 + Location: 33,-4 Owner: Neutral Actor274: trock03 - Location: 141,-99 + Location: 120,-89 Owner: Neutral Actor275: trock04 - Location: 127,-85 + Location: 115,-85 Owner: Neutral - Actor276: trock03 - Location: 121,-79 + Actor276: trock01 + Location: 110,-79 Owner: Neutral - Actor277: trock04 - Location: 56,-11 + Actor277: lobrdg_b + Location: 102,-71 Owner: Neutral - Actor278: trock05 - Location: 60,-14 + Actor278: lobrdg_b + Location: 101,-71 Owner: Neutral - Actor279: trock03 - Location: 58,-11 + Actor283: trock03 + Location: 96,-65 Owner: Neutral - Actor280: trock02 - Location: 50,-3 - Owner: Neutral - Actor281: trock04 - Location: 142,-94 - Owner: Neutral - Actor282: trock05 - Location: 130,-81 - Owner: Neutral - Actor283: trock02 - Location: 33,15 - Owner: Neutral - Actor284: trock02 - Location: 124,-72 + Actor284: trock03 + Location: 33,-2 Owner: Neutral Actor285: trock03 - Location: 119,-67 + Location: 127,-94 Owner: Neutral - Actor286: trock05 - Location: 131,-77 + Actor286: trock04 + Location: 107,-75 Owner: Neutral - Actor287: trock04 - Location: 32,23 + Actor287: trock02 + Location: 106,-74 Owner: Neutral - Actor288: trock03 - Location: 137,-78 + Actor288: lobrdg_r_se + Location: 104,-71 Owner: Neutral - Actor289: trock03 - Location: 60,1 - Owner: Neutral - Actor290: trock03 - Location: 154,-90 - Owner: Neutral - Actor291: trock02 - Location: 142,-77 - Owner: Neutral - Actor292: trock02 - Location: 43,21 - Owner: Neutral - Actor293: trock02 - Location: 155,-86 + Actor289: lobrdg_b + Location: 103,-71 Owner: Neutral Actor294: trock02 - Location: 126,-58 + Location: 93,-60 Owner: Neutral - Actor295: trock03 - Location: 48,21 + Actor298: trock05 + Location: 95,-58 Owner: Neutral - Actor296: trock04 - Location: 128,-55 - Owner: Neutral - Actor297: trock05 - Location: 127,-54 - Owner: Neutral - Actor298: trock02 - Location: 145,-68 - Owner: Neutral - Actor299: trock04 - Location: 72,4 + Actor299: trock03 + Location: 115,-76 Owner: Neutral Actor300: trock05 - Location: 72,5 + Location: 23,15 Owner: Neutral - Actor301: trock03 - Location: 48,29 + Actor301: trock05 + Location: 138,-97 Owner: Neutral - Actor302: trock04 - Location: 44,35 + Actor302: trock03 + Location: 49,-9 Owner: Neutral - Actor303: trock02 - Location: 154,-74 + Actor303: trock03 + Location: 26,14 Owner: Neutral - Actor304: trock02 - Location: 171,-84 + Actor304: trock03 + Location: 141,-99 Owner: Neutral - Actor305: trock01 - Location: 68,19 + Actor305: trock04 + Location: 127,-85 Owner: Neutral Actor306: trock03 - Location: 75,13 + Location: 121,-79 Owner: Neutral - Actor307: trock01 - Location: 168,-77 + Actor307: trock04 + Location: 56,-11 Owner: Neutral - Actor308: trock02 - Location: 70,21 + Actor308: trock05 + Location: 60,-14 Owner: Neutral - Actor309: trock02 - Location: 84,9 + Actor309: trock03 + Location: 58,-11 Owner: Neutral - Actor310: trock03 - Location: 56,38 + Actor310: trock02 + Location: 50,-3 Owner: Neutral Actor311: trock04 - Location: 68,28 + Location: 142,-94 Owner: Neutral Actor312: trock05 - Location: 55,41 + Location: 130,-81 Owner: Neutral - Actor313: trock05 - Location: 70,30 + Actor313: trock02 + Location: 33,15 Owner: Neutral - Actor314: trock03 - Location: 115,-12 + Actor314: trock02 + Location: 124,-72 Owner: Neutral - Actor315: trock02 - Location: 60,44 + Actor315: trock03 + Location: 119,-67 Owner: Neutral - Actor316: trock04 - Location: 166,-58 + Actor316: trock05 + Location: 131,-77 Owner: Neutral - Actor317: trock05 - Location: 120,-12 + Actor317: trock04 + Location: 32,23 Owner: Neutral Actor318: trock03 - Location: 63,46 + Location: 137,-78 Owner: Neutral - Actor319: trock02 - Location: 173,-62 + Actor319: trock03 + Location: 60,1 Owner: Neutral - Actor320: trock02 - Location: 153,-42 + Actor320: trock03 + Location: 154,-90 Owner: Neutral - Actor321: trock03 - Location: 170,-57 + Actor321: trock02 + Location: 142,-77 Owner: Neutral - Actor322: trock01 - Location: 156,-43 + Actor322: trock02 + Location: 43,21 Owner: Neutral - Actor323: trock01 - Location: 173,-59 + Actor323: trock02 + Location: 155,-86 Owner: Neutral Actor324: trock02 - Location: 74,46 + Location: 126,-58 Owner: Neutral Actor325: trock03 - Location: 184,-62 + Location: 48,21 Owner: Neutral Actor326: trock04 - Location: 75,48 + Location: 128,-55 Owner: Neutral - Actor327: veinhole - Location: 138,-13 + Actor327: trock05 + Location: 127,-54 Owner: Neutral - Actor328: trock03 - Location: 145,-16 + Actor328: trock02 + Location: 145,-68 Owner: Neutral - Actor329: trock01 - Location: 144,-16 + Actor329: trock04 + Location: 72,4 Owner: Neutral Actor330: trock05 - Location: 192,-62 + Location: 72,5 Owner: Neutral - Actor331: trock04 - Location: 191,-61 + Actor331: trock03 + Location: 48,29 Owner: Neutral - Actor332: trock01 - Location: 68,63 + Actor332: trock04 + Location: 44,35 Owner: Neutral Actor333: trock02 - Location: 73,60 + Location: 154,-74 Owner: Neutral Actor334: trock02 - Location: 69,63 + Location: 171,-84 Owner: Neutral - Actor335: trock03 - Location: 193,-48 + Actor335: trock01 + Location: 68,19 Owner: Neutral - Actor336: trock04 - Location: 88,61 + Actor336: lobrdg_r_ne + Location: 146,-57 Owner: Neutral Actor337: trock03 - Location: 85,63 + Location: 75,13 Owner: Neutral - Actor338: trock05 - Location: 204,-46 + Actor338: trock01 + Location: 168,-77 Owner: Neutral - Actor339: trock05 - Location: 81,77 + Actor342: lobrdg_a + Location: 146,-56 Owner: Neutral - Actor340: trock02 - Location: 206,-40 + Actor343: lobrdg_a + Location: 146,-55 Owner: Neutral - Actor341: trock03 - Location: 208,-40 + Health: 25 + Actor344: trock02 + Location: 70,21 Owner: Neutral - Actor342: trock03 - Location: 94,80 + Actor349: lobrdg_a_d + Location: 146,-54 Owner: Neutral - Actor343: trock01 - Location: 183,1 - Owner: Neutral - Actor344: trock05 - Location: 97,91 - Owner: Neutral - Actor345: trock02 - Location: 191,0 - Owner: Neutral - Actor346: trock03 - Location: 183,7 - Owner: Neutral - Actor347: trock03 - Location: 193,-1 - Owner: Neutral - Actor348: trock05 - Location: 138,55 - Owner: Neutral - Actor349: trock01 - Location: 107,85 - Owner: Neutral - Actor350: trock02 - Location: 225,-30 + Actor350: lobrdg_a + Location: 146,-53 Owner: Neutral + Health: 25 Actor351: trock02 - Location: 140,55 + Location: 84,9 Owner: Neutral - Actor352: trock03 - Location: 217,-21 + Actor356: lobrdg_a + Location: 146,-52 Owner: Neutral - Actor353: trock04 - Location: 212,-15 + Actor357: lobrdg_a + Location: 146,-51 Owner: Neutral - Actor354: trock04 - Location: 141,56 + Actor358: trock03 + Location: 56,38 Owner: Neutral - Actor355: trock03 - Location: 202,-3 + Actor363: lobrdg_r_sw + Location: 146,-50 Owner: Neutral - Actor356: trock02 - Location: 191,8 + Actor364: trock04 + Location: 68,28 Owner: Neutral - Actor357: trock03 - Location: 143,55 + Actor365: trock05 + Location: 55,41 Owner: Neutral - Actor358: trock01 - Location: 126,72 + Actor367: trock05 + Location: 70,30 Owner: Neutral - Actor359: trock05 - Location: 213,-12 + Actor368: trock03 + Location: 115,-12 Owner: Neutral - Actor360: trock04 - Location: 106,95 + Actor369: trock02 + Location: 60,44 Owner: Neutral - Actor361: trock05 - Location: 205,-3 + Actor370: trock04 + Location: 166,-58 Owner: Neutral - Actor362: trock01 - Location: 198,6 + Actor371: trock05 + Location: 120,-12 Owner: Neutral - Actor363: trock03 - Location: 150,54 + Actor372: trock03 + Location: 63,46 Owner: Neutral - Actor364: trock02 - Location: 111,93 + Actor373: trock02 + Location: 173,-62 Owner: Neutral - Actor365: trock03 - Location: 110,96 - Owner: Neutral - Actor366: trock01 - Location: 235,-26 - Owner: Neutral - Actor367: trock03 - Location: 201,8 - Owner: Neutral - Actor368: trock02 - Location: 200,8 - Owner: Neutral - Actor369: trock04 - Location: 214,-4 - Owner: Neutral - Actor370: trock02 - Location: 216,-4 - Owner: Neutral - Actor371: trock03 - Location: 212,2 - Owner: Neutral - Actor372: trock01 - Location: 188,28 - Owner: Neutral - Actor373: trock04 - Location: 165,52 - Owner: Neutral - Actor374: trock03 - Location: 156,60 + Actor374: trock02 + Location: 153,-42 Owner: Neutral Actor375: trock03 - Location: 140,76 + Location: 170,-57 Owner: Neutral - Actor376: trock05 - Location: 124,93 + Actor376: trock01 + Location: 156,-43 Owner: Neutral - Actor377: trock04 - Location: 236,-18 + Actor377: lobrdg_b + Location: 88,25 Owner: Neutral - Actor378: trock05 - Location: 237,-17 + Actor378: lobrdg_r_nw + Location: 87,25 Owner: Neutral - Actor379: trock01 - Location: 226,-6 + Actor380: trock01 + Location: 173,-59 Owner: Neutral - Actor380: trock02 - Location: 216,5 + Actor381: lobrdg_b + Location: 90,25 Owner: Neutral - Actor381: trock03 - Location: 211,9 + Health: 25 + Actor382: lobrdg_b + Location: 89,25 Owner: Neutral - Actor382: trock04 - Location: 204,17 + Actor387: lobrdg_b + Location: 92,25 Owner: Neutral - Actor383: trock04 - Location: 143,77 + Health: 25 + Actor388: lobrdg_b_d + Location: 91,25 Owner: Neutral - Actor384: trock05 - Location: 143,78 + Actor393: lobrdg_b + Location: 94,25 Owner: Neutral - Actor385: trock02 - Location: 130,91 + Actor394: lobrdg_b + Location: 93,25 Owner: Neutral - Actor386: trock01 - Location: 241,-18 + Actor399: lobrdg_r_se + Location: 95,25 Owner: Neutral - Actor387: trock04 - Location: 215,8 + Actor404: trock02 + Location: 74,46 Owner: Neutral - Actor388: trock03 - Location: 206,17 + Actor405: trock03 + Location: 184,-62 Owner: Neutral - Actor389: trock05 - Location: 218,6 + Actor407: trock04 + Location: 75,48 Owner: Neutral - Actor390: trock02 - Location: 179,46 + Actor408: veinhole + Location: 138,-13 Owner: Neutral - Actor391: trock02 - Location: 176,49 + Actor409: trock03 + Location: 145,-16 Owner: Neutral - Actor392: trock03 - Location: 116,109 + Actor410: trock01 + Location: 144,-16 Owner: Neutral - Actor393: trock03 - Location: 236,-10 + Actor411: trock05 + Location: 192,-62 Owner: Neutral - Actor394: trock03 - Location: 202,25 + Actor412: trock04 + Location: 191,-61 Owner: Neutral - Actor395: trock01 - Location: 182,45 + Actor413: trock01 + Location: 68,63 Owner: Neutral - Actor396: trock02 - Location: 243,-15 - Owner: Neutral - Actor397: trock04 - Location: 179,49 - Owner: Neutral - Actor398: trock05 - Location: 176,52 - Owner: Neutral - Actor399: trock02 - Location: 160,69 - Owner: Neutral - Actor400: trock03 - Location: 228,3 - Owner: Neutral - Actor401: trock03 - Location: 172,58 - Owner: Neutral - Actor402: trock04 - Location: 138,92 - Owner: Neutral - Actor403: trock05 - Location: 138,93 - Owner: Neutral - Actor404: trock03 - Location: 247,-14 - Owner: Neutral - Actor405: trock02 - Location: 206,27 - Owner: Neutral - Actor406: trock04 - Location: 120,112 - Owner: Neutral - Actor407: trock05 - Location: 120,113 - Owner: Neutral - Actor408: trock02 - Location: 216,18 - Owner: Neutral - Actor409: trock02 - Location: 195,40 - Owner: Neutral - Actor410: trock03 - Location: 158,77 - Owner: Neutral - Actor411: trock03 - Location: 239,-2 - Owner: Neutral - Actor412: trock03 - Location: 201,36 - Owner: Neutral - Actor413: trock04 - Location: 194,43 - Owner: Neutral - Actor414: trock05 - Location: 222,16 + Actor414: trock02 + Location: 73,60 Owner: Neutral Actor415: trock02 + Location: 69,63 + Owner: Neutral + Actor416: lobrdg_r_nw + Location: 172,-29 + Owner: Neutral + Actor417: trock03 + Location: 193,-48 + Owner: Neutral + Actor418: lobrdg_b + Location: 174,-29 + Owner: Neutral + Health: 25 + Actor419: lobrdg_b + Location: 173,-29 + Owner: Neutral + Actor423: lobrdg_b + Location: 176,-29 + Owner: Neutral + Health: 25 + Actor424: lobrdg_b_d + Location: 175,-29 + Owner: Neutral + Actor429: lobrdg_b + Location: 178,-29 + Owner: Neutral + Actor430: lobrdg_b + Location: 177,-29 + Owner: Neutral + Actor435: lobrdg_r_ne + Location: 157,-8 + Owner: Neutral + Actor436: trock04 + Location: 88,61 + Owner: Neutral + Actor437: trock03 + Location: 85,63 + Owner: Neutral + Actor444: lobrdg_a_d + Location: 157,-7 + Owner: Neutral + Actor445: lobrdg_a_d + Location: 157,-6 + Owner: Neutral + Actor451: lobrdg_a_d + Location: 157,-5 + Owner: Neutral + Actor452: lobrdg_a_d + Location: 157,-4 + Owner: Neutral + Actor457: lobrdg_a_d + Location: 157,-3 + Owner: Neutral + Actor458: lobrdg_a_d + Location: 157,-2 + Owner: Neutral + Actor463: lobrdg_a_d + Location: 157,-1 + Owner: Neutral + Actor464: lobrdg_r_sw + Location: 157,0 + Owner: Neutral + Actor465: trock05 + Location: 204,-46 + Owner: Neutral + Actor467: trock05 + Location: 81,77 + Owner: Neutral + Actor468: lobrdg_r_ne + Location: 117,44 + Owner: Neutral + Actor472: lobrdg_a + Location: 117,45 + Owner: Neutral + Actor473: lobrdg_a + Location: 117,46 + Owner: Neutral + Actor478: lobrdg_a + Location: 117,47 + Owner: Neutral + Actor479: lobrdg_a + Location: 117,48 + Owner: Neutral + Health: 25 + Actor480: trock02 + Location: 206,-40 + Owner: Neutral + Actor485: lobrdg_a_d + Location: 117,49 + Owner: Neutral + Actor486: lobrdg_a_d + Location: 117,50 + Owner: Neutral + Actor487: trock03 + Location: 208,-40 + Owner: Neutral + Actor491: lobrdg_r_se + Owner: Neutral + Location: 179,-29 + Actor492: lobrdg_a_d + Location: 117,51 + Owner: Neutral + Actor493: lobrdg_a + Location: 117,52 + Owner: Neutral + Health: 25 + Actor498: lobrdg_a + Location: 117,53 + Owner: Neutral + Actor499: lobrdg_a + Location: 117,54 + Owner: Neutral + Actor504: lobrdg_r_sw + Location: 117,55 + Owner: Neutral + Actor506: trock03 + Location: 94,80 + Owner: Neutral + Actor507: trock01 + Location: 183,1 + Owner: Neutral + Actor508: trock05 + Location: 97,91 + Owner: Neutral + Actor509: trock02 + Location: 191,0 + Owner: Neutral + Actor510: trock03 + Location: 183,7 + Owner: Neutral + Actor511: trock03 + Location: 193,-1 + Owner: Neutral + Actor512: trock05 + Location: 138,55 + Owner: Neutral + Actor513: trock01 + Location: 107,85 + Owner: Neutral + Actor514: trock02 + Location: 225,-30 + Owner: Neutral + Actor515: trock02 + Location: 140,55 + Owner: Neutral + Actor516: trock03 + Location: 217,-21 + Owner: Neutral + Actor517: trock04 + Location: 212,-15 + Owner: Neutral + Actor518: trock04 + Location: 141,56 + Owner: Neutral + Actor519: trock03 + Location: 202,-3 + Owner: Neutral + Actor520: trock02 + Location: 191,8 + Owner: Neutral + Actor521: trock03 + Location: 143,55 + Owner: Neutral + Actor522: trock01 + Location: 126,72 + Owner: Neutral + Actor523: trock05 + Location: 213,-12 + Owner: Neutral + Actor524: trock04 + Location: 106,95 + Owner: Neutral + Actor525: trock05 + Location: 205,-3 + Owner: Neutral + Actor526: trock01 + Location: 198,6 + Owner: Neutral + Actor527: trock03 + Location: 150,54 + Owner: Neutral + Actor528: trock02 + Location: 111,93 + Owner: Neutral + Actor529: trock03 + Location: 110,96 + Owner: Neutral + Actor530: trock01 + Location: 235,-26 + Owner: Neutral + Actor531: trock03 + Location: 201,8 + Owner: Neutral + Actor532: trock02 + Location: 200,8 + Owner: Neutral + Actor533: trock04 + Location: 214,-4 + Owner: Neutral + Actor534: trock02 + Location: 216,-4 + Owner: Neutral + Actor535: trock03 + Location: 212,2 + Owner: Neutral + Actor536: trock01 + Location: 188,28 + Owner: Neutral + Actor537: trock04 + Location: 165,52 + Owner: Neutral + Actor538: trock03 + Location: 156,60 + Owner: Neutral + Actor539: trock03 + Location: 140,76 + Owner: Neutral + Actor540: trock05 + Location: 124,93 + Owner: Neutral + Actor541: trock04 + Location: 236,-18 + Owner: Neutral + Actor542: trock05 + Location: 237,-17 + Owner: Neutral + Actor543: trock01 + Location: 226,-6 + Owner: Neutral + Actor544: trock02 + Location: 216,5 + Owner: Neutral + Actor545: trock03 + Location: 211,9 + Owner: Neutral + Actor546: trock04 + Location: 204,17 + Owner: Neutral + Actor547: trock04 + Location: 143,77 + Owner: Neutral + Actor548: trock05 + Location: 143,78 + Owner: Neutral + Actor549: trock02 + Location: 130,91 + Owner: Neutral + Actor550: trock01 + Location: 241,-18 + Owner: Neutral + Actor551: trock04 + Location: 215,8 + Owner: Neutral + Actor552: trock03 + Location: 206,17 + Owner: Neutral + Actor553: trock05 + Location: 218,6 + Owner: Neutral + Actor554: trock02 + Location: 179,46 + Owner: Neutral + Actor555: trock02 + Location: 176,49 + Owner: Neutral + Actor556: lobrdg_b + Location: 160,65 + Owner: Neutral + Actor557: lobrdg_r_nw + Location: 159,65 + Owner: Neutral + Actor559: trock03 + Location: 116,109 + Owner: Neutral + Actor560: trock03 + Location: 236,-10 + Owner: Neutral + Actor561: trock03 + Location: 202,25 + Owner: Neutral + Actor562: trock01 + Location: 182,45 + Owner: Neutral + Actor563: lobrdg_b_d + Location: 162,65 + Owner: Neutral + Actor564: lobrdg_b + Location: 161,65 + Owner: Neutral + Health: 25 + Actor569: trock02 + Location: 243,-15 + Owner: Neutral + Actor570: trock04 + Location: 179,49 + Owner: Neutral + Actor571: trock05 + Location: 176,52 + Owner: Neutral + Actor572: lobrdg_b_d + Location: 164,65 + Owner: Neutral + Actor573: lobrdg_b_d + Location: 163,65 + Owner: Neutral + Actor578: trock02 + Location: 160,69 + Owner: Neutral + Actor579: trock03 + Location: 228,3 + Owner: Neutral + Actor580: trock03 + Location: 172,58 + Owner: Neutral + Actor581: lobrdg_b + Location: 166,65 + Owner: Neutral + Actor582: lobrdg_b + Location: 165,65 + Owner: Neutral + Health: 25 + Actor587: trock04 + Location: 138,92 + Owner: Neutral + Actor588: trock05 + Location: 138,93 + Owner: Neutral + Actor589: trock03 + Location: 247,-14 + Owner: Neutral + Actor590: trock02 + Location: 206,27 + Owner: Neutral + Actor591: lobrdg_b + Location: 168,65 + Owner: Neutral + Actor592: lobrdg_b + Location: 167,65 + Owner: Neutral + Actor597: trock04 + Location: 120,112 + Owner: Neutral + Actor598: trock05 + Location: 120,113 + Owner: Neutral + Actor599: trock02 + Location: 216,18 + Owner: Neutral + Actor600: trock02 + Location: 195,40 + Owner: Neutral + Actor601: lobrdg_r_se + Location: 169,65 + Owner: Neutral + Actor606: trock03 + Location: 158,77 + Owner: Neutral + Actor607: trock03 + Location: 239,-2 + Owner: Neutral + Actor608: trock03 + Location: 201,36 + Owner: Neutral + Actor609: trock04 + Location: 194,43 + Owner: Neutral + Actor611: trock05 + Location: 222,16 + Owner: Neutral + Actor612: trock02 Location: 130,110 Owner: Neutral - Actor416: trock04 + Actor613: trock04 Location: 236,8 Owner: Neutral - Actor417: trock05 + Actor614: trock05 Location: 196,51 Owner: Neutral - Actor418: trock03 + Actor615: trock03 Location: 193,53 Owner: Neutral - Actor419: trock03 + Actor616: trock03 Location: 147,100 Owner: Neutral - Actor420: trock02 + Actor617: trock02 Location: 246,3 Owner: Neutral - Actor421: trock03 + Actor618: trock03 Location: 138,112 Owner: Neutral - Actor422: trock02 + Actor619: trock02 Location: 147,106 Owner: Neutral - Actor423: tuntop04 + Actor620: tuntop04 Owner: Neutral Location: 145,5 - Actor424: tuntop04 + Actor621: tuntop04 Owner: Neutral Location: 116,9 - Actor425: tuntop02 + Actor622: tuntop02 Owner: Neutral Location: 144,-19 - Actor426: tuntop02 + Actor623: tuntop02 Owner: Neutral Location: 115,-15 diff --git a/mods/ts/maps/rivrrad4/map.bin b/mods/ts/maps/rivrrad4/map.bin index edf5a558ed..b2e5dd2f34 100644 Binary files a/mods/ts/maps/rivrrad4/map.bin and b/mods/ts/maps/rivrrad4/map.bin differ diff --git a/mods/ts/maps/rivrrad4/map.png b/mods/ts/maps/rivrrad4/map.png index c9626645c1..fa9a9dc560 100644 Binary files a/mods/ts/maps/rivrrad4/map.png and b/mods/ts/maps/rivrrad4/map.png differ diff --git a/mods/ts/maps/rivrrad4/map.yaml b/mods/ts/maps/rivrrad4/map.yaml index 0d0c09f598..1b05836313 100644 --- a/mods/ts/maps/rivrrad4/map.yaml +++ b/mods/ts/maps/rivrrad4/map.yaml @@ -10,11 +10,11 @@ Tileset: TEMPERATE MapSize: 120,310 -Bounds: 8,8,105,288 +Bounds: 8,8,105,296 Visibility: Lobby -Categories: Conquest, Playable, Original TS Map +Categories: Conquest, Playable, Original FS Map Players: PlayerReference@Neutral: @@ -69,6 +69,46 @@ Players: Enemies: Creeps Actors: + Actor0: cabhut + Location: 145,-51 + Owner: Neutral + Health: 100 + Facing: 96 + Actor1: cabhut + Location: 149,-39 + Owner: Neutral + Health: 100 + Facing: 96 + Actor2: cabhut + Location: 110,-64 + Owner: Neutral + Health: 100 + Facing: 96 + Actor3: cabhut + Location: 121,-60 + Owner: Neutral + Health: 100 + Facing: 96 + Actor4: cabhut + Location: 80,-24 + Owner: Neutral + Health: 100 + Facing: 96 + Actor5: cabhut + Location: 84,-10 + Owner: Neutral + Health: 100 + Facing: 96 + Actor6: cabhut + Location: 90,3 + Owner: Neutral + Health: 100 + Facing: 96 + Actor7: cabhut + Location: 107,7 + Owner: Neutral + Health: 100 + Facing: 96 Actor8: tibtre01 Location: 96,23 Owner: Neutral @@ -636,235 +676,397 @@ Actors: Actor196: trock01 Location: 107,-65 Owner: Neutral - Actor197: srock03 + Actor197: lobrdg_r_nw + Location: 110,-63 + Owner: Neutral + Actor198: srock03 Location: 35,11 Owner: Neutral - Actor198: srock05 + Actor199: srock05 Location: 125,-76 Owner: Neutral - Actor199: srock04 + Actor200: lobrdg_b + Location: 112,-63 + Owner: Neutral + Actor201: lobrdg_b + Location: 111,-63 + Owner: Neutral + Actor205: lobrdg_b + Location: 114,-63 + Owner: Neutral + Actor206: lobrdg_b + Location: 113,-63 + Owner: Neutral + Actor211: lobrdg_b + Location: 116,-63 + Owner: Neutral + Actor212: lobrdg_b + Location: 115,-63 + Owner: Neutral + Actor217: lobrdg_b + Location: 118,-63 + Owner: Neutral + Actor218: lobrdg_b + Location: 117,-63 + Owner: Neutral + Actor223: srock04 Location: 124,-67 Owner: Neutral - Actor200: trock02 + Actor224: lobrdg_r_se + Location: 120,-63 + Owner: Neutral + Actor225: lobrdg_b + Location: 119,-63 + Owner: Neutral + Actor234: lobrdg_r_ne + Location: 81,-23 + Owner: Neutral + Actor235: lobrdg_a + Location: 81,-22 + Owner: Neutral + Actor236: trock02 Location: 62,-4 Owner: Neutral - Actor201: srock04 + Actor241: lobrdg_a + Location: 81,-21 + Owner: Neutral + Actor242: lobrdg_a + Location: 81,-20 + Owner: Neutral + Actor243: srock04 Location: 86,-23 Owner: Neutral - Actor202: srock04 - Location: 54,12 + Actor248: lobrdg_a + Location: 81,-19 Owner: Neutral - Actor203: srock02 - Location: 48,19 + Actor249: lobrdg_a + Location: 81,-18 Owner: Neutral - Actor204: srock03 - Location: 125,-47 + Actor254: lobrdg_a + Location: 81,-17 Owner: Neutral - Actor205: trock01 - Location: 78,0 + Actor255: lobrdg_a + Location: 81,-16 Owner: Neutral - Actor206: srock01 - Location: 85,-4 + Actor260: lobrdg_a + Location: 81,-15 Owner: Neutral - Actor207: srock05 - Location: 70,11 - Owner: Neutral - Actor208: srock01 - Location: 57,29 - Owner: Neutral - Actor209: srock01 - Location: 119,-31 - Owner: Neutral - Actor210: trock04 - Location: 155,-61 - Owner: Neutral - Actor211: trock03 - Location: 124,-30 - Owner: Neutral - Actor212: srock02 - Location: 115,-20 - Owner: Neutral - Actor213: srock02 - Location: 76,35 - Owner: Neutral - Actor214: srock04 - Location: 152,-37 - Owner: Neutral - Actor215: srock03 - Location: 131,-14 - Owner: Neutral - Actor216: srock03 - Location: 93,24 - Owner: Neutral - Actor217: srock04 - Location: 106,17 - Owner: Neutral - Actor218: trock04 - Location: 129,-5 - Owner: Neutral - Actor219: srock05 - Location: 115,10 - Owner: Neutral - Actor220: trock03 - Location: 158,-29 - Owner: Neutral - Actor221: trock01 - Location: 154,-17 - Owner: Neutral - Actor222: srock01 - Location: 131,10 - Owner: Neutral - Actor223: trock01 - Location: 109,34 - Owner: Neutral - Actor224: trock02 - Location: 181,-30 - Owner: Neutral - Actor225: trock01 - Location: 177,-21 - Owner: Neutral - Actor226: srock04 - Location: 166,-9 - Owner: Neutral - Actor227: trock02 - Location: 117,41 - Owner: Neutral - Actor228: srock02 - Location: 142,25 - Owner: Neutral - Actor229: trock03 - Location: 121,53 - Owner: Neutral - Actor230: srock05 - Location: 187,-11 - Owner: Neutral - Actor231: srock03 - Location: 170,6 - Owner: Neutral - Actor232: srock01 - Location: 103,79 - Owner: Neutral - Actor233: srock02 - Location: 165,19 - Owner: Neutral - Actor234: trock05 - Location: 152,32 - Owner: Neutral - Actor235: srock02 - Location: 125,62 - Owner: Neutral - Actor236: trock04 - Location: 135,53 - Owner: Neutral - Actor237: trock02 - Location: 189,10 - Owner: Neutral - Actor238: srock05 - Location: 182,19 - Owner: Neutral - Actor239: srock01 - Location: 160,43 - Owner: Neutral - Actor240: srock03 - Location: 172,34 - Owner: Neutral - Actor241: srock04 - Location: 146,62 - Owner: Neutral - Actor242: trock02 - Location: 140,73 - Owner: Neutral - Actor243: srock01 - Location: 209,5 - Owner: Neutral - Actor244: trock04 - Location: 179,36 - Owner: Neutral - Actor245: trock02 - Location: 185,32 - Owner: Neutral - Actor246: trock05 - Location: 166,51 - Owner: Neutral - Actor247: trock01 - Location: 198,27 - Owner: Neutral - Actor248: trock03 - Location: 184,40 - Owner: Neutral - Actor249: srock03 - Location: 163,61 - Owner: Neutral - Actor250: srock02 - Location: 171,56 - Owner: Neutral - Actor251: trock04 - Location: 141,86 - Owner: Neutral - Actor252: srock05 - Location: 155,77 - Owner: Neutral - Actor253: srock04 - Location: 190,46 - Owner: Neutral - Actor254: trock02 - Location: 167,69 - Owner: Neutral - Actor255: trock05 - Location: 151,86 - Owner: Neutral - Actor256: trock01 - Location: 138,98 - Owner: Neutral - Actor257: trock03 - Location: 155,83 - Owner: Neutral - Actor258: trock04 - Location: 220,23 - Owner: Neutral - Actor259: trock01 - Location: 206,37 - Owner: Neutral - Actor260: trock04 - Location: 183,62 - Owner: Neutral - Actor261: trock01 - Location: 162,83 + Actor261: lobrdg_a + Location: 81,-14 Owner: Neutral Actor262: srock04 + Location: 54,12 + Owner: Neutral + Actor263: srock02 + Location: 48,19 + Owner: Neutral + Actor268: lobrdg_a + Location: 81,-13 + Owner: Neutral + Actor269: lobrdg_a + Location: 81,-12 + Owner: Neutral + Actor274: lobrdg_a + Location: 81,-11 + Owner: Neutral + Actor275: lobrdg_r_sw + Location: 81,-10 + Owner: Neutral + Actor279: srock03 + Location: 125,-47 + Owner: Neutral + Actor280: trock01 + Location: 78,0 + Owner: Neutral + Actor281: srock01 + Location: 85,-4 + Owner: Neutral + Actor282: srock05 + Location: 70,11 + Owner: Neutral + Actor283: srock01 + Location: 57,29 + Owner: Neutral + Actor284: srock01 + Location: 119,-31 + Owner: Neutral + Actor285: trock04 + Location: 155,-61 + Owner: Neutral + Actor286: lobrdg_r_ne + Location: 146,-51 + Owner: Neutral + Actor287: trock03 + Location: 124,-30 + Owner: Neutral + Actor288: srock02 + Location: 115,-20 + Owner: Neutral + Actor289: lobrdg_r_nw + Location: 91,4 + Owner: Neutral + Actor293: lobrdg_a + Location: 146,-50 + Owner: Neutral + Actor294: lobrdg_a + Location: 146,-49 + Owner: Neutral + Actor295: lobrdg_b + Location: 93,4 + Owner: Neutral + Actor296: lobrdg_b + Location: 92,4 + Owner: Neutral + Actor304: lobrdg_a + Location: 146,-48 + Owner: Neutral + Actor305: lobrdg_a + Location: 146,-47 + Owner: Neutral + Actor306: lobrdg_b + Location: 95,4 + Owner: Neutral + Actor307: lobrdg_b + Location: 94,4 + Owner: Neutral + Actor316: lobrdg_a + Location: 146,-46 + Owner: Neutral + Actor317: lobrdg_a + Location: 146,-45 + Owner: Neutral + Actor318: lobrdg_b + Location: 97,4 + Owner: Neutral + Actor319: lobrdg_b + Location: 96,4 + Owner: Neutral + Actor328: lobrdg_a + Location: 146,-44 + Owner: Neutral + Actor329: lobrdg_a + Location: 146,-43 + Owner: Neutral + Actor330: lobrdg_b + Location: 99,4 + Owner: Neutral + Actor331: lobrdg_b + Location: 98,4 + Owner: Neutral + Actor340: lobrdg_a + Location: 146,-42 + Owner: Neutral + Actor341: lobrdg_a + Location: 146,-41 + Owner: Neutral + Actor342: lobrdg_b + Location: 101,4 + Owner: Neutral + Actor343: lobrdg_b + Location: 100,4 + Owner: Neutral + Actor352: lobrdg_a + Location: 146,-40 + Owner: Neutral + Actor353: lobrdg_r_sw + Location: 146,-39 + Owner: Neutral + Actor354: lobrdg_b + Location: 103,4 + Owner: Neutral + Actor355: lobrdg_b + Location: 102,4 + Owner: Neutral + Actor363: lobrdg_b + Location: 105,4 + Owner: Neutral + Actor364: lobrdg_b + Location: 104,4 + Owner: Neutral + Actor369: lobrdg_r_se + Location: 106,4 + Owner: Neutral + Actor374: srock02 + Location: 76,35 + Owner: Neutral + Actor376: srock04 + Location: 152,-37 + Owner: Neutral + Actor377: srock03 + Location: 131,-14 + Owner: Neutral + Actor378: srock03 + Location: 93,24 + Owner: Neutral + Actor379: srock04 + Location: 106,17 + Owner: Neutral + Actor380: trock04 + Location: 129,-5 + Owner: Neutral + Actor381: srock05 + Location: 115,10 + Owner: Neutral + Actor382: trock03 + Location: 158,-29 + Owner: Neutral + Actor383: trock01 + Location: 154,-17 + Owner: Neutral + Actor384: srock01 + Location: 131,10 + Owner: Neutral + Actor385: trock01 + Location: 109,34 + Owner: Neutral + Actor386: trock02 + Location: 181,-30 + Owner: Neutral + Actor387: trock01 + Location: 177,-21 + Owner: Neutral + Actor388: srock04 + Location: 166,-9 + Owner: Neutral + Actor389: trock02 + Location: 117,41 + Owner: Neutral + Actor390: srock02 + Location: 142,25 + Owner: Neutral + Actor391: trock03 + Location: 121,53 + Owner: Neutral + Actor392: srock05 + Location: 187,-11 + Owner: Neutral + Actor393: srock03 + Location: 170,6 + Owner: Neutral + Actor394: srock01 + Location: 103,79 + Owner: Neutral + Actor395: srock02 + Location: 165,19 + Owner: Neutral + Actor396: trock05 + Location: 152,32 + Owner: Neutral + Actor397: srock02 + Location: 125,62 + Owner: Neutral + Actor398: trock04 + Location: 135,53 + Owner: Neutral + Actor399: trock02 + Location: 189,10 + Owner: Neutral + Actor400: srock05 + Location: 182,19 + Owner: Neutral + Actor401: srock01 + Location: 160,43 + Owner: Neutral + Actor402: srock03 + Location: 172,34 + Owner: Neutral + Actor403: srock04 + Location: 146,62 + Owner: Neutral + Actor404: trock02 + Location: 140,73 + Owner: Neutral + Actor405: srock01 + Location: 209,5 + Owner: Neutral + Actor406: trock04 + Location: 179,36 + Owner: Neutral + Actor407: trock02 + Location: 185,32 + Owner: Neutral + Actor408: trock05 + Location: 166,51 + Owner: Neutral + Actor409: trock01 + Location: 198,27 + Owner: Neutral + Actor410: trock03 + Location: 184,40 + Owner: Neutral + Actor411: srock03 + Location: 163,61 + Owner: Neutral + Actor412: srock02 + Location: 171,56 + Owner: Neutral + Actor413: trock04 + Location: 141,86 + Owner: Neutral + Actor414: srock05 + Location: 155,77 + Owner: Neutral + Actor415: srock04 + Location: 190,46 + Owner: Neutral + Actor416: trock02 + Location: 167,69 + Owner: Neutral + Actor417: trock05 + Location: 151,86 + Owner: Neutral + Actor418: trock01 + Location: 138,98 + Owner: Neutral + Actor419: trock03 + Location: 155,83 + Owner: Neutral + Actor420: trock04 + Location: 220,23 + Owner: Neutral + Actor421: trock01 + Location: 206,37 + Owner: Neutral + Actor422: trock04 + Location: 183,62 + Owner: Neutral + Actor423: trock01 + Location: 162,83 + Owner: Neutral + Actor424: srock04 Location: 193,55 Owner: Neutral - Actor263: srock03 + Actor425: srock03 Location: 136,112 Owner: Neutral - Actor264: srock05 + Actor426: srock05 Location: 201,50 Owner: Neutral - Actor265: srock02 + Actor427: srock02 Location: 222,31 Owner: Neutral - Actor266: trock03 + Actor428: trock03 Location: 217,35 Owner: Neutral - Actor267: srock05 + Actor429: srock05 Location: 169,88 Owner: Neutral - Actor268: trock03 + Actor430: trock03 Location: 178,84 Owner: Neutral - Actor269: srock04 + Actor431: srock04 Location: 156,108 Owner: Neutral - Actor270: srock03 + Actor432: srock03 Location: 201,69 Owner: Neutral - Actor271: trock05 + Actor433: trock05 Location: 205,77 Owner: Neutral - Actor272: trock02 + Actor434: trock02 Location: 236,54 Owner: Neutral - Actor273: trock05 + Actor435: trock05 Location: 254,39 Owner: Neutral diff --git a/mods/ts/maps/tread_l/map.png b/mods/ts/maps/tread_l/map.png index 8cf5b8d84a..e0f039b13f 100644 Binary files a/mods/ts/maps/tread_l/map.png and b/mods/ts/maps/tread_l/map.png differ diff --git a/mods/ts/maps/tread_l/map.yaml b/mods/ts/maps/tread_l/map.yaml index e3aa0be883..f4339d5323 100644 --- a/mods/ts/maps/tread_l/map.yaml +++ b/mods/ts/maps/tread_l/map.yaml @@ -1206,10 +1206,40 @@ Actors: Actor340: waypoint Location: 138,-28 Owner: Neutral - Actor341: crat03 + Actor341: lobrdg_r_ne + Location: 160,-137 + Owner: Neutral + Actor345: lobrdg_a + Location: 160,-136 + Owner: Neutral + Actor346: lobrdg_a + Location: 160,-135 + Owner: Neutral + Actor351: lobrdg_a + Location: 160,-134 + Owner: Neutral + Actor352: lobrdg_a + Location: 160,-133 + Owner: Neutral + Actor357: lobrdg_a + Location: 160,-132 + Owner: Neutral + Actor358: lobrdg_a + Location: 160,-131 + Owner: Neutral + Actor363: lobrdg_a + Location: 160,-130 + Owner: Neutral + Actor364: lobrdg_a + Location: 160,-129 + Owner: Neutral + Actor369: lobrdg_r_sw + Location: 160,-128 + Owner: Neutral + Actor371: crat03 Location: 158,-61 Owner: Neutral - Actor342: crat01 + Actor372: crat01 Location: 123,20 Owner: Neutral @@ -1217,3 +1247,11 @@ Rules: World: GlobalLightingPaletteEffect: Ambient: 0.75 + LOBRDG_A: + Targetable: + TargetTypes: Ground, Building + RequiresForceFire: true + Health: + HP: 1000 + Armor: + Type: Concrete diff --git a/mods/ts/mod.yaml b/mods/ts/mod.yaml index 5adcfcc1be..51ebf32705 100644 --- a/mods/ts/mod.yaml +++ b/mods/ts/mod.yaml @@ -81,6 +81,7 @@ Rules: ts|rules/shared-support.yaml ts|rules/shared-vehicles.yaml ts|rules/trees.yaml + ts|rules/bridges.yaml Weapons: ts|weapons/bombsandgrenades.yaml @@ -101,6 +102,7 @@ Sequences: ts|sequences/structures.yaml ts|sequences/vehicles.yaml ts|sequences/trees.yaml + ts|sequences/bridges.yaml VoxelSequences: ts|sequences/voxels.yaml diff --git a/mods/ts/rules/bridges.yaml b/mods/ts/rules/bridges.yaml new file mode 100644 index 0000000000..13d5bf8d2e --- /dev/null +++ b/mods/ts/rules/bridges.yaml @@ -0,0 +1,47 @@ +LOBRDG_A: + Inherits: ^LowBridge_A + +LOBRDG_A_D: + Inherits: ^LowBridge_A + -RenderSprites: + RenderSpritesEditorOnly: + Palette: terrainalpha + EditorOnlyTooltip: + Name: Dead Bridge + -LowBridge: + +LOBRDG_B: + Inherits: ^LowBridge_B + +LOBRDG_B_D: + Inherits: ^LowBridge_B + -RenderSprites: + RenderSpritesEditorOnly: + Palette: terrainalpha + EditorOnlyTooltip: + Name: Dead Bridge + -LowBridge: + +LOBRDG_R_SE: + Inherits: ^LowBridge_B + EditorOnlyTooltip: + Name: Bridge Ramp + Description: South East + +LOBRDG_R_NW: + Inherits: ^LowBridge_B + EditorOnlyTooltip: + Name: Bridge Ramp + Description: North West + +LOBRDG_R_NE: + Inherits: ^LowBridge_A + EditorOnlyTooltip: + Name: Bridge Ramp + Description: North East + +LOBRDG_R_SW: + Inherits: ^LowBridge_A + EditorOnlyTooltip: + Name: Bridge Ramp + Description: South West diff --git a/mods/ts/rules/defaults.yaml b/mods/ts/rules/defaults.yaml index 9cc12dbfdb..357232fa3a 100644 --- a/mods/ts/rules/defaults.yaml +++ b/mods/ts/rules/defaults.yaml @@ -883,6 +883,36 @@ LineBuildNode: Connections: 0,-1, 0,1 +^LowBridge: + AlwaysVisible: + RenderSprites: + Palette: terraindecoration + WithSpriteBody: + AutoSelectionSize: + AppearsOnRadar: + RadarColorFromTerrain: + Terrain: Road + BodyOrientation: + UseClassicPerspectiveFudge: false + QuantizedFacings: 1 + Tooltip: + Name: Bridge + Health: + +^LowBridge_A: + Inherits: ^LowBridge + Building: + Footprint: ___ + Dimensions: 3, 1 + LowBridge: + +^LowBridge_B: + Inherits: ^LowBridge + Building: + Footprint: _ _ _ + Dimensions: 1, 3 + LowBridge: + ^HealsOnTiberium: DamagedByTerrain: Damage: -2 diff --git a/mods/ts/rules/palettes.yaml b/mods/ts/rules/palettes.yaml index d954d5f438..30083e5b13 100644 --- a/mods/ts/rules/palettes.yaml +++ b/mods/ts/rules/palettes.yaml @@ -109,5 +109,9 @@ BaseName: cloak BasePalette: player Alpha: 0.55 + PaletteFromPaletteWithAlpha@terrainalpha: + BasePalette: terraindecoration + Name: terrainalpha + Alpha: 0.55 PlayerHighlightPalette: MenuPaletteEffect: diff --git a/mods/ts/sequences/bridges.yaml b/mods/ts/sequences/bridges.yaml new file mode 100644 index 0000000000..9c22f720c1 --- /dev/null +++ b/mods/ts/sequences/bridges.yaml @@ -0,0 +1,54 @@ +^bridge: + Defaults: + ZOffset: -1c511 + UseTilesetExtension: true + Start: 1 + ZRamp: 1 + Offset: 0, 0, 0.5 + +lobrdg_a: + Inherits: ^bridge + idle: lobrdg10 # lobrdg11, 12, 13 + damaged-idle: lobrdg16 + sw: lobrdg14 + damaged-sw: lobrdg17 + ne: lobrdg15 + damaged-ne: lobrdg18 + +lobrdg_a_d: + Inherits: ^bridge + idle: lobrdg10 # actually lobrdg28 + +lobrdg_b: + Inherits: ^bridge + idle: lobrdg01 # lobrdg02, 03, 04 + damaged-idle: lobrdg07 + se: lobrdg06 + damaged-se: lobrdg09 + nw: lobrdg05 + damaged-nw: lobrdg08 + +lobrdg_b_d: + Inherits: ^bridge + idle: lobrdg01 # actually lobrdg27 + +lobrdg_r_se: + Inherits: ^bridge + idle: lobrdg19 + damaged-idle: lobrdg20 + +lobrdg_r_nw: + Inherits: ^bridge + idle: lobrdg21 + damaged-idle: lobrdg22 + +lobrdg_r_ne: + Inherits: ^bridge + idle: lobrdg23 + damaged-idle: lobrdg24 + +lobrdg_r_sw: + Inherits: ^bridge + idle: lobrdg25 + damaged-idle: lobrdg26 +