Merge branch 'develop' of ssh://git.mnml.gg:40022/~/mnml into develop
This commit is contained in:
commit
99c1efc201
281
CHANGELOG.md
281
CHANGELOG.md
@ -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.
|
||||
@ -181,3 +181,12 @@ button {
|
||||
color: @blue;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes target-ko {
|
||||
0% {
|
||||
opacity: 100%;
|
||||
}
|
||||
100% {
|
||||
opacity: 20%;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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') {
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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();
|
||||
};
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user