public override void Activate(Actor self, Order order, SupportPowerManager manager)
        {
            base.Activate(self, order, manager);

            self.World.AddFrameEndTask(w =>
            {
                Shroud shround    = self.Owner.Shroud;
                WPos destPosition = order.Target.CenterPosition;
                var cells         = Shroud.ProjectedCellsInRange(self.World.Map, self.World.Map.CellContaining(destPosition), WDist.FromCells(info.Radius));
                try
                {
                    shround.AddSource(this, type, cells.ToArray());
                }
                catch
                {
                    shround.RemoveSource(this);
                    shround.AddSource(this, type, cells.ToArray());
                }
                shround.ExploreProjectedCells(self.World, cells);

                if (!string.IsNullOrEmpty(info.Sequence))
                {
                    string palette = null;
                    if (info.Platte == "player")
                    {
                        palette = "player" + self.Owner.InternalName;
                    }
                    else
                    {
                        palette = info.Platte;
                    }
                    self.World.Add(new SpriteEffect(destPosition, self.World, info.Image, info.Sequence, palette));
                }
            });
        }