diff --git a/OpenRA.Game/Traits/HasUnitOnBuild.cs b/OpenRA.Game/Traits/HasUnitOnBuild.cs index 5ebdcc66e5..afec5f9600 100644 --- a/OpenRA.Game/Traits/HasUnitOnBuild.cs +++ b/OpenRA.Game/Traits/HasUnitOnBuild.cs @@ -28,7 +28,21 @@ namespace OpenRA.Traits + info.SpawnOffset, self.Owner); var unitTrait = unit.traits.Get(); unitTrait.Facing = info.Facing; - //unit.QueueActivity( new Harvest() ); + + if (info.InitialActivity != null) + { + foreach (var mod in Game.ModAssemblies) + { + var fullTypeName = mod.Second + "." + info.InitialActivity; + var activity = (IActivity)mod.First.CreateInstance(fullTypeName); + if (activity == null) continue; + + unit.QueueActivity( activity ); + return; + } + + throw new InvalidOperationException("Cannot locate Activity: `{0}`".F(info.InitialActivity)); + } }); } }