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); }
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); }
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); }