public static void SetNeedActive(DwarfNeed need, bool active) { if (activeNeeds.Length <= (int)need) { activeNeeds = activeNeeds.WithLength(EnumUtils.SizeOf <DwarfNeed>()); } activeNeeds[(int)need] = active; }
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); }
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); } }
private void ProgressTakingDamagesFrom(DwarfNeed need, ref float progress) { if (_needs[need] > 0) { return; } progress += Time.deltaTime; if (progress < 8) { return; } Damage(4); progress = 0; }
public float GetNeedValue(DwarfNeed need) => _needs[need];
public float this[DwarfNeed need] { get => _needsFill.GetSafe((int)need);
private static bool IsNeedActive(DwarfNeed need) => activeNeeds.GetSafe((int)need);