Example #1
0
 public static void SetNeedActive(DwarfNeed need, bool active)
 {
     if (activeNeeds.Length <= (int)need)
     {
         activeNeeds = activeNeeds.WithLength(EnumUtils.SizeOf <DwarfNeed>());
     }
     activeNeeds[(int)need] = active;
 }
Example #2
0
        private void SetNeed(Dwarf dwarf, DwarfNeed need)
        {
            var existsInDictionary = uiPerDwarf.ContainsKey(dwarf);
            var itemUi             = existsInDictionary ? uiPerDwarf[dwarf] : GetNewItemUi();

            if (!existsInDictionary)
            {
                uiPerDwarf.Add(dwarf, itemUi);
            }
            itemUi.icon = Sprites.Of($"needs.{need}");
            itemUi.fill = dwarf.GetNeedValue(need);
        }
Example #3
0
        public float GetDeclineSpeed(DwarfNeed need)
        {
            switch (need)
            {
            case DwarfNeed.Sleep: return(_sleepDecline);

            case DwarfNeed.Food: return(_foodDecline);

            case DwarfNeed.Beer: return(_beerDecline);

            default: throw new ArgumentOutOfRangeException(nameof(need), need, null);
            }
        }
Example #4
0
 private void ProgressTakingDamagesFrom(DwarfNeed need, ref float progress)
 {
     if (_needs[need] > 0)
     {
         return;
     }
     progress += Time.deltaTime;
     if (progress < 8)
     {
         return;
     }
     Damage(4);
     progress = 0;
 }
Example #5
0
 public float GetNeedValue(DwarfNeed need) => _needs[need];
Example #6
0
 public float this[DwarfNeed need] {
     get => _needsFill.GetSafe((int)need);
Example #7
0
 private static bool IsNeedActive(DwarfNeed need) => activeNeeds.GetSafe((int)need);