cleanup todos
This commit is contained in:
		
							parent
							
								
									61e7e8b39f
								
							
						
					
					
						commit
						66d882d336
					
				@ -222,7 +222,6 @@ impl InventoryItem {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // pub fn get_sell_price(&self) -> Option<u32> {
 | 
					 | 
				
			||||||
    pub fn get_sell_price(&self) -> Result<u32, ItemManagerError> {
 | 
					    pub fn get_sell_price(&self) -> Result<u32, ItemManagerError> {
 | 
				
			||||||
        match self {
 | 
					        match self {
 | 
				
			||||||
            InventoryItem::Individual(individual_item) => {
 | 
					            InventoryItem::Individual(individual_item) => {
 | 
				
			||||||
@ -230,66 +229,50 @@ impl InventoryItem {
 | 
				
			|||||||
                    // TODO: can wrapped items be sold?
 | 
					                    // TODO: can wrapped items be sold?
 | 
				
			||||||
                    ItemDetail::Weapon(w) => {
 | 
					                    ItemDetail::Weapon(w) => {
 | 
				
			||||||
                        if !w.tekked {
 | 
					                        if !w.tekked {
 | 
				
			||||||
                            // return Some(1u32)
 | 
					 | 
				
			||||||
                            return Ok(1u32)
 | 
					                            return Ok(1u32)
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if w.is_rare_item() {
 | 
					                        if w.is_rare_item() {
 | 
				
			||||||
                            // return Some(10u32)
 | 
					 | 
				
			||||||
                            return Ok(10u32)
 | 
					                            return Ok(10u32)
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        // other item factors?
 | 
					 | 
				
			||||||
                        //  Some((WeaponShopItem::from(w).price() / 8) as u32)
 | 
					 | 
				
			||||||
                        Ok((WeaponShopItem::from(w).price() / 8) as u32)
 | 
					                        Ok((WeaponShopItem::from(w).price() / 8) as u32)
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                    ItemDetail::Armor(a) => {
 | 
					                    ItemDetail::Armor(a) => {
 | 
				
			||||||
                        if a.is_rare_item() {
 | 
					                        if a.is_rare_item() {
 | 
				
			||||||
                            // return Some(10u32)
 | 
					 | 
				
			||||||
                            return Ok(10u32)
 | 
					                            return Ok(10u32)
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        // Some((ArmorShopItem::from(a).price() / 8) as u32)
 | 
					 | 
				
			||||||
                        return Ok((ArmorShopItem::from(a).price() / 8) as u32)
 | 
					                        return Ok((ArmorShopItem::from(a).price() / 8) as u32)
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                    ItemDetail::Shield(s) => {
 | 
					                    ItemDetail::Shield(s) => {
 | 
				
			||||||
                        if s.is_rare_item() {
 | 
					                        if s.is_rare_item() {
 | 
				
			||||||
                            // return Some(10u32)
 | 
					 | 
				
			||||||
                            return Ok(10u32)
 | 
					                            return Ok(10u32)
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        // Some((ArmorShopItem::from(s).price() / 8) as u32)
 | 
					 | 
				
			||||||
                        return Ok((ArmorShopItem::from(s).price() / 8) as u32)
 | 
					                        return Ok((ArmorShopItem::from(s).price() / 8) as u32)
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                    ItemDetail::Unit(u) => {
 | 
					                    ItemDetail::Unit(u) => {
 | 
				
			||||||
                        if u.is_rare_item() {
 | 
					                        if u.is_rare_item() {
 | 
				
			||||||
                            // return Some(10u32)
 | 
					 | 
				
			||||||
                            return Ok(10u32)
 | 
					                            return Ok(10u32)
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        // Some((ArmorShopItem::from(u).price() / 8) as u32)
 | 
					 | 
				
			||||||
                        return Ok((ArmorShopItem::from(u).price() / 8) as u32)
 | 
					                        return Ok((ArmorShopItem::from(u).price() / 8) as u32)
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                    ItemDetail::Tool(t) => {
 | 
					                    ItemDetail::Tool(t) => {
 | 
				
			||||||
                        if !matches!(t.tool, ToolType::PhotonDrop | ToolType::PhotonSphere | ToolType::PhotonCrystal) && t.is_rare_item() {
 | 
					                        if !matches!(t.tool, ToolType::PhotonDrop | ToolType::PhotonSphere | ToolType::PhotonCrystal) && t.is_rare_item() {
 | 
				
			||||||
                            // return Some(10u32)
 | 
					 | 
				
			||||||
                            return Ok(10u32)
 | 
					                            return Ok(10u32)
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        // Some((ToolShopItem::from(t).price() / 8) as u32)
 | 
					 | 
				
			||||||
                        return Ok((ToolShopItem::from(t).price() / 8) as u32)
 | 
					                        return Ok((ToolShopItem::from(t).price() / 8) as u32)
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                    ItemDetail::TechniqueDisk(d) => { // TODO: are all techs the same?
 | 
					                    ItemDetail::TechniqueDisk(d) => {
 | 
				
			||||||
                        // Some((ToolShopItem::from(d).price() / 8) as u32)
 | 
					 | 
				
			||||||
                        return Ok((ToolShopItem::from(d).price() / 8) as u32)
 | 
					                        return Ok((ToolShopItem::from(d).price() / 8) as u32)
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                    ItemDetail::Mag(_m) => { //TODO: error. mags are not sellable 
 | 
					                    ItemDetail::Mag(_m) => {
 | 
				
			||||||
                        // None
 | 
					 | 
				
			||||||
                        return Err(ItemManagerError::ItemNotSellable(self.clone()))
 | 
					                        return Err(ItemManagerError::ItemNotSellable(self.clone()))
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                    ItemDetail::ESWeapon(_e) => {
 | 
					                    ItemDetail::ESWeapon(_e) => {
 | 
				
			||||||
                        // Some(10u32) // TODO: check price
 | 
					 | 
				
			||||||
                        return Ok(10u32)
 | 
					                        return Ok(10u32)
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            // the number of stacked items sold is handled by the caller. this is just the price of 1
 | 
					            // the number of stacked items sold is handled by the caller. this is just the price of 1
 | 
				
			||||||
            InventoryItem::Stacked(stacked_item) => {
 | 
					            InventoryItem::Stacked(stacked_item) => {
 | 
				
			||||||
                // Some((ToolShopItem::from(&stacked_item.tool).price() / 8) as u32)
 | 
					 | 
				
			||||||
                return Ok((ToolShopItem::from(&stacked_item.tool).price() / 8) as u32)
 | 
					                return Ok((ToolShopItem::from(&stacked_item.tool).price() / 8) as u32)
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
@ -56,8 +56,9 @@ pub enum ItemManagerError {
 | 
				
			|||||||
    NoArmorEquipped,
 | 
					    NoArmorEquipped,
 | 
				
			||||||
    GatewayError(#[from] crate::entity::gateway::GatewayError),
 | 
					    GatewayError(#[from] crate::entity::gateway::GatewayError),
 | 
				
			||||||
    StackedItemError(Vec<ItemEntity>),
 | 
					    StackedItemError(Vec<ItemEntity>),
 | 
				
			||||||
    ItemNotSellable(InventoryItem), // TODO: capture what item was attempted to be sold
 | 
					    ItemNotSellable(InventoryItem),
 | 
				
			||||||
    WalletFull,
 | 
					    WalletFull,
 | 
				
			||||||
 | 
					    InvalidSale,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub struct ItemManager {
 | 
					pub struct ItemManager {
 | 
				
			||||||
@ -856,8 +857,7 @@ impl ItemManager {
 | 
				
			|||||||
        let inventory = self.character_inventory.get_mut(&character.id).ok_or(ItemManagerError::NoCharacter(character.id))?;
 | 
					        let inventory = self.character_inventory.get_mut(&character.id).ok_or(ItemManagerError::NoCharacter(character.id))?;
 | 
				
			||||||
        let sold_item_handle = inventory.get_item_handle_by_id(item_id).ok_or(ItemManagerError::NoSuchItemId(item_id))?;
 | 
					        let sold_item_handle = inventory.get_item_handle_by_id(item_id).ok_or(ItemManagerError::NoSuchItemId(item_id))?;
 | 
				
			||||||
        if let Some(item_sold) = sold_item_handle.item() {
 | 
					        if let Some(item_sold) = sold_item_handle.item() {
 | 
				
			||||||
            // if let Some(unit_price) = item_sold.get_sell_price() { // -> Option<u32> u32 = meseta, or None if error
 | 
					            let unit_price = item_sold.get_sell_price()?; {
 | 
				
			||||||
            let unit_price = item_sold.get_sell_price()?; { // -> Result<u32, ItemManagerError> // ItemMangerError::InvalidSale
 | 
					 | 
				
			||||||
                let total_sale = unit_price * amount as u32;
 | 
					                let total_sale = unit_price * amount as u32;
 | 
				
			||||||
                if character.meseta + total_sale <= 999999 {
 | 
					                if character.meseta + total_sale <= 999999 {
 | 
				
			||||||
                    character.meseta += total_sale;
 | 
					                    character.meseta += total_sale;
 | 
				
			||||||
@ -871,8 +871,7 @@ impl ItemManager {
 | 
				
			|||||||
                                Ordering::Less | Ordering::Equal => {
 | 
					                                Ordering::Less | Ordering::Equal => {
 | 
				
			||||||
                                    sold_item_handle.consume(amount)?;
 | 
					                                    sold_item_handle.consume(amount)?;
 | 
				
			||||||
                                },
 | 
					                                },
 | 
				
			||||||
                                // TODO: put a real error here
 | 
					                                Ordering::Greater => return Err(ItemManagerError::InvalidSale.into()),
 | 
				
			||||||
                                Ordering::Greater => {println!("i can't believe you've done this.");},
 | 
					 | 
				
			||||||
                            };
 | 
					                            };
 | 
				
			||||||
                        },
 | 
					                        },
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
@ -885,7 +884,6 @@ impl ItemManager {
 | 
				
			|||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            return Err(ItemManagerError::ItemIdNotInInventory(item_id).into())
 | 
					            return Err(ItemManagerError::ItemIdNotInInventory(item_id).into())
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        // TODO:  why did i put this
 | 
					 | 
				
			||||||
        Ok(())
 | 
					        Ok(())
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user