Exemplo n.º 1
0
        void Replenish(Actor self)
        {
            var unit = self.World.CreateActor(false, Info.SlaveUnit.ToLowerInvariant(),
                                              new TypeDictionary {
                new OwnerInit(self.Owner)
            });
            var spawned = unit.Trait <Spawned>();

            spawned.Master = self;             // let the spawned unit return to me for reloading and repair.

            var se = new SlaveEntry();

            se.s          = unit;
            se.RearmTicks = 0;
            slaves.Add(se);
        }
Exemplo n.º 2
0
        public void Load(Actor self, Actor a)
        {
            if (launched.Contains(a))
            {
                launched.Remove(a);
            }
            foreach (var u in Info.LoadingUpgrades)
            {
                upgradeManager.RevokeUpgrade(self, u, this);
            }

            // Set up rearm.
            var se = new SlaveEntry();

            se.s          = a;
            se.RearmTicks = Info.RearmTicks;
            slaves.Add(se);
        }
Exemplo n.º 3
0
        Actor PopLaunchable(Actor self)
        {
            SlaveEntry result = null;

            foreach (var se in slaves)
            {
                if (se.RearmTicks <= 0)
                {
                    result = se;
                    break;
                }
            }

            if (result != null)
            {
                slaves.Remove(result);
                return(result.s);
            }
            return(null);
        }