Merge branch 'develop' of ssh://git.mnml.gg:40022/~/mnml into develop

This commit is contained in:
ntr 2019-11-09 10:54:00 +11:00
commit 99c1efc201
9 changed files with 69 additions and 294 deletions

View File

@ -1,7 +1,3 @@
# Change Log
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## [1.8.1] - 2019-11-07
### Fixed
@ -12,27 +8,28 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Background for text overlapping with avatars in game phase (mobile)
- Fixed issue where effect text would show when not highlighted
- Avatar size doesn't decrease as effects are applied (now overlap)
- Added back KO! event when a construct is knocked out
- Invert
Now reverses recharge into damage
- Now reverses recharge into damage
- Link
Reworked completely
Now stuns target for 1T with 1T CD
Deals 20/45/70% blue power multiplied by number of effects on target as blue damage
Applies stun before effect multiplier calculation
- Reworked completely
- Now stuns target for 1T with 1T CD
- Deals 20/45/70% blue power multiplied by number of effects on target as blue damage
- Applies stun before effect multiplier calculation
- Restrict
Changed cooldown from 2T -> 1T
Duration now 2T at all levels
- Changed cooldown from 2T -> 1T
- Duration now 2T at all levels
- Ruin
Cooldown now 2T at all levels (down from 3T)
Now deals damage to each target (40/70/100)%
- Cooldown now 2T at all levels (down from 3T)
- Now deals damage to each target (40/70/100)%
- Silence
Changed cooldown from 2T -> 1T
Duration now 2T at all levels
- Changed cooldown from 2T -> 1T
- Duration now 2T at all levels
## [1.8.0] - 2019-11-06
@ -61,7 +58,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Game constructs and animations are much larger in mobile view
- Amplify
Now increases green power
- Now increases green power
- Absorb
- Reduced duration and cooldown from 2T -> 1T (Absorption duration unchanged)
@ -69,13 +66,13 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Now recharges blue life based on 95 / 120 / 155 blue power
- Banish
Reduced cooldown to 1T
- Reduced cooldown to 1T
- Decay
Removed cooldown
- Removed cooldown
- Haste / Hybrid
Fixed issue when hybridblast and hastestrike wouldn't trigger from upgraded + skills
- Fixed issue when hybridblast and hastestrike wouldn't trigger from upgraded + skills
- Intercept
- Reduced duration to 1T down from 2T
@ -104,7 +101,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Made general performance improvements
- Now has default tutorial text for the first round (tells the player to select skills and then the targets)
- Moved the login page demo to a new info tab, increased the speed of demo and it now creates random combos
- Moved the login page demo to a new info tab
- Increased the speed of demo and it now creates random combos
- Banish
- Cooldown reduced to 2T (was 3T)
@ -247,245 +245,4 @@ We've updated the UI during the vbox / buy phase to give a better indication of
* You can no longer select invalid combinations.
* Controls
* Abandon button now asks for confirmation.
## [1.1.5] - 2019-10-10
### Changed
`Recharge` Skill multiplier reduced 85/130/200 -> 70/110/170
`Absorption` Skill duration reduced 5/7/9 -> 3/5/7
## [1.1.4 2019-09-18]
### Changed
Removed self targetting, all skills can be used on any target
`Reflect` No cooldown, 1T duration
`Purify` No cooldown
`Recharge` No cooldown
`Banish`
Now deals 40 / 75 / 125% target red / blue life before applying banish debuff
Constant 2T duration at all levels
Constant 3T cooldown at all levels
`Link` reworked ->
Stuns caster for 3/2/1T
If target has higher green life than caster:
Deal blue damage to target equal to difference between green life
Heal with green damage to source equal to difference between green life
`Counter` effect no longer applies immunities
Counter no cooldown
Counter applies for 1T
Counter skill now applies block at 40% / 60% / 80% reduction for 1T
Counter no longer recharges red life
`Electrify`
No Cooldown
Duration -> 1T
Electrocute duration now 2/3/4T
`Sustain`
Now has 1T cooldown at all levels
Has 1T duration at all levels
Now recharges red life to target (120 / 150 / 230)%
## [0.1.3 2019-??-??]
### Added
Added `Buff` as a skill
Increases Speed and RedDamage by 25%
Duration 2T
No CD
### Changed
`Sustain` now grants immunity to disables.
## [0.1.2] - 2019-05-07
### Added
New skill `Link `
Combines - Buff + BB
Links targets together so dmg taken is split
Recharge 140% source blue damage as blue life to target
New skill `Hybrid`
Combines - Buff + GB
New buff that does the following -
Increase target green damage by 50%
Blue attacks do an additional blast equal to 25% source green damage
### Fixed
- Ruin sends a skill event so ruin only casts once, followed by debuffs
- Client side skip for source strangling effect straight to POST_SKILL
### Changed
- Removed Empower (Buff + RR) -> combined effect with amplify
- Skill Slow removed
- Debuff is now a usable skill `(add buff as a usable skill also)`
Applies slow effect previously applied by skill Slow
Slow effect lasts 3T
Cooldown 1T
- Amplify
Changed to Buff + RB (was Buff + BB)
Inc red and blue multiplier changed 200% -> 150%
Increases both red and blue power.
- Attack
Multiplier changed 100% -> 80%
- Blast
Multiplier changed 130% -> 110%
- Chaos
Base Multiplier changed 50% -> 40%
RNG range changed from (0 - 20%) -> (0 - 30%)
Same dmg range but more RNG
- Curse
Inc red and blue multiplier changed 200% -> 150%
`(More reworks soon to make this skill fun)`
- Haste
Changed to Buff + RG (was Buff + RB)
Buff causes target to deal an extra attack when using red attack base skills (strike / slay / chaos)
Extra attack does 25% source speed as red damage
Cooldown increased to 2T
Speed bonus reduced 200% -> 150%
- Heal
Changed multiplier 120% -> 130%
- Counter
Changed duration 1T -> 2T
Changed cooldown 0T -> 2T
Now recharges 110% red damage as red life
CounterAttack multiplier reduced 100% -> 70%
- Siphon
Multiplier changed 30% -> 40%
- Strangle
No longer provides immunity to source or target
Damage multiplier for strangle tick changed 30% -> 65%
- Strike
Change multipliers T1/T2/T3 (110/130/150 -> 90/110/130)
- Intercept
Changed to Buff + RR (was Buff + RG)
Now recharges 80% source red damage as red life to target
- Break
Stun duration reduced from 2T -> 1T
Vulnerable dmg bonus reduced 200% -> 150%
- Triage
Multiplier changed 65% -> 75%
## [Unreleased]
## [0.1.1] - 2019-05-03
>>>>>>> rebalance
### Added
Event::Skill
needed to convey the use of skill which is followed by other events
used for skill Purify to show that it is used and then followed by removal and other events
New Skill `Sleep`
Combined using Stun + GG
Stuns target for 3T (might need to be 4T)
Deals 240% green damage (heal)
Concept - high duration stun with the drawback of a big heal on the target
Base cooldown 3T
(Could be played aggressively or defensively)
### Fixed
### Changed
Switch purify with reflect
- Purify
Now GG + block (was GB + block)
Now applies a small heal 45% multiplier green damage (power) for each debuff removed
- Reflect
Now GB + block (was GG + block)
Recharges blue life at 45% blue damage
- Server function recharge changed to take skill, red amount and blue amount as inputs
- Recharge Skill reworked
No longer restores full Red and Blue life
Now restores Red life and Blue life based on respective red and blue damage
Recharge value calculated at 85% multiplier with red and blue damage
Silence
No longer Stun + GB (already exists as debuff BB)
Now also deals damage amount of 55% base blue damage
This damage amount does 45% more damage per blue skill blocked
Maximum = (0.55)(1.35)*base_blue_damage
Cooldown changed 1T -> 2T
Debuff duration increased 2T -> 3T
Restrict
Now also deals damage amount of 40% base blue damage
This damage amount does 45% more damage per red skill blocked
Maximum = (0.40)(1.35)*base_red_damage
Cooldown changed 1T -> 2T
Debuff duration increased 2T -> 3T
Switch sustain with intercept
Sustain now GR + Block (was GR + Buff)
Intercept now GR + Buff
No longer self-target only
Hex is now Stun + GB (was Stun + RB)
Banish is now Stun + RB (was Stun + RG) for rng theme
Break is now Stun + RG (was Stun + GG)
- Better fit as it applies inc Red taken debuff (vulnerability)
## [0.1.0] - 2019-05-02
### Added
New skill `Chaos`
- 50% base red & blue with an additional rng 20% blue & red
- Combo'd with Attack + Red + Blue
New skill `Slay`
- 70% base red, heals (green damage) for equivalent dmg dealt
- Combo'd with Attack + Red + Green
New effect `Wither`
- Reduces green damage taken by 50%
### Fixed
- Siphon deals damage before applying heal
- Changed tests to incorporate skill damage multipliers
### Changed
- Changed Decay, Siphon and Purify vbox items
`Decay`
- 1 blue + 1 green + debuff
- now also applies new debuff `Wither`
- Cooldown increased 0T -> 1T
`Siphon`
- 1 blue + 1 green + attack
- Cooldown reduced 1T -> 0T
`Purify` 1 blue + 1 green + block
- Changed skill damage multipliers
`Blast` 100% -> 130%
`ElectrocuteTick` 100% -> 80%
`Decay` 50% -> 25%
`Heal` 100% -> 120%
`SiphonTick` 100% -> 30%
`StrangleTick` 100% -> 30%
`Strike` 100% -> 110%
`TriageTick` 100% -> 65%
* Abandon button now asks for confirmation.

View File

@ -181,3 +181,12 @@ button {
color: @blue;
}
}
@keyframes target-ko {
0% {
opacity: 100%;
}
100% {
opacity: 20%;
}
}

View File

@ -10,10 +10,6 @@
// "opponent"
// "target "
// "player ";
.skill-description {
font-size: 75%;
}
}
.game .team, .faceoff .team {
@ -101,7 +97,7 @@
justify-items: center;
grid-template-columns: 1fr;
grid-template-rows: 1fr 2fr;
grid-template-rows: minmax(min-content, 1fr) min-content;
grid-template-areas:
"left"
"right";
@ -205,6 +201,10 @@
font-size: 100%;
}
&.ko-transition {
animation: target-ko 1s ease-in-out 0s 1;
}
&.ko {
animation: none;
opacity: 0.20;

View File

@ -40,7 +40,7 @@
}
svg {
height: 1em;
height: 1.5em;
}
}
@ -54,6 +54,13 @@
font-size: 1em;
}
.skill-description {
font-size: 0.8em;
svg {
height: 1em;
}
}
.player {
.game-construct {
grid-template-areas:
@ -85,7 +92,7 @@
}
.avatar {
bottom: 0px;
top: 3em;
}
}
}

View File

@ -111,7 +111,7 @@ function getText(resolution) {
function generatePostSkill() {
const [type, event] = resolution.event;
if (type === 'Ko') {
return { text: 'KO!', css: 'ko' };
return { text: 'KO!', css: 'ko-transition' };
}
if (type === 'Disable') {

View File

@ -117,7 +117,8 @@ class GameConstruct extends Component {
setGameEffectInfo,
} = this.props;
const ko = construct.green_life.value === 0 ? 'ko' : '';
const koEvent = animText ? animText.text === 'KO!' && animText.constructId === construct.id : false;
const ko = construct.green_life.value === 0 && !koEvent ? 'ko' : '';
const classes = eventClasses(animating, animFocus, construct, animText);
const stats = ['RedLife', 'GreenLife', 'BlueLife'].map((s, j) => (
@ -146,11 +147,9 @@ class GameConstruct extends Component {
const speed = <span> Speed {shapes.SpeedStat()} multiplier {fullInfo.speed * 4}% </span>;
return (
<div class="skill-description">
<span>
<h2> {gameSkillInfo.skill} </h2>
{infoDescription}
{speed}
</span>
<h2><span> {gameSkillInfo.skill} </span></h2>
<span>{infoDescription} </span>
{speed}
</div>);
}
const effects = construct.effects.length

View File

@ -554,7 +554,9 @@ impl Construct {
// Should red type immunity block recharge???
if let Some(immunity) = self.immune(skill) {
events.push(Event::Immunity { skill, immunity });
if !self.is_ko() {
events.push(Event::Immunity { skill, immunity });
}
return events;
}
@ -642,10 +644,9 @@ impl Construct {
pub fn deal_green_damage(&mut self, skill: Skill, amount: u64) -> Vec<Event> {
let mut events = vec![];
if let Some(immunity) = self.immune(skill) {
events.push(Event::Immunity {
immunity,
skill,
});
if !self.is_ko() {
events.push(Event::Immunity { skill, immunity });
}
return events;
}
@ -696,10 +697,9 @@ impl Construct {
let mut events = vec![];
if let Some(immunity) = self.immune(skill) {
events.push(Event::Immunity {
skill,
immunity,
});
if !self.is_ko() {
events.push(Event::Immunity { skill, immunity });
}
return events;
}
@ -769,10 +769,9 @@ impl Construct {
let mut events = vec![];
if let Some(immunity) = self.immune(skill) {
events.push(Event::Immunity {
skill,
immunity,
});
if !self.is_ko() {
events.push(Event::Immunity { skill, immunity });
}
return events;
}

View File

@ -469,6 +469,14 @@ impl Game {
let mut resolutions = resolution_steps(&cast, &mut self);
r_animation_ms = resolutions.iter().fold(r_animation_ms, |acc, r| acc + r.clone().get_delay());
// the cast itself goes into this temp vec to handle cooldowns
// if theres no resolution events, the skill didn't trigger (disable etc)
if resolutions.len() > 0 {
casts.push(cast);
}
self.resolved.append(&mut resolutions);
// while let Some(resolution) = resolutions.pop() {
@ -477,10 +485,6 @@ impl Game {
// self.resolved.push(resolution);
// }
// the cast itself goes into this temp vec
// to handle cooldowns
casts.push(cast);
// sort the stack again in case speeds have changed
self.stack_sort_speed();
};

View File

@ -353,8 +353,8 @@ fn post_resolve(_skill: Skill, game: &mut Game, mut resolutions: Resolutions) ->
};
if target.is_ko() {
// resolutions.push(Resolution::new(&source, &target).event(Event::Ko()).stages(EventStages::PostOnly));
target.effects.clear();
resolutions.push(Resolution::new(&source, &target).event(Event::Ko()).stages(EventStages::PostOnly));
}
game.update_construct(&mut source);