Merge branch 'release/1.8.0' of ssh://git.mnml.gg:40022/~/mnml into release/1.8.0
This commit is contained in:
commit
e1e7fed838
13
WORKLOG.md
13
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
|
||||
|
||||
|
||||
@ -230,6 +230,7 @@
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
text-align: center;
|
||||
font-size: 0.8em;
|
||||
svg {
|
||||
display: inline;
|
||||
height: 1em;
|
||||
|
||||
@ -153,7 +153,7 @@ class GameConstruct extends Component {
|
||||
}
|
||||
const effects = construct.effects.length
|
||||
? construct.effects.map(c =>
|
||||
<div
|
||||
<div
|
||||
key={c.effect}
|
||||
onMouseOver={e => hoverInfo(e, c)}
|
||||
onMouseOut={e => hoverInfo(e, null)}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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![],
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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![]);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user