public void AddCondition(ActiveCondition c) { ActiveConditions.Add(c); if (c.Bonus != null) { ApplyBonus(c.Bonus, false); } }
public void RemoveCondition(ActiveCondition c) { ActiveConditions.Remove(c); if (c.Bonus != null) { ApplyBonus(c.Bonus, true); } }
public string TrackerDetails(bool forUpdateFunction, bool addDashes) { var text = ""; if (!Failed) { foreach (var activeCondition in ActiveConditions.Where(c => c != BonusCondition)) { text += (addDashes ? " - " : "") + TrackerDetailsForCondition(activeCondition); } } if (HasTimeLimit) { text += forUpdateFunction ? (Failed ? "Failed" : "Time Left: " + (int)CurrentTimeLimit) : (Failed ? "Failed" : "Time Limited") + "\n"; } if (HasBonusCondition) { //text += string.IsNullOrEmpty(text) ? "" : "\n\n"; if (!FailedBonus) { text += "Bonus:" + "\n"; text += (addDashes ? " - " : "") + TrackerDetailsForCondition(BonusCondition); if (BonusHasTimeLimit) { text += forUpdateFunction ? (addDashes ? " - " : "") + "Time Left: " + (int)BonusCurrentTimeLimit : (addDashes ? " - " : "") + "Time Limited" + "\n"; } } else { text += "Bonus: Failed" + "\n"; } } return("\n" + text); }
public ActiveCondition FindCondition(string name) { return(ActiveConditions.FirstOrDefault (a => String.Compare(a.Condition.Name, name, true) == 0)); }