Cleanup item usage

This commit is contained in:
Ethan O'Brien 2024-05-24 20:43:34 -05:00
parent 09fbf027b1
commit 5097efb460
5 changed files with 32 additions and 14 deletions

View file

@ -12,7 +12,11 @@ fn do_reinforce(user: &mut JsonValue, body: &JsonValue, exp_id: &str, money_mult
let mut money: i64 = 0;
for (_j, data2) in materials.members().enumerate() {
items::use_item(data2["master_item_id"].as_i64().unwrap(), data2["amount"].as_i64().unwrap(), user);
items::use_item(&object!{
value: data2["master_item_id"].as_i64().unwrap(),
amount: 1,
consumeType: 4
}, data2["amount"].as_i64().unwrap(), user);
let item = &databases::ITEM_INFO[data2["master_item_id"].to_string()];
if evolve {
card["evolve"] = array![{type: 2,count: 1}];

View file

@ -17,11 +17,7 @@ pub fn exchange_post(req: HttpRequest, body: String) -> Option<JsonValue> {
let item = &databases::EXCHANGE_LIST[body["master_exchange_item_id"].to_string()];
if item["consumeType"].as_i32().unwrap() == 4 {
items::use_item(item["value"].as_i64().unwrap(), item["amount"].as_i64().unwrap() * body["count"].as_i64().unwrap(), &mut user);
} else {
println!("Unknown consume type {}", item["consumeType"]);
}
items::use_item(item, body["count"].as_i64().unwrap(), &mut user);
let mut gift = databases::EXCHANGE_REWARD[item["masterExchangeItemRewardId"].to_string()].clone();
gift["reward_type"] = gift["type"].clone();

View file

@ -77,6 +77,16 @@ pub fn give_item(master_item_id: i64, amount: i64, user: &mut JsonValue) -> bool
false
}
pub fn use_item(item: &JsonValue, multiplier: i64, user: &mut JsonValue) {
if item["consumeType"].as_i32().unwrap() == 1 {
remove_gems(user, item["amount"].as_i64().unwrap());
} else if item["consumeType"] == 4 {
use_itemm(item["value"].as_i64().unwrap(), item["amount"].as_i64().unwrap() * multiplier, user);
} else {
println!("Unknown consume type {}", item["consumeType"]);
}
}
pub fn give_gift(data: &JsonValue, user: &mut JsonValue, missions: &mut JsonValue, clear_missions: &mut JsonValue) -> bool {
if data.is_empty() {
return false;
@ -141,7 +151,7 @@ pub fn give_points(master_item_id: i64, amount: i64, user: &mut JsonValue, missi
false
}
pub fn use_item(master_item_id: i64, amount: i64, user: &mut JsonValue) {
pub fn use_itemm(master_item_id: i64, amount: i64, user: &mut JsonValue) {
for (_j, data) in user["item_list"].members_mut().enumerate() {
if data["master_item_id"].as_i64().unwrap() == master_item_id {
if data["amount"].as_i64().unwrap() >= amount {
@ -435,7 +445,11 @@ pub fn use_item_req(req: HttpRequest, body: String) -> Option<JsonValue> {
} else {
println!("Use item not implemented for effect type {}", item["effectType"]);
}
use_item(body["id"].as_i64().unwrap(), amount, &mut user);
use_item(&object!{
value: body["id"].as_i64().unwrap(),
amount: 1,
consumeType: 4
}, amount, &mut user);
userdata::save_acc(&key, user.clone());

View file

@ -441,7 +441,11 @@ fn live_end(req: &HttpRequest, body: &String, skipped: bool) -> JsonValue {
let live;
if skipped {
items::use_item(21000001, body["live_boost"].as_i64().unwrap(), &mut user);
items::use_item(&object!{
value: 21000001,
amount: 1,
consumeType: 4
}, body["live_boost"].as_i64().unwrap(), &mut user);
live = update_live_data(&mut user, &object!{
master_live_id: body["master_live_id"].clone(),
level: 0,

View file

@ -111,11 +111,11 @@ pub fn lottery_post(req: HttpRequest, body: String) -> Option<JsonValue> {
let lottery_id = body["master_lottery_id"].as_i64().unwrap();
let price = databases::PRICE[lottery_id.to_string()][body["master_lottery_price_number"].to_string()].clone();
if price["consumeType"].as_i32().unwrap() == 1 {
items::remove_gems(&mut user, price["price"].as_i64().unwrap());
} else if price["consumeType"].as_i32().unwrap() == 4 {
items::use_item(price["masterItemId"].as_i64().unwrap(), price["price"].as_i64().unwrap(), &mut user);
}
items::use_item(&object!{
value: price["masterItemId"].clone(),
amount: price["price"].clone(),
consumeType: price["consumeType"].clone()
}, 1, &mut user);
let cardstogive = get_random_cards(lottery_id, price["count"].as_usize().unwrap());