private static void loadConstants(GameCommander commander) { JObject tok = commander.exec <JObject>("PropertiesInterface", "getData"); //Debug.Print(tok["properties"]["const_trains"].ToString()); JObject const_trains = tok["properties"]["const_trains"] as JObject; if (const_trains != null) { JEnumerable <JProperty> children = const_trains.Children <JProperty>(); foreach (JProperty child in children) { TrainStats.addStats(child); } } //Debug.Print(tok["properties"]["const_train_upgrades"].ToString()); JObject const_train_upgrades = tok["properties"]["const_train_upgrades"] as JObject; if (const_train_upgrades != null) { JEnumerable <JProperty> children = const_train_upgrades.Children <JProperty>(); foreach (JProperty child in children) { TrainUpgrade.addUpgrade(child); } } seedForTowns_ = tok["client"]["seedForTowns"].ToObject <int>(); }
public bool hasCouplingFor(int era) { if (era > 1) { TrainUpgrade tu = TrainUpgrade.getCouplingTech(era - 1); if (tu != null) { return(hasTechnology(tu.Id)); } } return(false); }
internal static void addUpgrade(JProperty prop) { int id = int.Parse(prop.Name); JObject tok = prop.Value as JObject; if (tok != null) { TrainUpgrade tu = new TrainUpgrade(id, tok); upgrades_.Add(id, tu); if (tu.Type == UpgradeType.Hitch) { couplingUpgrades_.Add(tu.Era, tu); } } }
public TrainStats ApplyUpgrades(HashSet <int> upgrades) { TrainStats stats = new TrainStats(this); foreach (int uid in upgrades) { TrainUpgrade up = TrainUpgrade.getUpgrade(uid); if (up != null) { switch (up.Type) { case UpgradeType.Acceleration: { stats.acceleration_ += up.Effect; break; } case UpgradeType.Power: { stats.maxWaggons_ += up.Effect; break; } case UpgradeType.Speed: { stats.speed_ += up.Effect; break; } case UpgradeType.Reliability: { stats.endurance_ += up.Effect; break; } } } } return(stats); }