diff --git a/server/WORKLOG.md b/server/WORKLOG.md index b6a7f6a4..f0e32ed4 100644 --- a/server/WORKLOG.md +++ b/server/WORKLOG.md @@ -9,11 +9,14 @@ # WORK WORK ## NOW -cost system for items - be able to reclaim skills / specs from cryp +be able to reclaim skills / specs from cryp combo specs randomise skill speed +scoreboard + +constants + round system for games join instance is pve? diff --git a/server/src/instance.rs b/server/src/instance.rs index bba1b5ed..da16a67e 100644 --- a/server/src/instance.rs +++ b/server/src/instance.rs @@ -58,7 +58,7 @@ impl Instance { self.players = iter::repeat_with(|| { let bot_id = Uuid::new_v4(); let cryps = instance_mobs(bot_id); - Player::new(bot_id, self.id, cryps).set_bot(true) + Player::new(bot_id, self.id, &bot_id.to_string(), cryps).set_bot(true) }) .take(15) .collect::>(); @@ -400,7 +400,7 @@ pub fn instance_join(params: InstanceJoinParams, tx: &mut Transaction, account: return Err(format_err!("incorrect team size. ({:})", 3)); } - let mut player = Player::new(account.id, instance.id, cryps); + let mut player = Player::new(account.id, instance.id, &account.name, cryps); player.vbox.fill(); let player = player_create(tx, player, account)?; @@ -515,7 +515,7 @@ mod tests { let player_id = Uuid::new_v4(); let cryps = instance_mobs(player_id); - let player = Player::new(player_id, instance.id, cryps).set_bot(true); + let player = Player::new(player_id, instance.id, &"test".to_string(), cryps).set_bot(true); instance.add_player(player); assert!(instance.can_start()); diff --git a/server/src/player.rs b/server/src/player.rs index c2efdb9d..898a8d3c 100644 --- a/server/src/player.rs +++ b/server/src/player.rs @@ -24,7 +24,7 @@ pub struct Player { pub id: Uuid, pub instance: Uuid, pub account: Uuid, - // name: String, + pub name: String, pub vbox: Vbox, pub score: Score, pub cryps: Vec, @@ -33,11 +33,12 @@ pub struct Player { } impl Player { - pub fn new(account: Uuid, instance: Uuid, cryps: Vec) -> Player { + pub fn new(account: Uuid, instance: Uuid, name: &String, cryps: Vec) -> Player { Player { id: Uuid::new_v4(), account, instance, + name: name.clone(), vbox: Vbox::new(account, instance), score: Score { wins: 0, losses: 0 }, cryps, @@ -179,7 +180,7 @@ pub fn player_cryps_set(params: PlayerCrypsSetParams, tx: &mut Transaction, acco player_update(tx, p, false) }, Err(_) => { - return player_create(tx, Player::new(account.id, Uuid::nil(), cryps), &account) + return player_create(tx, Player::new(account.id, Uuid::nil(), &account.name, cryps), &account) } } } diff --git a/server/src/vbox.rs b/server/src/vbox.rs index 01b8d6ac..733f3fa8 100644 --- a/server/src/vbox.rs +++ b/server/src/vbox.rs @@ -217,7 +217,7 @@ impl Vbox { instance: instance_id, free: vec![], bound: starting_items, - bits: 9, + bits: 18, }; vbox.fill(); @@ -426,8 +426,11 @@ impl Vbox { } } +const DISCARD_COST: u16 = 5; + pub fn vbox_discard(params: VboxDiscardParams, tx: &mut Transaction, account: &Account) -> Result { let mut player = player_get(tx, account.id, params.instance_id)?; + player.vbox.balance_sub(DISCARD_COST)?; player.vbox.fill(); return player_update(tx, player, false); }