global join better
This commit is contained in:
parent
61a2a7500b
commit
cf3dbaa6e9
@ -402,7 +402,7 @@ pub fn instance_join(params: InstanceJoinParams, tx: &mut Transaction, account:
|
|||||||
|
|
||||||
let mut player = Player::new(account.id, instance.id, cryps);
|
let mut player = Player::new(account.id, instance.id, cryps);
|
||||||
player.vbox.fill();
|
player.vbox.fill();
|
||||||
player_create(tx, &player, account)?;
|
let player = player_create(tx, player, account)?;
|
||||||
|
|
||||||
instance.add_player(player.clone());
|
instance.add_player(player.clone());
|
||||||
|
|
||||||
@ -475,7 +475,6 @@ pub fn instance_game_finished(tx: &mut Transaction, game: &Game, instance_id: Uu
|
|||||||
true => player.add_win(),
|
true => player.add_win(),
|
||||||
false => player.add_loss(),
|
false => player.add_loss(),
|
||||||
};
|
};
|
||||||
println!("{:?}", player);
|
|
||||||
player_update(tx, player, true)?;
|
player_update(tx, player, true)?;
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -94,7 +94,7 @@ pub fn player_get(tx: &mut Transaction, account_id: Uuid, instance_id: Uuid) ->
|
|||||||
return Ok(data);
|
return Ok(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn player_create(tx: &mut Transaction, player: &Player, account: &Account) -> Result<(), Error> {
|
pub fn player_create(tx: &mut Transaction, player: Player, account: &Account) -> Result<Player, Error> {
|
||||||
let player_bytes = to_vec(&player)?;
|
let player_bytes = to_vec(&player)?;
|
||||||
|
|
||||||
let query = "
|
let query = "
|
||||||
@ -110,7 +110,7 @@ pub fn player_create(tx: &mut Transaction, player: &Player, account: &Account) -
|
|||||||
|
|
||||||
println!("wrote player {:} joined instance: {:}", account.name, player.instance);
|
println!("wrote player {:} joined instance: {:}", account.name, player.instance);
|
||||||
|
|
||||||
return Ok(());
|
return Ok(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn player_update(tx: &mut Transaction, player: Player, ignore_phase: bool) -> Result<Player, Error> {
|
pub fn player_update(tx: &mut Transaction, player: Player, ignore_phase: bool) -> Result<Player, Error> {
|
||||||
@ -168,14 +168,18 @@ pub fn player_cryps_set(params: PlayerCrypsSetParams, tx: &mut Transaction, acco
|
|||||||
return Err(err_msg("team size is 3"));
|
return Err(err_msg("team size is 3"));
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut player = player_get(tx, account.id, Uuid::nil())?;
|
|
||||||
|
|
||||||
let cryps = params.cryp_ids
|
let cryps = params.cryp_ids
|
||||||
.iter()
|
.iter()
|
||||||
.map(|id| cryp_get(tx, *id, account.id))
|
.map(|id| cryp_get(tx, *id, account.id))
|
||||||
.collect::<Result<Vec<Cryp>, Error>>()?;
|
.collect::<Result<Vec<Cryp>, Error>>()?;
|
||||||
|
|
||||||
player.cryps = cryps;
|
match player_get(tx, account.id, Uuid::nil()) {
|
||||||
|
Ok(mut p) => {
|
||||||
player_update(tx, player, false)
|
p.cryps = cryps;
|
||||||
|
player_update(tx, p, false)
|
||||||
|
},
|
||||||
|
Err(_) => {
|
||||||
|
return player_create(tx, Player::new(account.id, Uuid::nil(), cryps), &account)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,7 +21,7 @@ use account::{Account, account_create, account_login, account_from_token, accoun
|
|||||||
use skill::{Skill};
|
use skill::{Skill};
|
||||||
// use zone::{Zone, zone_create, zone_join, zone_close};
|
// use zone::{Zone, zone_create, zone_join, zone_close};
|
||||||
use spec::{Spec};
|
use spec::{Spec};
|
||||||
use player::{player_state, player_create, player_cryps_set, Player};
|
use player::{player_state, player_cryps_set, Player};
|
||||||
use instance::{instance_join, instance_ready};
|
use instance::{instance_join, instance_ready};
|
||||||
use vbox::{vbox_accept, vbox_apply, vbox_discard, vbox_combine, vbox_drop};
|
use vbox::{vbox_accept, vbox_apply, vbox_discard, vbox_combine, vbox_drop};
|
||||||
|
|
||||||
@ -163,8 +163,6 @@ impl Rpc {
|
|||||||
let msg = from_slice::<AccountCreateMsg>(&data).or(Err(err_msg("invalid params")))?;
|
let msg = from_slice::<AccountCreateMsg>(&data).or(Err(err_msg("invalid params")))?;
|
||||||
|
|
||||||
let account = account_create(msg.params, tx)?;
|
let account = account_create(msg.params, tx)?;
|
||||||
let player = Player::new(account.id, Uuid::nil(), vec![]);
|
|
||||||
player_create(tx, &player, &account)?;
|
|
||||||
|
|
||||||
Ok(RpcResponse {
|
Ok(RpcResponse {
|
||||||
method: "account_create".to_string(),
|
method: "account_create".to_string(),
|
||||||
@ -198,9 +196,6 @@ impl Rpc {
|
|||||||
let name: String = iter::repeat(()).map(|()| rng.sample(Alphanumeric)).take(8).collect();
|
let name: String = iter::repeat(()).map(|()| rng.sample(Alphanumeric)).take(8).collect();
|
||||||
cryp_spawn(CrypSpawnParams { name }, tx, &account)?;
|
cryp_spawn(CrypSpawnParams { name }, tx, &account)?;
|
||||||
|
|
||||||
let player = Player::new(account.id, Uuid::nil(), vec![]);
|
|
||||||
player_create(tx, &player, &account)?;
|
|
||||||
|
|
||||||
let res = RpcResponse {
|
let res = RpcResponse {
|
||||||
method: "account_create".to_string(),
|
method: "account_create".to_string(),
|
||||||
params: RpcResult::Account(account),
|
params: RpcResult::Account(account),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user