fix vbox not recalculating on spec remove
This commit is contained in:
parent
b664396ddf
commit
13cd21c925
@ -72,7 +72,7 @@ function InstanceComponent(args) {
|
||||
|
||||
if (!instance) return <div>...</div>;
|
||||
|
||||
const cryps = instance.cryps.map(c => Cryp(c, sendVboxApply, setInfo));
|
||||
const cryps = instance.cryps.map((c, i) => Cryp(c, sendVboxApply, setInfo));
|
||||
|
||||
return (
|
||||
<main className="instance" >
|
||||
|
||||
@ -54,6 +54,8 @@ function registerEvents(store) {
|
||||
}
|
||||
|
||||
function setPlayer(v) {
|
||||
const { instance } = store.getState();
|
||||
console.log(instance === v);
|
||||
return store.dispatch(actions.setInstance(v));
|
||||
}
|
||||
|
||||
|
||||
@ -44,7 +44,7 @@ const defaultInstance = null;
|
||||
function instanceReducer(state = defaultInstance, action) {
|
||||
switch (action.type) {
|
||||
case actions.SET_INSTANCE:
|
||||
return action.value;
|
||||
return Object.assign({}, action.value);
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
|
||||
@ -638,6 +638,20 @@ pub fn vbox_unequip(params: VboxUnequipParams, tx: &mut Transaction, account: &A
|
||||
None => return Err(err_msg("var has no effect on cryps")),
|
||||
}
|
||||
|
||||
// now the var has been applied
|
||||
// recalculate the stats of the whole team
|
||||
let team_colours = player.cryps.iter().fold(Colours::new(), |tc, c| {
|
||||
Colours {
|
||||
red: tc.red + c.colours.red,
|
||||
green: tc.green + c.colours.green,
|
||||
blue: tc.blue + c.colours.blue
|
||||
}
|
||||
});
|
||||
|
||||
for cryp in player.cryps.iter_mut() {
|
||||
cryp.apply_modifiers(&team_colours);
|
||||
}
|
||||
|
||||
player.vbox.bound.push(params.target);
|
||||
return player_update(tx, player, false);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user