Exemple #1
0
    private void OnSicknessTrigger(GameObject target, TriggerInfo trigger)
    {
        int      num      = UnityEngine.Random.Range(0, trigger.sickness_ids.Length);
        string   text     = trigger.sickness_ids[num];
        Sickness sickness = null;

        Database.Sicknesses sicknesses = Db.Get().Sicknesses;
        for (int i = 0; i < sicknesses.Count; i++)
        {
            if (sicknesses[i].Id == text)
            {
                sickness = sicknesses[i];
                break;
            }
        }
        if (sickness != null)
        {
            string infection_source_info       = trigger.sourceCallback(base.gameObject, target);
            SicknessExposureInfo exposure_info = new SicknessExposureInfo(sickness.Id, infection_source_info);
            Klei.AI.Sicknesses   sicknesses2   = target.GetComponent <MinionModifiers>().sicknesses;
            sicknesses2.Infect(exposure_info);
        }
        else
        {
            DebugUtil.DevLogErrorFormat(base.gameObject, "Couldn't find sickness with id [{0}]", text);
        }
    }
Exemple #2
0
    public static List <SubEntry> CollectSubEntries(string folder)
    {
        List <SubEntry> list = new List <SubEntry>();
        string          path = (!(folder == string.Empty)) ? Path.Combine(baseEntryPath, folder) : baseEntryPath;

        string[] array = new string[0];
        try
        {
            array = Directory.GetFiles(path, "*.yaml", SearchOption.AllDirectories);
        }
        catch (UnauthorizedAccessException obj)
        {
            Debug.LogWarning(obj);
        }
        string[] array2 = array;
        foreach (string text in array2)
        {
            try
            {
                SubEntry subEntry = YamlIO.LoadFile <SubEntry>(text, YamlParseErrorCB, widgetTagMappings);
                if (subEntry != null)
                {
                    list.Add(subEntry);
                }
            }
            catch (Exception ex)
            {
                DebugUtil.DevLogErrorFormat("CodexCache.CollectSubEntries failed to load [{0}]: {1}", text, ex.ToString());
            }
        }
        list.Sort((SubEntry x, SubEntry y) => x.title.CompareTo(y.title));
        return(list);
    }
Exemple #3
0
 private void SanitizeMassAndTemperature()
 {
     if (_Temperature <= 0f)
     {
         DebugUtil.DevLogErrorFormat(base.gameObject, "{0} is attempting to serialize a temperature of <= 0K. Resetting to default.", base.gameObject.name);
         _Temperature = Element.defaultValues.temperature;
     }
     if (Mass > MAX_MASS)
     {
         DebugUtil.DevLogErrorFormat(base.gameObject, "{0} is attempting to serialize very large mass {1}. Resetting to default.", base.gameObject.name, Mass);
         Mass = Element.defaultValues.mass;
     }
 }
Exemple #4
0
 private void SetMass(float mass)
 {
     if ((mass > MAX_MASS || mass < 0f) && ElementID != SimHashes.Regolith)
     {
         DebugUtil.DevLogErrorFormat(base.gameObject, "{0} is getting an abnormal mass set {1}.", base.gameObject.name, Mass);
     }
     mass  = Mathf.Clamp(mass, 0f, MAX_MASS);
     Units = mass / MassPerUnit;
     if (Units <= 0f && !KeepZeroMassObject)
     {
         Util.KDestroyGameObject(base.gameObject);
     }
     else if (!KeepZeroMassObject && Units <= 0f)
     {
         throw new ArgumentException("Invalid mass");
     }
 }
Exemple #5
0
    public static List <CodexEntry> CollectEntries(string folder)
    {
        List <CodexEntry> list = new List <CodexEntry>();
        string            path = (!(folder == string.Empty)) ? Path.Combine(baseEntryPath, folder) : baseEntryPath;

        string[] array = new string[0];
        try
        {
            array = Directory.GetFiles(path, "*.yaml");
        }
        catch (UnauthorizedAccessException obj)
        {
            Debug.LogWarning(obj);
        }
        string category = folder.ToUpper();

        string[] array2 = array;
        foreach (string text in array2)
        {
            try
            {
                CodexEntry codexEntry = YamlIO.LoadFile <CodexEntry>(text, YamlParseErrorCB, widgetTagMappings);
                if (codexEntry != null)
                {
                    codexEntry.category = category;
                    list.Add(codexEntry);
                }
            }
            catch (Exception ex)
            {
                DebugUtil.DevLogErrorFormat("CodexCache.CollectEntries failed to load [{0}]: {1}", text, ex.ToString());
            }
        }
        foreach (CodexEntry item in list)
        {
            if (string.IsNullOrEmpty(item.sortString))
            {
                item.sortString = Strings.Get(item.title);
            }
        }
        list.Sort((CodexEntry x, CodexEntry y) => x.sortString.CompareTo(y.sortString));
        return(list);
    }
Exemple #6
0
 public bool IsPotentialSuccess()
 {
     if (IsSuccess())
     {
         return(true);
     }
     if ((UnityEngine.Object)chore.driver == (UnityEngine.Object)consumerState.choreDriver)
     {
         return(true);
     }
     if (failedPreconditionId != -1)
     {
         if (failedPreconditionId >= 0 && failedPreconditionId < chore.preconditions.Count)
         {
             PreconditionInstance preconditionInstance = chore.preconditions[failedPreconditionId];
             return(preconditionInstance.id == ChorePreconditions.instance.IsMoreSatisfyingLate.id);
         }
         DebugUtil.DevLogErrorFormat("failedPreconditionId out of range {0}/{1}", failedPreconditionId, chore.preconditions.Count);
     }
     return(false);
 }
    protected override void OnActivate()
    {
        title = UI.CONSUMABLESSCREEN.TITLE;
        base.OnActivate();
        AddPortraitColumn("Portrait", base.on_load_portrait, null, true);
        AddButtonLabelColumn("Names", base.on_load_name_label, base.get_value_name_label, delegate(GameObject widget_go)
        {
            GetWidgetRow(widget_go).SelectMinion();
        }, delegate(GameObject widget_go)
        {
            GetWidgetRow(widget_go).SelectAndFocusMinion();
        }, base.compare_rows_alphabetical, on_tooltip_name, base.on_tooltip_sort_alphabetically, false);
        AddLabelColumn("QOLExpectations", on_load_qualityoflife_expectations, get_value_qualityoflife_label, compare_rows_qualityoflife_expectations, on_tooltip_qualityoflife_expectations, on_tooltip_sort_qualityoflife_expectations, 96, true);
        List <IConsumableUIItem> list = new List <IConsumableUIItem>();

        for (int i = 0; i < FOOD.FOOD_TYPES_LIST.Count; i++)
        {
            list.Add(FOOD.FOOD_TYPES_LIST[i]);
        }
        List <GameObject> prefabsWithTag = Assets.GetPrefabsWithTag(GameTags.Medicine);

        for (int j = 0; j < prefabsWithTag.Count; j++)
        {
            MedicinalPill component = prefabsWithTag[j].GetComponent <MedicinalPill>();
            if ((bool)component)
            {
                list.Add(component);
            }
            else
            {
                DebugUtil.DevLogErrorFormat("Prefab tagged Medicine does not have MedicinalPill component: {0}", prefabsWithTag[j]);
            }
        }
        list.Sort(delegate(IConsumableUIItem a, IConsumableUIItem b)
        {
            int num2 = a.MajorOrder.CompareTo(b.MajorOrder);
            if (num2 == 0)
            {
                num2 = a.MinorOrder.CompareTo(b.MinorOrder);
            }
            return(num2);
        });
        ConsumerManager.instance.OnDiscover += OnConsumableDiscovered;
        List <ConsumableInfoTableColumn> list2 = new List <ConsumableInfoTableColumn>();
        List <DividerColumn>             list3 = new List <DividerColumn>();
        List <ConsumableInfoTableColumn> list4 = new List <ConsumableInfoTableColumn>();

        StartScrollableContent("consumableScroller");
        int num = 0;

        for (int k = 0; k < list.Count; k++)
        {
            if (list[k].Display)
            {
                if (list[k].MajorOrder != num && k != 0)
                {
                    string id = "QualityDivider_" + list[k].MajorOrder;
                    ConsumableInfoTableColumn[] quality_group_columns = list4.ToArray();
                    DividerColumn dividerColumn = new DividerColumn(delegate
                    {
                        if (quality_group_columns == null || quality_group_columns.Length == 0)
                        {
                            return(true);
                        }
                        ConsumableInfoTableColumn[] array = quality_group_columns;
                        foreach (ConsumableInfoTableColumn consumableInfoTableColumn in array)
                        {
                            if (consumableInfoTableColumn.isRevealed)
                            {
                                return(true);
                            }
                        }
                        return(false);
                    }, "consumableScroller");
                    list3.Add(dividerColumn);
                    RegisterColumn(id, dividerColumn);
                    list4.Clear();
                }
                ConsumableInfoTableColumn item = AddConsumableInfoColumn(list[k].ConsumableId, list[k], on_load_consumable_info, get_value_consumable_info, on_click_consumable_info, set_value_consumable_info, compare_consumable_info, on_tooltip_consumable_info, on_tooltip_sort_consumable_info);
                list2.Add(item);
                num = list[k].MajorOrder;
                list4.Add(item);
            }
        }
        AddSuperCheckboxColumn("SuperCheckConsumable", list2.ToArray(), base.on_load_value_checkbox_column_super, get_value_checkbox_column_super, base.on_press_checkbox_column_super, base.set_value_checkbox_column_super, null, on_tooltip_consumable_info_super);
    }