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;
     }
 }
 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);
                 }
             }
         }
     }
 }
Example #3
0
 private void BuildMinions()
 {
     for (int num = minionWidgets.Count - 1; num >= 0; num--)
     {
         minionWidgets[num].DeleteObject();
     }
     minionWidgets.Clear();
     foreach (MinionIdentity item in Components.LiveMinionIdentities.Items)
     {
         GameObject gameObject = Util.KInstantiateUI(Prefab_minion, Prefab_minionLayout, true);
         gameObject.GetComponent <SkillMinionWidget>().SetMinon(item);
         minionWidgets.Add(gameObject.GetComponent <SkillMinionWidget>());
     }
     foreach (MinionStorage item2 in Components.MinionStorages.Items)
     {
         foreach (MinionStorage.Info item3 in item2.GetStoredMinionInfo())
         {
             MinionStorage.Info current3 = item3;
             if (current3.serializedMinion != null)
             {
                 StoredMinionIdentity minon       = current3.serializedMinion.Get <StoredMinionIdentity>();
                 GameObject           gameObject2 = Util.KInstantiateUI(Prefab_minion, Prefab_minionLayout, true);
                 gameObject2.GetComponent <SkillMinionWidget>().SetMinon(minon);
                 minionWidgets.Add(gameObject2.GetComponent <SkillMinionWidget>());
             }
         }
     }
     if (CurrentlySelectedMinion == null && Components.LiveMinionIdentities.Count > 0)
     {
         CurrentlySelectedMinion = Components.LiveMinionIdentities.Items[0];
     }
 }
Example #4
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);
    }
    public void OnLand(object data)
    {
        SpaceDestination spacecraftDestination = SpacecraftManager.instance.GetSpacecraftDestination(SpacecraftManager.instance.GetSpacecraftID(GetComponent <RocketModule>().conditionManager.GetComponent <LaunchableRocket>()));

        foreach (MinionStorage.Info item in minionStorage.GetStoredMinionInfo())
        {
            MinionStorage.Info   current  = item;
            StoredMinionIdentity minionID = current.serializedMinion.Get <StoredMinionIdentity>();
            string text = SearchForArtifact(minionID, spacecraftDestination);
            if (text != null)
            {
                GameObject prefab     = Assets.GetPrefab(text.ToTag());
                GameObject gameObject = GameUtil.KInstantiate(prefab, base.gameObject.transform.GetPosition(), Grid.SceneLayer.Ore, null, 0);
                gameObject.SetActive(true);
            }
        }
    }
 public bool CheckStoredMinionIsAssignee()
 {
     foreach (MinionStorage.Info item in GetComponent <MinionStorage>().GetStoredMinionInfo())
     {
         MinionStorage.Info current = item;
         if (current.serializedMinion != null)
         {
             KPrefabID kPrefabID = current.serializedMinion.Get();
             if (!((Object)kPrefabID == (Object)null))
             {
                 StoredMinionIdentity component  = kPrefabID.GetComponent <StoredMinionIdentity>();
                 Assignable           component2 = GetComponent <Assignable>();
                 if (component2.assignee == component.assignableProxy.Get())
                 {
                     return(true);
                 }
             }
         }
     }
     return(false);
 }
Example #7
0
    public void Refresh(string skillID)
    {
        Skill skill = Db.Get().Skills.Get(skillID);

        if (skill == null)
        {
            Debug.LogWarning("DbSkills is missing skillId " + skillID);
        }
        else
        {
            Name.text = skill.Name;
            LocText name = Name;
            name.text    = name.text + "\n(" + Db.Get().SkillGroups.Get(skill.skillGroup).Name + ")";
            this.skillID = skillID;
            tooltip.SetSimpleTooltip(SkillTooltip(skill));
            MinionIdentity       minionIdentity       = skillsScreen.CurrentlySelectedMinion as MinionIdentity;
            StoredMinionIdentity storedMinionIdentity = skillsScreen.CurrentlySelectedMinion as StoredMinionIdentity;
            MinionResume         minionResume         = null;
            if ((UnityEngine.Object)minionIdentity != (UnityEngine.Object)null)
            {
                minionResume = minionIdentity.GetComponent <MinionResume>();
                MinionResume.SkillMasteryConditions[] skillMasteryConditions = minionResume.GetSkillMasteryConditions(skillID);
                bool flag = minionResume.CanMasterSkill(skillMasteryConditions);
                if (!((UnityEngine.Object)minionResume == (UnityEngine.Object)null) && (minionResume.HasMasteredSkill(skillID) || flag))
                {
                    TitleBarBG.color  = ((!minionResume.HasMasteredSkill(skillID)) ? header_color_can_assign : header_color_has_skill);
                    hatImage.material = defaultMaterial;
                }
                else
                {
                    TitleBarBG.color  = header_color_disabled;
                    hatImage.material = desaturatedMaterial;
                }
            }
            else if ((UnityEngine.Object)storedMinionIdentity != (UnityEngine.Object)null)
            {
                if (storedMinionIdentity.HasMasteredSkill(skillID))
                {
                    TitleBarBG.color  = header_color_has_skill;
                    hatImage.material = defaultMaterial;
                }
                else
                {
                    TitleBarBG.color  = header_color_disabled;
                    hatImage.material = desaturatedMaterial;
                }
            }
            hatImage.sprite = Assets.GetSprite(skill.badge);
            bool active = false;
            if ((UnityEngine.Object)minionResume != (UnityEngine.Object)null)
            {
                minionResume.AptitudeBySkillGroup.TryGetValue(skill.skillGroup, out float value);
                active = (value > 0f);
            }
            aptitudeBox.SetActive(active);
            traitDisabledIcon.SetActive((UnityEngine.Object)minionResume != (UnityEngine.Object)null && !minionResume.IsAbleToLearnSkill(skill.Id));
            string        text = string.Empty;
            List <string> list = new List <string>();
            foreach (MinionIdentity item in Components.LiveMinionIdentities.Items)
            {
                MinionResume component = item.GetComponent <MinionResume>();
                if ((UnityEngine.Object)component != (UnityEngine.Object)null && component.HasMasteredSkill(skillID))
                {
                    list.Add(component.GetProperName());
                }
            }
            foreach (MinionStorage item2 in Components.MinionStorages.Items)
            {
                foreach (MinionStorage.Info item3 in item2.GetStoredMinionInfo())
                {
                    MinionStorage.Info current3 = item3;
                    if (current3.serializedMinion != null)
                    {
                        StoredMinionIdentity storedMinionIdentity2 = current3.serializedMinion.Get <StoredMinionIdentity>();
                        if ((UnityEngine.Object)storedMinionIdentity2 != (UnityEngine.Object)null && storedMinionIdentity2.HasMasteredSkill(skillID))
                        {
                            list.Add(storedMinionIdentity2.GetProperName());
                        }
                    }
                }
            }
            masteryCount.gameObject.SetActive(list.Count > 0);
            foreach (string item4 in list)
            {
                text = text + "\n    • " + item4;
            }
            masteryCount.SetSimpleTooltip((list.Count <= 0) ? UI.ROLES_SCREEN.WIDGET.NO_MASTERS_TOOLTIP.text : string.Format(UI.ROLES_SCREEN.WIDGET.NUMBER_OF_MASTERS_TOOLTIP, text));
            masteryCount.GetComponentInChildren <LocText>().text = list.Count.ToString();
        }
    }