public static string GetTraitDescr(CropTrait trait) { ITranslationHelper trans = ModEntry.GetHelper().Translation; switch (trait) { case CropTrait.PestResistanceNo: case CropTrait.PestResistanceI: case CropTrait.PestResistanceII: return(trans.Get("cult.msg_traitdesc_pestres")); case CropTrait.QualityNo: case CropTrait.QualityI: case CropTrait.QualityII: return(trans.Get("cult.msg_traitdesc_quality")); case CropTrait.WaterNo: case CropTrait.WaterI: case CropTrait.WaterII: case CropTrait.WaterIII: return(trans.Get("cult.msg_traitdesc_water")); case CropTrait.SpeedNo: case CropTrait.SpeedI: case CropTrait.SpeedII: case CropTrait.SpeedIII: return(trans.Get("cult.msg_traitdesc_speed")); default: return("ERROR gettraitdescr"); } }
public static string GetTraitName(CropTrait trait) { ITranslationHelper trans = ModEntry.GetHelper().Translation; switch (trait) { case CropTrait.PestResistanceI: return(trans.Get("cult.msg_trait_pestresI")); case CropTrait.PestResistanceII: return(trans.Get("cult.msg_trait_pestresII")); case CropTrait.QualityI: return(trans.Get("cult.msg_trait_qualityI")); case CropTrait.QualityII: return(trans.Get("cult.msg_trait_qualityII")); case CropTrait.WaterI: return(trans.Get("cult.msg_trait_waterI")); case CropTrait.WaterII: return(trans.Get("cult.msg_trait_waterII")); case CropTrait.SpeedI: return(trans.Get("cult.msg_trait_speedI")); case CropTrait.SpeedII: return(trans.Get("cult.msg_trait_speedII")); default: return("ERROR gettraitname"); } }
private static CropTrait GetNewRandomTrait(List <CropTrait> traits) { CropTrait result = CropTrait.PestResistanceI; for (int i = 0; i < 100; i++) { result = GetRandomTrait(); if (!traits.Contains(result)) { break; } } return(result); }
public static void AddTrait(CropTrait trait, List <CropTrait> traits, int id) { ITranslationHelper trans = ModEntry.GetHelper().Translation; void add() { ModEntry.GetMonitor().Log($"Added {trait} to {CropSeedsDisplayName(id)}", LogLevel.Trace); Game1.showGlobalMessage(trans.Get("cult.msg_traitinc", new { traitdesc = GetTraitDescr(trait), seed = CropSeedsDisplayName(id), trait = GetTraitName(trait) })); Game1.playSound("achievement"); traits.Add(trait); CropTraits[id] = traits; } bool alreadyContains() => traits.Contains(trait); CropTrait newTrait = GetNewRandomTrait(traits); if (traits.Contains(newTrait)) { ModEntry.GetMonitor().Log("Bug: tried to find new trait with full list or returned wrong trait", LogLevel.Error); return; } if (alreadyContains()) { switch (trait) { case CropTrait.PestResistanceI: AddTrait(CropTrait.PestResistanceII, traits, id); break; case CropTrait.WaterI: AddTrait(CropTrait.WaterII, traits, id); break; case CropTrait.QualityI: AddTrait(CropTrait.QualityII, traits, id); break; case CropTrait.SpeedI: AddTrait(CropTrait.SpeedII, traits, id); break; default: AddTrait(newTrait, traits, id); break; } } else { switch (trait) { case CropTrait.PestResistanceII: if (traits.Contains(CropTrait.PestResistanceI)) { add(); } else { trait = CropTrait.PestResistanceI; add(); } break; case CropTrait.WaterII: if (traits.Contains(CropTrait.WaterI)) { add(); } else { trait = CropTrait.WaterI; add(); } break; case CropTrait.QualityII: if (traits.Contains(CropTrait.QualityI)) { add(); } else { trait = CropTrait.QualityI; add(); } break; case CropTrait.SpeedII: if (traits.Contains(CropTrait.SpeedI)) { add(); } else { trait = CropTrait.SpeedI; add(); } break; default: add(); break; } } }
public static void AddTrait(CropTrait trait, List <CropTrait> traits, int id) { ITranslationHelper trans = ModEntry.GetHelper().Translation; string gettraitdescr() { switch (trait) { case CropTrait.PestResistanceI: case CropTrait.PestResistanceII: return(trans.Get("cult.msg_traitdesc_pestres")); case CropTrait.QualityI: case CropTrait.QualityII: return(trans.Get("cult.msg_traitdesc_quality")); case CropTrait.WaterI: case CropTrait.WaterII: return(trans.Get("cult.msg_traitdesc_water")); case CropTrait.SpeedI: case CropTrait.SpeedII: return(trans.Get("cult.msg_traitdesc_speed")); default: return("ERROR gettraitdescr"); } } string gettraitname() { switch (trait) { case CropTrait.PestResistanceI: return(trans.Get("cult.msg_trait_pestresI")); case CropTrait.PestResistanceII: return(trans.Get("cult.msg_trait_pestresII")); case CropTrait.QualityI: return(trans.Get("cult.msg_trait_qualityI")); case CropTrait.QualityII: return(trans.Get("cult.msg_trait_qualityII")); case CropTrait.WaterI: return(trans.Get("cult.msg_trait_waterI")); case CropTrait.WaterII: return(trans.Get("cult.msg_trait_waterII")); case CropTrait.SpeedI: return(trans.Get("cult.msg_trait_speedI")); case CropTrait.SpeedII: return(trans.Get("cult.msg_trait_speedII")); default: return("ERROR gettraitname"); } } void add() { ModEntry.GetMonitor().Log($"Added {trait} to {CropSeedsName(id)}", LogLevel.Trace); Game1.showGlobalMessage(trans.Get("cult.msg_traitinc", new { traitdesc = gettraitdescr(), seed = CropSeedsName(id), trait = gettraitname() })); traits.Add(trait); CropTraits[id] = traits; } bool alreadyContains() => traits.Contains(trait); CropTrait newTrait = GetNewRandomTrait(traits); if (traits.Contains(newTrait)) { ModEntry.GetMonitor().Log("Bug: tried to find new trait with full list or returned wrong trait", LogLevel.Error); return; } if (alreadyContains()) { switch (trait) { case CropTrait.PestResistanceI: AddTrait(CropTrait.PestResistanceII, traits, id); break; case CropTrait.WaterI: AddTrait(CropTrait.WaterII, traits, id); break; case CropTrait.QualityI: AddTrait(CropTrait.QualityII, traits, id); break; case CropTrait.SpeedI: AddTrait(CropTrait.SpeedII, traits, id); break; default: AddTrait(newTrait, traits, id); break; } } else { switch (trait) { case CropTrait.PestResistanceII: if (traits.Contains(CropTrait.PestResistanceI)) { add(); } else { trait = CropTrait.PestResistanceI; add(); } break; case CropTrait.WaterII: if (traits.Contains(CropTrait.WaterI)) { add(); } else { trait = CropTrait.WaterI; add(); } break; case CropTrait.QualityII: if (traits.Contains(CropTrait.QualityI)) { add(); } else { trait = CropTrait.QualityI; add(); } break; case CropTrait.SpeedII: if (traits.Contains(CropTrait.SpeedI)) { add(); } else { trait = CropTrait.SpeedI; add(); } break; default: add(); break; } } }