unequip specs
This commit is contained in:
+1
-1
@@ -660,7 +660,7 @@ struct VboxUnequipMsg {
|
||||
pub struct VboxUnequipParams {
|
||||
pub instance_id: Uuid,
|
||||
pub cryp_id: Uuid,
|
||||
pub var: Var,
|
||||
pub target: Var,
|
||||
}
|
||||
|
||||
#[derive(Debug,Clone,Serialize,Deserialize)]
|
||||
|
||||
+6
-4
@@ -493,21 +493,23 @@ pub fn vbox_unequip(params: VboxUnequipParams, tx: &mut Transaction, account: &A
|
||||
return Err(err_msg("too many vars bound"));
|
||||
}
|
||||
|
||||
match params.var.effect() {
|
||||
println!("{:?}", params);
|
||||
|
||||
match params.target.effect() {
|
||||
Some(VarEffect::Skill) => {
|
||||
let skill = params.var.into_skill().ok_or(format_err!("var {:?} has no associated skill", params.var))?;
|
||||
let skill = params.target.into_skill().ok_or(format_err!("var {:?} has no associated skill", params.target))?;
|
||||
let cryp = player.cryp_get(params.cryp_id)?;
|
||||
cryp.forget(skill)?;
|
||||
},
|
||||
Some(VarEffect::Spec) => {
|
||||
let spec = params.var.into_spec().ok_or(format_err!("var {:?} has no associated spec", params.var))?;
|
||||
let spec = params.target.into_spec().ok_or(format_err!("var {:?} has no associated spec", params.target))?;
|
||||
let cryp = player.cryp_get(params.cryp_id)?;
|
||||
cryp.spec_remove(spec)?;
|
||||
},
|
||||
None => return Err(err_msg("var has no effect on cryps")),
|
||||
}
|
||||
|
||||
player.vbox.bound.push(params.var);
|
||||
player.vbox.bound.push(params.target);
|
||||
return player_update(tx, player, false);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user