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;
     }
 }
Ejemplo n.º 3
0
    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);
    }