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![]);