/// <summary> /// /// </summary> /// <param name="type"></param> /// <returns></returns> public float FX(FXT type) { foreach (Project p in projects) { if (p.type == type) { if (IsConstant(p)) { return(p.amount[0] * GetLevel(p)); } else { if (GetLevel(p) == 0) { return(1f); } else if (GetLevel(p) == 4) { return(p.amount[2]); } else { return(p.amount[GetLevel(p) - 1]); } } } } return(1f); }
bool IsLimited(FXT type, float amount) { switch (type) { case FXT.Needs: if (amount < -GM.I.people.needs) { return(true); } break; case FXT.Comfort: if (amount < -GM.I.people.comfort) { return(true); } break; case FXT.Culture: if (amount < -GM.I.people.culture) { return(true); } break; case FXT.Energy: if (amount < -GM.I.resource.resources.Energy) { return(true); } break; case FXT.Material: if (amount < -GM.I.resource.resources.Material) { return(true); } break; case FXT.Water: if (amount < -GM.I.resource.resources.Water) { return(true); } break; default: break; } return(false); }
void ProcessEffect(FXT type, float amount) { switch (type) { case FXT.Needs: GM.I.people.needs += amount; break; case FXT.Birth: GM.I.people.Population[0] += (int)amount; break; case FXT.Comfort: GM.I.people.comfort += amount; break; case FXT.Culture: GM.I.people.culture += amount; break; case FXT.Death: GM.I.people.Kill(amount); break; case FXT.Energy: GM.I.resource.resources.r[0] += amount; break; case FXT.Hope: GM.I.people.hope += amount; break; case FXT.Integrity: GM.I.city.ModifyIntegrity(amount); break; case FXT.Material: GM.I.resource.resources.r[2] += amount; break; case FXT.Water: GM.I.resource.resources.r[1] += amount; break; default: break; } }
string EffectString(FXT fxt, float amount) { string output = ""; if (fxt == FXT.Needs || fxt == FXT.Comfort || fxt == FXT.Culture || fxt == FXT.Hope || fxt == FXT.Integrity) { output += "" + UIManager.HumanNotation(amount) + " " + fxt.ToString(); if (amount > 0) { output = UIManager.ColoredString(output, GM.I.art.green); } else { output = UIManager.ColoredString(output, GM.I.art.red); } } else if (fxt == FXT.Death) { output += "" + UIManager.HumanNotation(-(1f - amount)) + " Population"; if (amount > 1) { output = UIManager.ColoredString(output, GM.I.art.green); } else { output = UIManager.ColoredString(output, GM.I.art.red); } } else if (fxt == FXT.Energy || fxt == FXT.Water || fxt == FXT.Material) { if (amount > 0) { output += "+" + amount + " " + fxt.ToString(); output = UIManager.ColoredString(output, GM.I.art.green); } else { output += "" + amount + " " + fxt.ToString(); output = UIManager.ColoredString(output, GM.I.art.red); } } return(output); }