diff --git a/WORKLOG.md b/WORKLOG.md index 8b85f721..7ecaec13 100644 --- a/WORKLOG.md +++ b/WORKLOG.md @@ -6,17 +6,6 @@ * can't reset password without knowing password =\ * ws gzip encoding -* mobile - - force to landscape view and try make everything fit - - OR - - 2 pages vbox / equip - - vbox page as current with equip button at bottom - - equip page with inventory and all 3 construct avatars - - click one of the avatars to expand out skill / spec slots - - show the info pane at the bottom or as an overlay - - * mobile info page * Invert recharge @@ -38,8 +27,6 @@ - Strike + SpeedRR -> StrikeSpeed (strike has Y% more speed) - Strike + LifeRR -> StrikeLife (Strike recharges X% of damage as red life) -* move item from one construct to another - * ACP * essential diff --git a/client/assets/styles/game.less b/client/assets/styles/game.less index 6927b36a..59b6cf32 100644 --- a/client/assets/styles/game.less +++ b/client/assets/styles/game.less @@ -230,6 +230,7 @@ padding-left: 1em; padding-right: 1em; text-align: center; + font-size: 0.8em; svg { display: inline; height: 1em; diff --git a/client/src/components/game.construct.jsx b/client/src/components/game.construct.jsx index 75a1677d..b448ecec 100644 --- a/client/src/components/game.construct.jsx +++ b/client/src/components/game.construct.jsx @@ -153,7 +153,7 @@ class GameConstruct extends Component { } const effects = construct.effects.length ? construct.effects.map(c => -
hoverInfo(e, c)} onMouseOut={e => hoverInfo(e, null)} diff --git a/client/src/events.jsx b/client/src/events.jsx index 964074de..0d9c88fa 100644 --- a/client/src/events.jsx +++ b/client/src/events.jsx @@ -224,7 +224,9 @@ function registerEvents(store) { if (v.phase === 'Finished') { ws.sendAccountInstances(); } - if (localStorage.getItem('tutorial-complete')) { + + // instance.mobile.less hides info at @media 1000 + if (localStorage.getItem('tutorial-complete') || window.innerWidth <= 1100) { store.dispatch(actions.setTutorial(null)); } else if (v.time_control === 'Practice' && v.rounds.length === 1 && tutorial) { tutorialVbox(player, store, tutorial); diff --git a/server/src/construct.rs b/server/src/construct.rs index 325e6d5e..55a971f1 100644 --- a/server/src/construct.rs +++ b/server/src/construct.rs @@ -220,11 +220,11 @@ impl Construct { account: id, img: Uuid::new_v4(), red_power: ConstructStat { base: 320, value: 320, max: 320, stat: Stat::RedPower }, - red_life: ConstructStat { base: 0, value: 0, max: 0, stat: Stat::RedLife }, + red_life: ConstructStat { base: 125, value: 125, max: 125, stat: Stat::RedLife }, blue_power: ConstructStat { base: 320, value: 320, max: 320, stat: Stat::BluePower }, - blue_life: ConstructStat { base: 0, value: 0, max: 0, stat: Stat::BlueLife }, + blue_life: ConstructStat { base: 125, value: 125, max: 125, stat: Stat::BlueLife }, green_power: ConstructStat { base: 300, value: 300, max: 300, stat: Stat::GreenPower }, - green_life: ConstructStat { base: 950, value: 950, max: 950, stat: Stat::GreenLife }, + green_life: ConstructStat { base: 800, value: 800, max: 800, stat: Stat::GreenLife }, speed: ConstructStat { base: 100, value: 100, max: 100, stat: Stat::Speed }, // evasion: ConstructStat { base: 0, value: 0, max: 0, stat: Stat::Evasion }, skills: vec![], diff --git a/server/src/game.rs b/server/src/game.rs index 12a175b4..e484c286 100644 --- a/server/src/game.rs +++ b/server/src/game.rs @@ -1229,7 +1229,7 @@ mod tests { assert!(game.player_by_id(x_player.id).unwrap().constructs[0].is_stunned() == false); // riposte assert_eq!(game.player_by_id(y_player.id).unwrap().constructs[0].green_life(), ( - y_construct.green_life() - x_construct.red_power().pct(Skill::CounterAttack.multiplier()))); + y_construct.green_life() + y_construct.red_life() - x_construct.red_power().pct(Skill::CounterAttack.multiplier()))); } #[test] diff --git a/server/src/skill.rs b/server/src/skill.rs index ceccf0f8..849a4e0c 100644 --- a/server/src/skill.rs +++ b/server/src/skill.rs @@ -993,9 +993,9 @@ impl Skill { meta: Some(EffectMeta::Skill(Skill::BashPlusPlus)), tick: None}], Skill::Stun => vec![ConstructEffect {effect: Effect::Stun, duration: 2, meta: None, tick: None}], - Skill::Intercept => vec![ConstructEffect {effect: Effect::Intercept, duration: 2, meta: None, tick: None}], - Skill::InterceptPlus => vec![ConstructEffect {effect: Effect::Intercept, duration: 3, meta: None, tick: None}], - Skill::InterceptPlusPlus => vec![ConstructEffect {effect: Effect::Intercept, duration: 4, meta: None, tick: None}], + Skill::Intercept => vec![ConstructEffect {effect: Effect::Intercept, duration: 1, meta: None, tick: None}], + Skill::InterceptPlus => vec![ConstructEffect {effect: Effect::Intercept, duration: 1, meta: None, tick: None}], + Skill::InterceptPlusPlus => vec![ConstructEffect {effect: Effect::Intercept, duration: 1, meta: None, tick: None}], Skill::Triage => vec![ConstructEffect {effect: Effect::Triage, duration: 2, meta: Some(EffectMeta::Skill(Skill::TriageTick)), tick: None}], @@ -1121,9 +1121,9 @@ impl Skill { Skill::SustainPlus | Skill::SustainPlusPlus => Some(1), - Skill::Intercept=> Some(2), - Skill::InterceptPlus => Some(2), - Skill::InterceptPlusPlus => Some(2), + Skill::Intercept=> Some(1), + Skill::InterceptPlus => Some(1), + Skill::InterceptPlusPlus => Some(1), Skill::Electrify | Skill::ElectrifyPlus | @@ -1794,13 +1794,19 @@ fn link(source: &mut Construct, target: &mut Construct, mut results: Resolutions None => 0 }; - target.deal_blue_damage(skill, swap) - .into_iter() - .for_each(|e| results.push(Resolution::new(source, target).event(e))); - - source.deal_green_damage(skill, swap) - .into_iter() - .for_each(|e| results.push(Resolution::new(source, source).event(e).stages(EventStages::PostOnly))); + let link_events = target.deal_blue_damage(skill, swap); + for e in link_events { + match e { + Event::Damage { amount, mitigation: _, colour: _, skill: _ } => { + results.push(Resolution::new(source, target).event(e)); + let heal = source.deal_green_damage(skill, amount); + for h in heal { + results.push(Resolution::new(source, source).event(h).stages(EventStages::PostOnly)); + }; + }, + _ => results.push(Resolution::new(source, target).event(e)), + } + } results.push(Resolution::new(source, source) .event(source.add_effect(skill, skill.effect()[0])).stages(EventStages::PostOnly)); @@ -2076,6 +2082,7 @@ mod tests { x.blue_power.force(256); x.green_power.force(220); x.green_life.force(1024); + y.blue_life.force(0); x.green_life.reduce(512); let mut results = resolve(Skill::Siphon, &mut x, &mut y, vec![]);