예제 #1
0
        void INotifyTransform.AfterTransform(Actor toActor)
        {
            //When transform complete, assign the slaves to this transform actor
            SpawnerHarvesterMaster harvesterMaster = toActor.Trait <SpawnerHarvesterMaster>();

            foreach (var se in SlaveEntries)
            {
                se.SpawnerSlave.LinkMaster(se.Actor, toActor, harvesterMaster);
                se.SpawnerSlave.Stop(se.Actor);
                if (!se.Actor.IsDead)
                {
                    se.Actor.QueueActivity(new Follow(se.Actor, Target.FromActor(toActor), WDist.FromCells(1), WDist.FromCells(3), null));
                }
            }
            harvesterMaster.AssignSlavesToMaster(SlaveEntries);
            if (force)
            {
                harvesterMaster.LastOrderLocation = forceMovePos;
                toActor.QueueActivity(new SpawnerHarvesterHarvest(toActor));
            }
            else
            {
                toActor.QueueActivity(new SpawnerHarvesterHarvest(toActor));
            }
        }
 public override void LinkMaster(Actor self, Actor master, BaseSpawnerMaster spawnerMaster)
 {
     base.LinkMaster(self, master, spawnerMaster);
     // Link master for the harvester trait.
     try
     {
         spawnerHarvesterMaster = Master.Trait <SpawnerHarvesterMaster>();
     }
     catch
     {
     }
 }