Ejemplo n.º 1
0
 public void AddTempMod(TempHealthMod mod)
 {
     if (TempMods.Exists(tm => tm.Source.Equals(mod.Source)))
     {
         TempHealthMod toChange          = TempMods.Find(tm => tm.Source.Equals(mod.Source));
         float         diminishingReturn = (float)toChange.Duration / (float)mod.Duration;
         int           toIncrease        = Mathf.Max(0, Mathf.FloorToInt(mod.Duration / Mathf.Max(1, 2 * diminishingReturn)));
         toChange.IncreaseDuration(toIncrease);
     }
     else
     {
         // Clone otherwise diminishingReturn doesn't work as duration increase on both.
         TempMods.Add(new TempHealthMod(mod.Value, mod.ModType, mod.HealthType, mod.Source, mod.Duration));
     }
     IsDirty = true;
 }
Ejemplo n.º 2
0
 public virtual void Sleep(BasicChar basicChar)
 {
     DateSystem.PassHour(8);
     basicChar.HP.AddTempMod(TempHealthMod.CreateFlatHealth(5, Source, 12));
     basicChar.WP.AddTempMod(TempHealthMod.CreateFlatWill(5, Source, 12));
 }
Ejemplo n.º 3
0
 public void RemoveTempMods(TempHealthMod mod)
 {
     TempMods.Remove(mod);
     IsDirty = true;
 }