diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs index d147f7aa05..d02e6e9daa 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs @@ -801,6 +801,23 @@ namespace OpenRA.Mods.Common.UtilityCommands } } + if (engineVersion < 20170205) + { + if (node.Key.StartsWith("SpiceBloom", StringComparison.Ordinal)) + { + var spawnActor = node.Value.Nodes.FirstOrDefault(n => n.Key == "SpawnActor"); + if (spawnActor != null) + { + node.Value.Nodes.Remove(spawnActor); + spawnActor.Key = "Actor"; + } + else + spawnActor = new MiniYamlNode("Actor", new MiniYaml("spicebloom.spawnpoint")); + + addNodes.Add(new MiniYamlNode("SpawnActorOnDeath", new MiniYaml("", new List() { spawnActor }))); + } + } + UpgradeActorRules(modData, engineVersion, ref node.Value.Nodes, node, depth + 1); } diff --git a/OpenRA.Mods.D2k/Traits/SpiceBloom.cs b/OpenRA.Mods.D2k/Traits/SpiceBloom.cs index 2989d48f04..77f393f42d 100644 --- a/OpenRA.Mods.D2k/Traits/SpiceBloom.cs +++ b/OpenRA.Mods.D2k/Traits/SpiceBloom.cs @@ -26,9 +26,6 @@ namespace OpenRA.Mods.D2k.Traits [Desc("Seeds resources by explosive eruptions after accumulation times.")] public class SpiceBloomInfo : ITraitInfo, IRenderActorPreviewSpritesInfo, Requires { - [ActorReference] - public readonly string SpawnActor = "spicebloom.spawnpoint"; - [SequenceReference] public readonly string[] GrowthSequences = { "grow1", "grow2", "grow3" }; @@ -157,18 +154,6 @@ namespace OpenRA.Mods.D2k.Traits { if (!string.IsNullOrEmpty(info.Weapon)) SeedResources(self); - - var td = new TypeDictionary - { - new ParentActorInit(self), - new LocationInit(self.Location), - new CenterPositionInit(self.CenterPosition), - new OwnerInit(self.Owner), - new FactionInit(self.Owner.Faction.InternalName), - new SkipMakeAnimsInit() - }; - - self.World.AddFrameEndTask(w => w.CreateActor(info.SpawnActor, td)); } } } diff --git a/mods/d2k/rules/arrakis.yaml b/mods/d2k/rules/arrakis.yaml index 228664f7bf..b90aef1097 100644 --- a/mods/d2k/rules/arrakis.yaml +++ b/mods/d2k/rules/arrakis.yaml @@ -58,6 +58,8 @@ spicebloom: RequiresForceFire: true Armor: Type: none + SpawnActorOnDeath: + Actor: spicebloom.spawnpoint sandworm: Inherits@1: ^SpriteActor