fix tool table config loading
This commit is contained in:
		
							parent
							
								
									979636a4c4
								
							
						
					
					
						commit
						89aab63f86
					
				| @ -13,7 +13,7 @@ use crate::ship::drops::load_data_file; | ||||
| use crate::ship::drops::tech_table::TechniqueTable; | ||||
| 
 | ||||
| 
 | ||||
| #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Copy, Clone)] | ||||
| #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Copy, Clone, enum_utils::FromStr)] | ||||
| enum ToolRateType { | ||||
|     Monomate, | ||||
|     Dimate, | ||||
| @ -50,6 +50,19 @@ struct ToolRate { | ||||
| }*/ | ||||
| 
 | ||||
| #[derive(Debug, Serialize, Deserialize)] | ||||
| struct ToolRatesRaw { | ||||
|     area1: BTreeMap<String, u32>, | ||||
|     area2: BTreeMap<String, u32>, | ||||
|     area3: BTreeMap<String, u32>, | ||||
|     area4: BTreeMap<String, u32>, | ||||
|     area5: BTreeMap<String, u32>, | ||||
|     area6: BTreeMap<String, u32>, | ||||
|     area7: BTreeMap<String, u32>, | ||||
|     area8: BTreeMap<String, u32>, | ||||
|     area9: BTreeMap<String, u32>, | ||||
|     area10: BTreeMap<String, u32>, | ||||
| } | ||||
| 
 | ||||
| struct ToolRates { | ||||
|     area1: BTreeMap<ToolRateType, u32>, | ||||
|     area2: BTreeMap<ToolRateType, u32>, | ||||
| @ -63,6 +76,23 @@ struct ToolRates { | ||||
|     area10: BTreeMap<ToolRateType, u32>, | ||||
| } | ||||
| 
 | ||||
| impl ToolRates { | ||||
|     fn new(raw: ToolRatesRaw) -> ToolRates { | ||||
|         ToolRates { | ||||
|             area1: raw.area1.into_iter().map(|(name, rate)| (name.parse().unwrap(), rate)).collect(), | ||||
|             area2: raw.area2.into_iter().map(|(name, rate)| (name.parse().unwrap(), rate)).collect(), | ||||
|             area3: raw.area3.into_iter().map(|(name, rate)| (name.parse().unwrap(), rate)).collect(), | ||||
|             area4: raw.area4.into_iter().map(|(name, rate)| (name.parse().unwrap(), rate)).collect(), | ||||
|             area5: raw.area5.into_iter().map(|(name, rate)| (name.parse().unwrap(), rate)).collect(), | ||||
|             area6: raw.area6.into_iter().map(|(name, rate)| (name.parse().unwrap(), rate)).collect(), | ||||
|             area7: raw.area7.into_iter().map(|(name, rate)| (name.parse().unwrap(), rate)).collect(), | ||||
|             area8: raw.area8.into_iter().map(|(name, rate)| (name.parse().unwrap(), rate)).collect(), | ||||
|             area9: raw.area9.into_iter().map(|(name, rate)| (name.parse().unwrap(), rate)).collect(), | ||||
|             area10: raw.area10.into_iter().map(|(name, rate)| (name.parse().unwrap(), rate)).collect(), | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl ToolRates { | ||||
|     fn get_by_area<'a>(&'a self, map_area: &MapVariantType) -> &'a BTreeMap<ToolRateType, u32> { | ||||
|         match map_area.area_value().unwrap() { | ||||
| @ -87,8 +117,10 @@ pub struct ToolTable { | ||||
| 
 | ||||
| impl ToolTable { | ||||
|     pub fn new(episode: Episode, difficulty: Difficulty, section_id: SectionID) -> ToolTable { | ||||
|         let rates = load_data_file(episode, difficulty, section_id, "tool_rate.toml"); | ||||
| 
 | ||||
|         ToolTable { | ||||
|             rates: load_data_file(episode, difficulty, section_id, "tool_rate.toml"), | ||||
|             rates: ToolRates::new(rates), | ||||
|             tech_table: TechniqueTable::new(episode, difficulty, section_id), | ||||
|         } | ||||
|     } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user