protected override void OnSpawn() { base.OnSpawn(); UpdateTint(); UpdateStatusString(); base.OnAssign += OnNewAssignment; if (assignee == null) { MinionStorage component = GetComponent <MinionStorage>(); if ((bool)component) { List <MinionStorage.Info> storedMinionInfo = component.GetStoredMinionInfo(); if (storedMinionInfo.Count > 0) { MinionStorage.Info info = storedMinionInfo[0]; Ref <KPrefabID> serializedMinion = info.serializedMinion; if (serializedMinion != null && serializedMinion.GetId() != -1) { KPrefabID kPrefabID = serializedMinion.Get(); StoredMinionIdentity component2 = kPrefabID.GetComponent <StoredMinionIdentity>(); component2.ValidateProxy(); Assign(component2); } } } } }
public void ReleaseAstronaut(bool fill_bladder) { if (!releasingAstronaut) { releasingAstronaut = true; MinionStorage component = GetComponent <MinionStorage>(); List <MinionStorage.Info> storedMinionInfo = component.GetStoredMinionInfo(); for (int num = storedMinionInfo.Count - 1; num >= 0; num--) { MinionStorage.Info info = storedMinionInfo[num]; GameObject gameObject = component.DeserializeMinion(info.id, Grid.CellToPos(Grid.PosToCell(base.smi.master.transform.GetPosition()))); if (!((Object)gameObject == (Object)null)) { if (Grid.FakeFloor[Grid.OffsetCell(Grid.PosToCell(base.smi.master.gameObject), 0, -1)]) { gameObject.GetComponent <Navigator>().SetCurrentNavType(NavType.Floor); } if (fill_bladder) { AmountInstance amountInstance = Db.Get().Amounts.Bladder.Lookup(gameObject); if (amountInstance != null) { amountInstance.value = amountInstance.GetMax(); } } } } releasingAstronaut = false; } }
public override LaunchStatus EvaluateLaunchCondition() { MinionStorage component = module.GetComponent <MinionStorage>(); List <MinionStorage.Info> storedMinionInfo = component.GetStoredMinionInfo(); if (storedMinionInfo.Count > 0) { MinionStorage.Info info = storedMinionInfo[0]; if (info.serializedMinion != null) { return(LaunchStatus.Ready); } } return(LaunchStatus.Failure); }