scatter
This commit is contained in:
parent
3f974cb0fa
commit
723201b74c
@ -80,7 +80,7 @@ RB - Hex
|
|||||||
|
|
||||||
RR - Empower
|
RR - Empower
|
||||||
GR - Triage
|
GR - Triage
|
||||||
BB - Absorbtion
|
BB - Absorb
|
||||||
RG - Sustain
|
RG - Sustain
|
||||||
GB - Amplify
|
GB - Amplify
|
||||||
RB - Haste
|
RB - Haste
|
||||||
|
|||||||
@ -16,6 +16,7 @@
|
|||||||
</head>
|
</head>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<noscript>js is required to run mnml</noscript>
|
||||||
</body>
|
</body>
|
||||||
<script src="https://js.stripe.com/v3/"></script>
|
<script src="https://js.stripe.com/v3/"></script>
|
||||||
<script src="./index.js"></script>
|
<script src="./index.js"></script>
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "parcel index.html --host 0.0.0.0 --port 40080 --no-source-maps",
|
"start": "parcel index.html --host 0.0.0.0 --port 40080 --no-source-maps",
|
||||||
"anims": "parcel animations.html --host 0.0.0.0 --port 40080 --no-source-maps --no-hmr",
|
"anims": "parcel animations.html --host 0.0.0.0 --port 40080 --no-source-maps",
|
||||||
"build": "rm -rf dist && parcel build index.html && cp -r assets/molecules/ dist/",
|
"build": "rm -rf dist && parcel build index.html && cp -r assets/molecules/ dist/",
|
||||||
"scss": "node-sass --watch assets/scss -o assets/styles",
|
"scss": "node-sass --watch assets/scss -o assets/styles",
|
||||||
"lint": "eslint --fix --ext .jsx src/",
|
"lint": "eslint --fix --ext .jsx src/",
|
||||||
|
|||||||
@ -74,12 +74,13 @@ const SKILLS = [
|
|||||||
'Buff',
|
'Buff',
|
||||||
'Block',
|
'Block',
|
||||||
'Stun',
|
'Stun',
|
||||||
|
'AbsorbI',
|
||||||
|
'AbsorptionI',
|
||||||
'AmplifyI',
|
'AmplifyI',
|
||||||
'BanishI',
|
'BanishI',
|
||||||
'BashI',
|
'BashI',
|
||||||
'BlastI',
|
'BlastI',
|
||||||
'ChaosI',
|
'ChaosI',
|
||||||
'SustainI',
|
|
||||||
'CounterAttackI',
|
'CounterAttackI',
|
||||||
'CounterI',
|
'CounterI',
|
||||||
'CurseI',
|
'CurseI',
|
||||||
@ -90,10 +91,8 @@ const SKILLS = [
|
|||||||
'ElectrocuteTickI',
|
'ElectrocuteTickI',
|
||||||
'HasteI',
|
'HasteI',
|
||||||
'HasteStrike',
|
'HasteStrike',
|
||||||
'AbsorbI',
|
|
||||||
'HealI',
|
'HealI',
|
||||||
'HexI',
|
'HexI',
|
||||||
'AbsorbtionI',
|
|
||||||
'HybridBlast',
|
'HybridBlast',
|
||||||
'HybridI',
|
'HybridI',
|
||||||
'InterceptI',
|
'InterceptI',
|
||||||
@ -102,6 +101,7 @@ const SKILLS = [
|
|||||||
'PurifyI',
|
'PurifyI',
|
||||||
'RechargeI',
|
'RechargeI',
|
||||||
'ReflectI',
|
'ReflectI',
|
||||||
|
'RestrictI',
|
||||||
'RuinI',
|
'RuinI',
|
||||||
'ScatterI',
|
'ScatterI',
|
||||||
'SilenceI',
|
'SilenceI',
|
||||||
@ -109,8 +109,8 @@ const SKILLS = [
|
|||||||
'SiphonTickI',
|
'SiphonTickI',
|
||||||
'SlayI',
|
'SlayI',
|
||||||
'SleepI',
|
'SleepI',
|
||||||
'RestrictI',
|
|
||||||
'StrikeI',
|
'StrikeI',
|
||||||
|
'SustainI',
|
||||||
'ThrowI',
|
'ThrowI',
|
||||||
'TriageI',
|
'TriageI',
|
||||||
'TriageTickI',
|
'TriageTickI',
|
||||||
|
|||||||
@ -4,6 +4,7 @@ const anime = require('animejs').default;
|
|||||||
const AttackCharge = require('./anims/attack.charge');
|
const AttackCharge = require('./anims/attack.charge');
|
||||||
|
|
||||||
const Amplify = require('./anims/amplify');
|
const Amplify = require('./anims/amplify');
|
||||||
|
const Absorb = require('./anims/absorb');
|
||||||
const Banish = require('./anims/banish');
|
const Banish = require('./anims/banish');
|
||||||
const Bash = require('./anims/bash');
|
const Bash = require('./anims/bash');
|
||||||
const Blast = require('./anims/blast');
|
const Blast = require('./anims/blast');
|
||||||
@ -19,7 +20,6 @@ const Electrify = require('./anims/electrify');
|
|||||||
const Electrocute = require('./anims/electrocute');
|
const Electrocute = require('./anims/electrocute');
|
||||||
const Haste = require('./anims/haste');
|
const Haste = require('./anims/haste');
|
||||||
const Heal = require('./anims/heal');
|
const Heal = require('./anims/heal');
|
||||||
const Hex = require('./anims/hex');
|
|
||||||
const Hybrid = require('./anims/hybrid');
|
const Hybrid = require('./anims/hybrid');
|
||||||
const Intercept = require('./anims/intercept');
|
const Intercept = require('./anims/intercept');
|
||||||
const Invert = require('./anims/invert');
|
const Invert = require('./anims/invert');
|
||||||
@ -27,6 +27,7 @@ const Purify = require('./anims/purify');
|
|||||||
const Recharge = require('./anims/recharge');
|
const Recharge = require('./anims/recharge');
|
||||||
const Refl = require('./anims/reflect');
|
const Refl = require('./anims/reflect');
|
||||||
const Restrict = require('./anims/restrict');
|
const Restrict = require('./anims/restrict');
|
||||||
|
const Scatter = require('./anims/scatter');
|
||||||
const Siphon = require('./anims/siphon');
|
const Siphon = require('./anims/siphon');
|
||||||
const SiphonTick = require('./anims/siphon.tick');
|
const SiphonTick = require('./anims/siphon.tick');
|
||||||
const Slay = require('./anims/slay');
|
const Slay = require('./anims/slay');
|
||||||
@ -122,7 +123,7 @@ function animations(props) {
|
|||||||
case 'Haste': return <Haste />;
|
case 'Haste': return <Haste />;
|
||||||
case 'Triage': return <Triage />;
|
case 'Triage': return <Triage />;
|
||||||
case 'TriageTick': return <TriageTick />;
|
case 'TriageTick': return <TriageTick />;
|
||||||
case 'Scatter': return false;
|
case 'Scatter': return <Scatter player={player} />;
|
||||||
case 'Hybrid': return <Hybrid />;
|
case 'Hybrid': return <Hybrid />;
|
||||||
case 'Intercept': return <Intercept player={player} />;
|
case 'Intercept': return <Intercept player={player} />;
|
||||||
|
|
||||||
@ -140,7 +141,7 @@ function animations(props) {
|
|||||||
case 'Stun': return <Stun />;
|
case 'Stun': return <Stun />;
|
||||||
case 'Banish': return <Banish id={construct.id} />;
|
case 'Banish': return <Banish id={construct.id} />;
|
||||||
case 'Bash': return <Bash />;
|
case 'Bash': return <Bash />;
|
||||||
case 'Hex': return <Hex />;
|
case 'Absorb': return <Absorb />;
|
||||||
case 'Sleep': return <Sleep />;
|
case 'Sleep': return <Sleep />;
|
||||||
case 'Throw': return false;
|
case 'Throw': return false;
|
||||||
case 'Ruin': return false;
|
case 'Ruin': return false;
|
||||||
|
|||||||
@ -31,12 +31,15 @@ class Absorb extends Component {
|
|||||||
</feMerge>
|
</feMerge>
|
||||||
</filter>
|
</filter>
|
||||||
</defs>
|
</defs>
|
||||||
<g class='blue' filter='url(#absorbFilter)'>
|
<polygon
|
||||||
<path d= "
|
class='blue'
|
||||||
M 64 4
|
points="64 68.64 8.574 100 63.446 67.68 64 4 64.554 67.68 119.426 100"
|
||||||
L 64 96
|
filter="url(#absorbFilter)">
|
||||||
"/>
|
</polygon>
|
||||||
</g>
|
<polygon
|
||||||
|
class='white'
|
||||||
|
points="64 68.64 8.574 100 63.446 67.68 64 4 64.554 67.68 119.426 100">
|
||||||
|
</polygon>
|
||||||
</svg>
|
</svg>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -51,13 +54,24 @@ class Absorb extends Component {
|
|||||||
easing: 'easeInOutSine',
|
easing: 'easeInOutSine',
|
||||||
}));
|
}));
|
||||||
|
|
||||||
anime({
|
this.animations.push(anime({
|
||||||
targets: ['#absorb path'],
|
targets: ['#absorb polygon'],
|
||||||
strokeDashoffset: [anime.setDashoffset, 0],
|
points: '64 124.94732621931382 8.574 96.00354944613788 8.62269130211947 32.03166105954991 64 4 119.37730869788052 32.03166105954991 119.426 96.00354944613788',
|
||||||
duration: 2000,
|
easing: 'easeOutExpo',
|
||||||
easing: 'linear',
|
|
||||||
loop: true,
|
delay: TIMES.TARGET_DELAY_MS,
|
||||||
});
|
duration: TIMES.TARGET_DURATION_MS,
|
||||||
|
}));
|
||||||
|
|
||||||
|
this.animations.push(anime({
|
||||||
|
targets: ['#absorb polygon.white'],
|
||||||
|
strokeWidth: [2, 1],
|
||||||
|
easing: 'easeInOutSine',
|
||||||
|
direction: 'alternate',
|
||||||
|
|
||||||
|
delay: TIMES.TARGET_DELAY_MS,
|
||||||
|
duration: TIMES.TARGET_DURATION_MS,
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
// this is necessary because
|
// this is necessary because
|
||||||
|
|||||||
77
client/src/components/anims/scatter.jsx
Normal file
77
client/src/components/anims/scatter.jsx
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
const preact = require('preact');
|
||||||
|
const { Component } = require('preact');
|
||||||
|
|
||||||
|
const anime = require('animejs').default;
|
||||||
|
|
||||||
|
const { TIMES } = require('../../constants');
|
||||||
|
|
||||||
|
class Scatter extends Component {
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
this.animations = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
class='skill-animation blue'
|
||||||
|
version="1.1"
|
||||||
|
id="scatter"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
viewBox="0 0 128 128">
|
||||||
|
<defs>
|
||||||
|
<filter id="scatterFilter">
|
||||||
|
<feGaussianBlur in="SourceGraphic" stdDeviation="5" />
|
||||||
|
<feMerge>
|
||||||
|
<feMergeNode />
|
||||||
|
<feMergeNode in="SourceGraphic" />
|
||||||
|
</feMerge>
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<g class='blue' filter='url(#scatterFilter)' stroke-width="4px" stroke-linecap="round" >
|
||||||
|
<path d= "
|
||||||
|
M 4 4
|
||||||
|
h 30
|
||||||
|
q 30 0 30 30
|
||||||
|
q 0 30 30 30
|
||||||
|
h 30
|
||||||
|
q 0 -30 -30 -30
|
||||||
|
h -60
|
||||||
|
q -30 0 -30 -30
|
||||||
|
"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
this.animations.push(anime({
|
||||||
|
targets: ['#scatter'],
|
||||||
|
opacity: [
|
||||||
|
{ value: 1, delay: TIMES.TARGET_DELAY_MS, duration: 1000 },
|
||||||
|
// { value: 0, delay: TIMES.TARGET_DURATION_MS * 0.6, duration: TIMES.TARGET_DURATION_MS * 0.2 },
|
||||||
|
],
|
||||||
|
easing: 'easeInOutSine',
|
||||||
|
}));
|
||||||
|
|
||||||
|
anime({
|
||||||
|
targets: ['#scatter path'],
|
||||||
|
strokeDashoffset: [anime.setDashoffset, 0],
|
||||||
|
duration: TIMES.TARGET_DURATION_MS * 0.8,
|
||||||
|
delay: TIMES.TARGET_DELAY_MS,
|
||||||
|
easing: 'easeInOutSine',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// this is necessary because
|
||||||
|
// skipping / timing / unmounting race conditions
|
||||||
|
// can cause the animations to cut short, this will ensure the values are reset
|
||||||
|
// because preact will recycle all these components
|
||||||
|
componentWillUnmount() {
|
||||||
|
for (let i = this.animations.length - 1; i >= 0; i--) {
|
||||||
|
this.animations[i].reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = Scatter;
|
||||||
@ -123,18 +123,3 @@ class Sustain extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Sustain;
|
module.exports = Sustain;
|
||||||
|
|
||||||
|
|
||||||
/* <polyline
|
|
||||||
points='128,168 80,240 176,240 128,168'
|
|
||||||
style={{ filter: 'url("#sustainFilter")' }}
|
|
||||||
/>
|
|
||||||
<polyline
|
|
||||||
points='176,240 212,216 128,96 44,216 80,240'
|
|
||||||
style={{ filter: 'url("#sustainFilter")' }}
|
|
||||||
/>
|
|
||||||
<polyline
|
|
||||||
points='212,216 248,192 128,24 8,192 44,216'
|
|
||||||
style={{ filter: 'url("#sustainFilter")' }}
|
|
||||||
/>
|
|
||||||
*/
|
|
||||||
@ -19,6 +19,7 @@ module.exports = {
|
|||||||
RED: '#a52a2a',
|
RED: '#a52a2a',
|
||||||
BLUE: '#3498db',
|
BLUE: '#3498db',
|
||||||
WHITE: '#f5f5f5', // whitesmoke
|
WHITE: '#f5f5f5', // whitesmoke
|
||||||
|
PURPLE: '#9355b5' // 6lack - that far cover
|
||||||
},
|
},
|
||||||
|
|
||||||
INFO: {
|
INFO: {
|
||||||
|
|||||||
@ -371,6 +371,7 @@ const removeTier = skill => {
|
|||||||
if (skill.includes('Ruin')) return 'Ruin';
|
if (skill.includes('Ruin')) return 'Ruin';
|
||||||
if (skill.includes('Throw')) return 'Throw';
|
if (skill.includes('Throw')) return 'Throw';
|
||||||
if (skill.includes('Hex')) return 'Hex';
|
if (skill.includes('Hex')) return 'Hex';
|
||||||
|
if (skill.includes('Absorb')) return 'Absorb';
|
||||||
if (skill.includes('Banish')) return 'Banish';
|
if (skill.includes('Banish')) return 'Banish';
|
||||||
|
|
||||||
return skill;
|
return skill;
|
||||||
@ -381,18 +382,18 @@ const SERVER = process.env.NODE_ENV === 'production' ? '/api/' : 'http://localho
|
|||||||
function postData(url = '/', data = {}) {
|
function postData(url = '/', data = {}) {
|
||||||
// Default options are marked with *
|
// Default options are marked with *
|
||||||
return fetch(`${SERVER}${url}`, {
|
return fetch(`${SERVER}${url}`, {
|
||||||
method: "POST", // *GET, POST, PUT, DELETE, etc.
|
method: 'POST', // *GET, POST, PUT, DELETE, etc.
|
||||||
// mode: "no-cors", // no-cors, cors, *same-origin
|
// mode: 'no-cors', // no-cors, cors, *same-origin
|
||||||
cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached
|
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
|
||||||
credentials: "include", // include, same-origin, *omit
|
credentials: 'include', // include, same-origin, *omit
|
||||||
headers: {
|
headers: {
|
||||||
'Accept': 'application/json',
|
Accept: 'application/json',
|
||||||
'content-type': 'application/json'
|
'content-type': 'application/json',
|
||||||
},
|
},
|
||||||
redirect: "error", // manual, *follow, error
|
redirect: 'error', // manual, *follow, error
|
||||||
// referrer: "", // no-referrer, *client
|
// referrer: ', // no-referrer, *client
|
||||||
body: JSON.stringify(data), // body data type must match "Content-Type" header
|
body: JSON.stringify(data), // body data type must match "Content-Type" header
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|||||||
@ -34,8 +34,8 @@ pub enum Effect {
|
|||||||
|
|
||||||
// absorbtion is the buff
|
// absorbtion is the buff
|
||||||
// absorb is the increased damage
|
// absorb is the increased damage
|
||||||
Absorbtion,
|
|
||||||
Absorb,
|
Absorb,
|
||||||
|
Absorption,
|
||||||
|
|
||||||
// magic immunity
|
// magic immunity
|
||||||
Scatter,
|
Scatter,
|
||||||
@ -114,7 +114,7 @@ impl Effect {
|
|||||||
Effect::Block => vec![Stat::RedDamageTaken],
|
Effect::Block => vec![Stat::RedDamageTaken],
|
||||||
Effect::Buff => vec![Stat::RedPower, Stat::Speed],
|
Effect::Buff => vec![Stat::RedPower, Stat::Speed],
|
||||||
|
|
||||||
Effect::Absorb => vec![Stat::RedPower, Stat::BluePower],
|
Effect::Absorption => vec![Stat::RedPower, Stat::BluePower],
|
||||||
|
|
||||||
Effect::Amplify => vec![Stat::RedPower, Stat::BluePower],
|
Effect::Amplify => vec![Stat::RedPower, Stat::BluePower],
|
||||||
Effect::Curse => vec![Stat::BlueDamageTaken],
|
Effect::Curse => vec![Stat::BlueDamageTaken],
|
||||||
@ -148,7 +148,7 @@ impl Effect {
|
|||||||
|
|
||||||
Effect::Scatter => value >> 1,
|
Effect::Scatter => value >> 1,
|
||||||
|
|
||||||
Effect::Absorb => value + match meta {
|
Effect::Absorption => value + match meta {
|
||||||
Some(EffectMeta::AddedDamage(d)) => d,
|
Some(EffectMeta::AddedDamage(d)) => d,
|
||||||
_ => panic!("absorb meta not damage"),
|
_ => panic!("absorb meta not damage"),
|
||||||
},
|
},
|
||||||
@ -180,7 +180,7 @@ impl Effect {
|
|||||||
|
|
||||||
Effect::Slow => Some(Colour::Blue),
|
Effect::Slow => Some(Colour::Blue),
|
||||||
Effect::Haste => Some(Colour::Green),
|
Effect::Haste => Some(Colour::Green),
|
||||||
Effect::Absorb => Some(Colour::Green),
|
Effect::Absorption => Some(Colour::Green),
|
||||||
Effect::Reflect => Some(Colour::Green),
|
Effect::Reflect => Some(Colour::Green),
|
||||||
Effect::Amplify => Some(Colour::Green),
|
Effect::Amplify => Some(Colour::Green),
|
||||||
Effect::Silence => Some(Colour::Blue),
|
Effect::Silence => Some(Colour::Blue),
|
||||||
@ -190,7 +190,7 @@ impl Effect {
|
|||||||
Effect::Electric => Some(Colour::Green),
|
Effect::Electric => Some(Colour::Green),
|
||||||
Effect::Electrocute => Some(Colour::Blue),
|
Effect::Electrocute => Some(Colour::Blue),
|
||||||
|
|
||||||
Effect::Absorbtion => Some(Colour::Green),
|
Effect::Absorb => Some(Colour::Green),
|
||||||
|
|
||||||
// magic
|
// magic
|
||||||
Effect::Hybrid => Some(Colour::Green),
|
Effect::Hybrid => Some(Colour::Green),
|
||||||
|
|||||||
@ -1197,18 +1197,18 @@ mod tests {
|
|||||||
// let x_construct = x_player.constructs[0].clone();
|
// let x_construct = x_player.constructs[0].clone();
|
||||||
// let y_construct = y_player.constructs[0].clone();
|
// let y_construct = y_player.constructs[0].clone();
|
||||||
|
|
||||||
// game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::Absorbtion);
|
// game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::Absorb);
|
||||||
|
|
||||||
// while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::Absorbtion).is_some() {
|
// while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::Absorb).is_some() {
|
||||||
// game.construct_by_id(x_construct.id).unwrap().reduce_cooldowns();
|
// game.construct_by_id(x_construct.id).unwrap().reduce_cooldowns();
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// // apply buff
|
// // apply buff
|
||||||
// game.add_skill(x_player.id, x_construct.id, Some(x_construct.id), Skill::Absorbtion).unwrap();
|
// game.add_skill(x_player.id, x_construct.id, Some(x_construct.id), Skill::Absorb).unwrap();
|
||||||
// game.player_ready(x_player.id).unwrap();
|
// game.player_ready(x_player.id).unwrap();
|
||||||
// game.player_ready(y_player.id).unwrap();
|
// game.player_ready(y_player.id).unwrap();
|
||||||
// game = game.resolve_phase_start();
|
// game = game.resolve_phase_start();
|
||||||
// assert!(game.construct_by_id(x_construct.id).unwrap().affected(Effect::Absorbtion));
|
// assert!(game.construct_by_id(x_construct.id).unwrap().affected(Effect::Absorb));
|
||||||
|
|
||||||
// // attack and receive debuff
|
// // attack and receive debuff
|
||||||
// game.add_skill(y_player.id, y_construct.id, Some(x_construct.id), Skill::TestAttack).unwrap();
|
// game.add_skill(y_player.id, y_construct.id, Some(x_construct.id), Skill::TestAttack).unwrap();
|
||||||
@ -1217,7 +1217,7 @@ mod tests {
|
|||||||
// game = game.resolve_phase_start();
|
// game = game.resolve_phase_start();
|
||||||
|
|
||||||
// info!("{:#?}", game);
|
// info!("{:#?}", game);
|
||||||
// assert!(game.construct_by_id(y_construct.id).unwrap().affected(Effect::Absorb));
|
// assert!(game.construct_by_id(y_construct.id).unwrap().affected(Effect::Absorption));
|
||||||
// }
|
// }
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
@ -88,6 +88,9 @@ pub enum Item {
|
|||||||
AmplifyI,
|
AmplifyI,
|
||||||
AmplifyII,
|
AmplifyII,
|
||||||
AmplifyIII,
|
AmplifyIII,
|
||||||
|
AbsorbI,
|
||||||
|
AbsorbII,
|
||||||
|
AbsorbIII,
|
||||||
BanishI,
|
BanishI,
|
||||||
BanishII,
|
BanishII,
|
||||||
BanishIII,
|
BanishIII,
|
||||||
@ -112,18 +115,15 @@ pub enum Item {
|
|||||||
DecayI,
|
DecayI,
|
||||||
DecayII,
|
DecayII,
|
||||||
DecayIII,
|
DecayIII,
|
||||||
AbsorbtionI,
|
HexI,
|
||||||
AbsorbtionII,
|
HexII,
|
||||||
AbsorbtionIII,
|
HexIII,
|
||||||
HasteI,
|
HasteI,
|
||||||
HasteII,
|
HasteII,
|
||||||
HasteIII,
|
HasteIII,
|
||||||
HealI,
|
HealI,
|
||||||
HealII,
|
HealII,
|
||||||
HealIII,
|
HealIII,
|
||||||
HexI,
|
|
||||||
HexII,
|
|
||||||
HexIII,
|
|
||||||
HybridI,
|
HybridI,
|
||||||
HybridII,
|
HybridII,
|
||||||
HybridIII,
|
HybridIII,
|
||||||
@ -295,13 +295,19 @@ impl Item {
|
|||||||
|
|
||||||
pub fn into_skill(&self) -> Option<Skill> {
|
pub fn into_skill(&self) -> Option<Skill> {
|
||||||
match self {
|
match self {
|
||||||
Item::Attack => Some(Skill::Attack),
|
Item::AbsorbI => Some(Skill::AbsorbI),
|
||||||
|
Item::AbsorbII => Some(Skill::AbsorbII),
|
||||||
|
Item::AbsorbIII => Some(Skill::AbsorbIII),
|
||||||
Item::AmplifyI => Some(Skill::AmplifyI),
|
Item::AmplifyI => Some(Skill::AmplifyI),
|
||||||
Item::AmplifyII => Some(Skill::AmplifyII),
|
Item::AmplifyII => Some(Skill::AmplifyII),
|
||||||
Item::AmplifyIII => Some(Skill::AmplifyIII),
|
Item::AmplifyIII => Some(Skill::AmplifyIII),
|
||||||
|
Item::Attack => Some(Skill::Attack),
|
||||||
Item::BanishI => Some(Skill::BanishI),
|
Item::BanishI => Some(Skill::BanishI),
|
||||||
Item::BanishII => Some(Skill::BanishII),
|
Item::BanishII => Some(Skill::BanishII),
|
||||||
Item::BanishIII => Some(Skill::BanishIII),
|
Item::BanishIII => Some(Skill::BanishIII),
|
||||||
|
Item::BashI => Some(Skill::BashI),
|
||||||
|
Item::BashII => Some(Skill::BashII),
|
||||||
|
Item::BashIII => Some(Skill::BashIII),
|
||||||
Item::BlastI => Some(Skill::BlastI),
|
Item::BlastI => Some(Skill::BlastI),
|
||||||
Item::BlastII => Some(Skill::BlastII),
|
Item::BlastII => Some(Skill::BlastII),
|
||||||
Item::BlastIII => Some(Skill::BlastIII),
|
Item::BlastIII => Some(Skill::BlastIII),
|
||||||
@ -310,6 +316,9 @@ impl Item {
|
|||||||
Item::ChaosI => Some(Skill::ChaosI),
|
Item::ChaosI => Some(Skill::ChaosI),
|
||||||
Item::ChaosII => Some(Skill::ChaosII),
|
Item::ChaosII => Some(Skill::ChaosII),
|
||||||
Item::ChaosIII => Some(Skill::ChaosIII),
|
Item::ChaosIII => Some(Skill::ChaosIII),
|
||||||
|
Item::CounterI => Some(Skill::CounterI),
|
||||||
|
Item::CounterII => Some(Skill::CounterII),
|
||||||
|
Item::CounterIII => Some(Skill::CounterIII),
|
||||||
Item::CurseI => Some(Skill::CurseI),
|
Item::CurseI => Some(Skill::CurseI),
|
||||||
Item::CurseII => Some(Skill::CurseII),
|
Item::CurseII => Some(Skill::CurseII),
|
||||||
Item::CurseIII => Some(Skill::CurseIII),
|
Item::CurseIII => Some(Skill::CurseIII),
|
||||||
@ -317,27 +326,24 @@ impl Item {
|
|||||||
Item::DecayI => Some(Skill::DecayI),
|
Item::DecayI => Some(Skill::DecayI),
|
||||||
Item::DecayII => Some(Skill::DecayII),
|
Item::DecayII => Some(Skill::DecayII),
|
||||||
Item::DecayIII => Some(Skill::DecayIII),
|
Item::DecayIII => Some(Skill::DecayIII),
|
||||||
|
Item::ElectrifyI => Some(Skill::ElectrifyI),
|
||||||
|
Item::ElectrifyII => Some(Skill::ElectrifyII),
|
||||||
|
Item::ElectrifyIII => Some(Skill::ElectrifyIII),
|
||||||
Item::HasteI => Some(Skill::HasteI),
|
Item::HasteI => Some(Skill::HasteI),
|
||||||
Item::HasteII => Some(Skill::HasteII),
|
Item::HasteII => Some(Skill::HasteII),
|
||||||
Item::HasteIII => Some(Skill::HasteIII),
|
Item::HasteIII => Some(Skill::HasteIII),
|
||||||
Item::HealI => Some(Skill::HealI),
|
Item::HealI => Some(Skill::HealI),
|
||||||
Item::HealII => Some(Skill::HealII),
|
Item::HealII => Some(Skill::HealII),
|
||||||
Item::HealIII => Some(Skill::HealIII),
|
Item::HealIII => Some(Skill::HealIII),
|
||||||
Item::HexI => Some(Skill::HexI),
|
|
||||||
Item::HexII => Some(Skill::HexII),
|
|
||||||
Item::HexIII => Some(Skill::HexIII),
|
|
||||||
Item::AbsorbtionI => Some(Skill::AbsorbtionI),
|
|
||||||
Item::AbsorbtionII => Some(Skill::AbsorbtionII),
|
|
||||||
Item::AbsorbtionIII=> Some(Skill::AbsorbtionIII),
|
|
||||||
Item::HybridI => Some(Skill::HybridI),
|
Item::HybridI => Some(Skill::HybridI),
|
||||||
Item::HybridII => Some(Skill::HybridII),
|
Item::HybridII => Some(Skill::HybridII),
|
||||||
Item::HybridIII => Some(Skill::HybridIII),
|
Item::HybridIII => Some(Skill::HybridIII),
|
||||||
|
Item::InterceptI => Some(Skill::InterceptI),
|
||||||
|
Item::InterceptII => Some(Skill::InterceptII),
|
||||||
|
Item::InterceptIII => Some(Skill::InterceptIII),
|
||||||
Item::InvertI => Some(Skill::InvertI),
|
Item::InvertI => Some(Skill::InvertI),
|
||||||
Item::InvertII => Some(Skill::InvertII),
|
Item::InvertII => Some(Skill::InvertII),
|
||||||
Item::InvertIII => Some(Skill::InvertIII),
|
Item::InvertIII => Some(Skill::InvertIII),
|
||||||
Item::CounterI => Some(Skill::CounterI),
|
|
||||||
Item::CounterII => Some(Skill::CounterII),
|
|
||||||
Item::CounterIII => Some(Skill::CounterIII),
|
|
||||||
Item::PurgeI => Some(Skill::PurgeI),
|
Item::PurgeI => Some(Skill::PurgeI),
|
||||||
Item::PurgeII => Some(Skill::PurgeII),
|
Item::PurgeII => Some(Skill::PurgeII),
|
||||||
Item::PurgeIII => Some(Skill::PurgeIII),
|
Item::PurgeIII => Some(Skill::PurgeIII),
|
||||||
@ -350,6 +356,9 @@ impl Item {
|
|||||||
Item::ReflectI => Some(Skill::ReflectI),
|
Item::ReflectI => Some(Skill::ReflectI),
|
||||||
Item::ReflectII => Some(Skill::ReflectII),
|
Item::ReflectII => Some(Skill::ReflectII),
|
||||||
Item::ReflectIII => Some(Skill::ReflectIII),
|
Item::ReflectIII => Some(Skill::ReflectIII),
|
||||||
|
Item::RestrictI => Some(Skill::RestrictI),
|
||||||
|
Item::RestrictII => Some(Skill::RestrictII),
|
||||||
|
Item::RestrictIII => Some(Skill::RestrictIII),
|
||||||
Item::RuinI => Some(Skill::RuinI),
|
Item::RuinI => Some(Skill::RuinI),
|
||||||
Item::RuinII => Some(Skill::RuinII),
|
Item::RuinII => Some(Skill::RuinII),
|
||||||
Item::RuinIII => Some(Skill::RuinIII),
|
Item::RuinIII => Some(Skill::RuinIII),
|
||||||
@ -359,37 +368,25 @@ impl Item {
|
|||||||
Item::SilenceI => Some(Skill::SilenceI),
|
Item::SilenceI => Some(Skill::SilenceI),
|
||||||
Item::SilenceII => Some(Skill::SilenceII),
|
Item::SilenceII => Some(Skill::SilenceII),
|
||||||
Item::SilenceIII => Some(Skill::SilenceIII),
|
Item::SilenceIII => Some(Skill::SilenceIII),
|
||||||
|
Item::SiphonI => Some(Skill::SiphonI),
|
||||||
|
Item::SiphonII => Some(Skill::SiphonII),
|
||||||
|
Item::SiphonIII => Some(Skill::SiphonIII),
|
||||||
Item::SlayI => Some(Skill::SlayI),
|
Item::SlayI => Some(Skill::SlayI),
|
||||||
Item::SlayII => Some(Skill::SlayII),
|
Item::SlayII => Some(Skill::SlayII),
|
||||||
Item::SlayIII => Some(Skill::SlayIII),
|
Item::SlayIII => Some(Skill::SlayIII),
|
||||||
Item::SleepI => Some(Skill::SleepI),
|
Item::SleepI => Some(Skill::SleepI),
|
||||||
Item::SleepII => Some(Skill::SleepII),
|
Item::SleepII => Some(Skill::SleepII),
|
||||||
Item::SleepIII => Some(Skill::SleepIII),
|
Item::SleepIII => Some(Skill::SleepIII),
|
||||||
Item::SiphonI => Some(Skill::SiphonI),
|
|
||||||
Item::SiphonII => Some(Skill::SiphonII),
|
|
||||||
Item::SiphonIII => Some(Skill::SiphonIII),
|
|
||||||
Item::RestrictI => Some(Skill::RestrictI),
|
|
||||||
Item::RestrictII => Some(Skill::RestrictII),
|
|
||||||
Item::RestrictIII => Some(Skill::RestrictIII),
|
|
||||||
Item::BashI => Some(Skill::BashI),
|
|
||||||
Item::BashII => Some(Skill::BashII),
|
|
||||||
Item::BashIII => Some(Skill::BashIII),
|
|
||||||
Item::Stun => Some(Skill::Stun),
|
|
||||||
Item::StrikeI => Some(Skill::StrikeI),
|
Item::StrikeI => Some(Skill::StrikeI),
|
||||||
Item::StrikeII => Some(Skill::StrikeII),
|
Item::StrikeII => Some(Skill::StrikeII),
|
||||||
Item::StrikeIII => Some(Skill::StrikeIII),
|
Item::StrikeIII => Some(Skill::StrikeIII),
|
||||||
|
Item::Stun => Some(Skill::Stun),
|
||||||
Item::SustainI => Some(Skill::SustainI),
|
Item::SustainI => Some(Skill::SustainI),
|
||||||
Item::SustainII => Some(Skill::SustainII),
|
Item::SustainII => Some(Skill::SustainII),
|
||||||
Item::SustainIII => Some(Skill::SustainIII),
|
Item::SustainIII => Some(Skill::SustainIII),
|
||||||
Item::InterceptI => Some(Skill::InterceptI),
|
|
||||||
Item::InterceptII => Some(Skill::InterceptII),
|
|
||||||
Item::InterceptIII => Some(Skill::InterceptIII),
|
|
||||||
Item::ThrowI => Some(Skill::ThrowI),
|
Item::ThrowI => Some(Skill::ThrowI),
|
||||||
Item::ThrowII => Some(Skill::ThrowII),
|
Item::ThrowII => Some(Skill::ThrowII),
|
||||||
Item::ThrowIII => Some(Skill::ThrowIII),
|
Item::ThrowIII => Some(Skill::ThrowIII),
|
||||||
Item::ElectrifyI => Some(Skill::ElectrifyI),
|
|
||||||
Item::ElectrifyII => Some(Skill::ElectrifyII),
|
|
||||||
Item::ElectrifyIII => Some(Skill::ElectrifyIII),
|
|
||||||
Item::TriageI => Some(Skill::TriageI),
|
Item::TriageI => Some(Skill::TriageI),
|
||||||
Item::TriageII => Some(Skill::TriageII),
|
Item::TriageII => Some(Skill::TriageII),
|
||||||
Item::TriageIII => Some(Skill::TriageIII),
|
Item::TriageIII => Some(Skill::TriageIII),
|
||||||
@ -626,12 +623,12 @@ impl Item {
|
|||||||
self.into_skill().unwrap().effect()[1].get_skill().unwrap().multiplier(),
|
self.into_skill().unwrap().effect()[1].get_skill().unwrap().multiplier(),
|
||||||
self.into_skill().unwrap().effect()[1].get_duration()),
|
self.into_skill().unwrap().effect()[1].get_duration()),
|
||||||
|
|
||||||
Item::AbsorbtionI |
|
Item::AbsorbI |
|
||||||
Item::AbsorbtionII |
|
Item::AbsorbII |
|
||||||
Item::AbsorbtionIII => format!(
|
Item::AbsorbIII => format!(
|
||||||
"Gain Absorbtion for {:?}T. {} Absorb lasts {:?}T",
|
"Gain Absorb for {:?}T. {} Absorption lasts {:?}T",
|
||||||
self.into_skill().unwrap().effect()[0].get_duration(),
|
self.into_skill().unwrap().effect()[0].get_duration(),
|
||||||
"When attacked by Absorbtion you gain Absorb which increased red and blue power based on Damage taken.",
|
"When attacked with Absorb you gain Absorption which increased red and blue power based on Damage taken.",
|
||||||
self.into_skill().unwrap().effect()[0].get_skill().unwrap().effect()[0].get_duration()),
|
self.into_skill().unwrap().effect()[0].get_skill().unwrap().effect()[0].get_duration()),
|
||||||
|
|
||||||
Item::HasteI |
|
Item::HasteI |
|
||||||
@ -856,9 +853,9 @@ impl Item {
|
|||||||
Item::ThrowI => vec![Item::Stun, Item::Red, Item::Green],
|
Item::ThrowI => vec![Item::Stun, Item::Red, Item::Green],
|
||||||
Item::ThrowII => vec![Item::ThrowI, Item::ThrowI, Item::ThrowI],
|
Item::ThrowII => vec![Item::ThrowI, Item::ThrowI, Item::ThrowI],
|
||||||
Item::ThrowIII => vec![Item::ThrowII, Item::ThrowII, Item::ThrowII],
|
Item::ThrowIII => vec![Item::ThrowII, Item::ThrowII, Item::ThrowII],
|
||||||
Item::HexI => vec![Item::Stun, Item::Green, Item::Blue],
|
Item::AbsorbI => vec![Item::Stun, Item::Green, Item::Blue],
|
||||||
Item::HexII => vec![Item::HexI, Item::HexI, Item::HexI],
|
Item::AbsorbII => vec![Item::AbsorbI, Item::AbsorbI, Item::AbsorbI],
|
||||||
Item::HexIII => vec![Item::HexII, Item::HexII, Item::HexII],
|
Item::AbsorbIII => vec![Item::AbsorbII, Item::AbsorbII, Item::AbsorbII],
|
||||||
Item::BanishI => vec![Item::Stun, Item::Red, Item::Blue],
|
Item::BanishI => vec![Item::Stun, Item::Red, Item::Blue],
|
||||||
Item::BanishII => vec![Item::BanishI, Item::BanishI, Item::BanishI],
|
Item::BanishII => vec![Item::BanishI, Item::BanishI, Item::BanishI],
|
||||||
Item::BanishIII => vec![Item::BanishII, Item::BanishII, Item::BanishII],
|
Item::BanishIII => vec![Item::BanishII, Item::BanishII, Item::BanishII],
|
||||||
@ -951,6 +948,9 @@ impl Item {
|
|||||||
impl From<Skill> for Item {
|
impl From<Skill> for Item {
|
||||||
fn from(skill: Skill) -> Item {
|
fn from(skill: Skill) -> Item {
|
||||||
match skill {
|
match skill {
|
||||||
|
Skill::AbsorbI => Item::AbsorbI,
|
||||||
|
Skill::AbsorbII => Item::AbsorbII,
|
||||||
|
Skill::AbsorbIII => Item::AbsorbIII,
|
||||||
Skill::AmplifyI => Item::AmplifyI,
|
Skill::AmplifyI => Item::AmplifyI,
|
||||||
Skill::AmplifyII => Item::AmplifyII,
|
Skill::AmplifyII => Item::AmplifyII,
|
||||||
Skill::AmplifyIII => Item::AmplifyIII,
|
Skill::AmplifyIII => Item::AmplifyIII,
|
||||||
@ -958,6 +958,9 @@ impl From<Skill> for Item {
|
|||||||
Skill::BanishI => Item::BanishI,
|
Skill::BanishI => Item::BanishI,
|
||||||
Skill::BanishII => Item::BanishII,
|
Skill::BanishII => Item::BanishII,
|
||||||
Skill::BanishIII => Item::BanishIII,
|
Skill::BanishIII => Item::BanishIII,
|
||||||
|
Skill::BashI => Item::BashI,
|
||||||
|
Skill::BashII => Item::BashII,
|
||||||
|
Skill::BashIII => Item::BashIII,
|
||||||
Skill::BlastI => Item::BlastI,
|
Skill::BlastI => Item::BlastI,
|
||||||
Skill::BlastII => Item::BlastII,
|
Skill::BlastII => Item::BlastII,
|
||||||
Skill::BlastIII => Item::BlastIII,
|
Skill::BlastIII => Item::BlastIII,
|
||||||
@ -966,25 +969,22 @@ impl From<Skill> for Item {
|
|||||||
Skill::ChaosI => Item::ChaosI,
|
Skill::ChaosI => Item::ChaosI,
|
||||||
Skill::ChaosII => Item::ChaosII,
|
Skill::ChaosII => Item::ChaosII,
|
||||||
Skill::ChaosIII => Item::ChaosIII,
|
Skill::ChaosIII => Item::ChaosIII,
|
||||||
Skill::ElectrifyI => Item::ElectrifyI,
|
Skill::CounterI => Item::CounterI,
|
||||||
Skill::ElectrifyII => Item::ElectrifyII,
|
Skill::CounterII => Item::CounterII,
|
||||||
Skill::ElectrifyIII => Item::ElectrifyIII,
|
Skill::CounterIII => Item::CounterIII,
|
||||||
Skill::SustainI => Item::SustainI,
|
|
||||||
Skill::SustainII => Item::SustainII,
|
|
||||||
Skill::SustainIII => Item::SustainIII,
|
|
||||||
Skill::CurseI => Item::CurseI,
|
Skill::CurseI => Item::CurseI,
|
||||||
Skill::CurseII => Item::CurseII,
|
Skill::CurseII => Item::CurseII,
|
||||||
Skill::CurseIII => Item::CurseIII,
|
Skill::CurseIII => Item::CurseIII,
|
||||||
|
Skill::Debuff => Item::Debuff,
|
||||||
Skill::DecayI => Item::DecayI,
|
Skill::DecayI => Item::DecayI,
|
||||||
Skill::DecayII => Item::DecayII,
|
Skill::DecayII => Item::DecayII,
|
||||||
Skill::DecayIII => Item::DecayIII,
|
Skill::DecayIII => Item::DecayIII,
|
||||||
Skill::Debuff => Item::Debuff,
|
Skill::ElectrifyI => Item::ElectrifyI,
|
||||||
|
Skill::ElectrifyII => Item::ElectrifyII,
|
||||||
|
Skill::ElectrifyIII => Item::ElectrifyIII,
|
||||||
Skill::HasteI => Item::HasteI,
|
Skill::HasteI => Item::HasteI,
|
||||||
Skill::HasteII => Item::HasteII,
|
Skill::HasteII => Item::HasteII,
|
||||||
Skill::HasteIII => Item::HasteIII,
|
Skill::HasteIII => Item::HasteIII,
|
||||||
Skill::AbsorbtionI => Item::AbsorbtionI,
|
|
||||||
Skill::AbsorbtionII => Item::AbsorbtionII,
|
|
||||||
Skill::AbsorbtionIII => Item::AbsorbtionIII,
|
|
||||||
Skill::HealI => Item::HealI,
|
Skill::HealI => Item::HealI,
|
||||||
Skill::HealII => Item::HealII,
|
Skill::HealII => Item::HealII,
|
||||||
Skill::HealIII => Item::HealIII,
|
Skill::HealIII => Item::HealIII,
|
||||||
@ -994,12 +994,12 @@ impl From<Skill> for Item {
|
|||||||
Skill::HybridI => Item::HybridI,
|
Skill::HybridI => Item::HybridI,
|
||||||
Skill::HybridII => Item::HybridII,
|
Skill::HybridII => Item::HybridII,
|
||||||
Skill::HybridIII => Item::HybridIII,
|
Skill::HybridIII => Item::HybridIII,
|
||||||
|
Skill::InterceptI => Item::InterceptI,
|
||||||
|
Skill::InterceptII => Item::InterceptII,
|
||||||
|
Skill::InterceptIII => Item::InterceptIII,
|
||||||
Skill::InvertI => Item::InvertI,
|
Skill::InvertI => Item::InvertI,
|
||||||
Skill::InvertII => Item::InvertII,
|
Skill::InvertII => Item::InvertII,
|
||||||
Skill::InvertIII => Item::InvertIII,
|
Skill::InvertIII => Item::InvertIII,
|
||||||
Skill::CounterI => Item::CounterI,
|
|
||||||
Skill::CounterII => Item::CounterII,
|
|
||||||
Skill::CounterIII => Item::CounterIII,
|
|
||||||
Skill::PurgeI => Item::PurgeI,
|
Skill::PurgeI => Item::PurgeI,
|
||||||
Skill::PurgeII => Item::PurgeII,
|
Skill::PurgeII => Item::PurgeII,
|
||||||
Skill::PurgeIII => Item::PurgeIII,
|
Skill::PurgeIII => Item::PurgeIII,
|
||||||
@ -1012,6 +1012,9 @@ impl From<Skill> for Item {
|
|||||||
Skill::ReflectI => Item::ReflectI,
|
Skill::ReflectI => Item::ReflectI,
|
||||||
Skill::ReflectII => Item::ReflectII,
|
Skill::ReflectII => Item::ReflectII,
|
||||||
Skill::ReflectIII => Item::ReflectIII,
|
Skill::ReflectIII => Item::ReflectIII,
|
||||||
|
Skill::RestrictI => Item::RestrictI,
|
||||||
|
Skill::RestrictII => Item::RestrictII,
|
||||||
|
Skill::RestrictIII => Item::RestrictIII,
|
||||||
Skill::RuinI => Item::RuinI,
|
Skill::RuinI => Item::RuinI,
|
||||||
Skill::RuinII => Item::RuinII,
|
Skill::RuinII => Item::RuinII,
|
||||||
Skill::RuinIII => Item::RuinIII,
|
Skill::RuinIII => Item::RuinIII,
|
||||||
@ -1030,19 +1033,13 @@ impl From<Skill> for Item {
|
|||||||
Skill::SleepI => Item::SleepI,
|
Skill::SleepI => Item::SleepI,
|
||||||
Skill::SleepII => Item::SleepII,
|
Skill::SleepII => Item::SleepII,
|
||||||
Skill::SleepIII => Item::SleepIII,
|
Skill::SleepIII => Item::SleepIII,
|
||||||
Skill::RestrictI => Item::RestrictI,
|
|
||||||
Skill::RestrictII => Item::RestrictII,
|
|
||||||
Skill::RestrictIII => Item::RestrictIII,
|
|
||||||
Skill::BashI => Item::BashI,
|
|
||||||
Skill::BashII => Item::BashII,
|
|
||||||
Skill::BashIII => Item::BashIII,
|
|
||||||
Skill::StrikeI => Item::StrikeI,
|
Skill::StrikeI => Item::StrikeI,
|
||||||
Skill::StrikeII => Item::StrikeII,
|
Skill::StrikeII => Item::StrikeII,
|
||||||
Skill::StrikeIII => Item::StrikeIII,
|
Skill::StrikeIII => Item::StrikeIII,
|
||||||
Skill::Stun => Item::Stun,
|
Skill::Stun => Item::Stun,
|
||||||
Skill::InterceptI => Item::InterceptI,
|
Skill::SustainI => Item::SustainI,
|
||||||
Skill::InterceptII => Item::InterceptII,
|
Skill::SustainII => Item::SustainII,
|
||||||
Skill::InterceptIII => Item::InterceptIII,
|
Skill::SustainIII => Item::SustainIII,
|
||||||
Skill::ThrowI => Item::ThrowI,
|
Skill::ThrowI => Item::ThrowI,
|
||||||
Skill::ThrowII => Item::ThrowII,
|
Skill::ThrowII => Item::ThrowII,
|
||||||
Skill::ThrowIII => Item::ThrowIII,
|
Skill::ThrowIII => Item::ThrowIII,
|
||||||
@ -1060,9 +1057,9 @@ impl From<Skill> for Item {
|
|||||||
Skill::DecayTickI => Item::DecayI,
|
Skill::DecayTickI => Item::DecayI,
|
||||||
Skill::DecayTickII => Item::DecayII,
|
Skill::DecayTickII => Item::DecayII,
|
||||||
Skill::DecayTickIII => Item::DecayIII,
|
Skill::DecayTickIII => Item::DecayIII,
|
||||||
Skill::AbsorbI => Item::AbsorbtionI,
|
Skill::AbsorptionI => Item::AbsorbI,
|
||||||
Skill::AbsorbII => Item::AbsorbtionII,
|
Skill::AbsorptionII => Item::AbsorbII,
|
||||||
Skill::AbsorbIII => Item::AbsorbtionIII,
|
Skill::AbsorptionIII => Item::AbsorbIII,
|
||||||
Skill::HasteStrike => Item::HasteI,
|
Skill::HasteStrike => Item::HasteI,
|
||||||
Skill::HybridBlast => Item::HybridI,
|
Skill::HybridBlast => Item::HybridI,
|
||||||
Skill::CounterAttackI => Item::CounterI,
|
Skill::CounterAttackI => Item::CounterI,
|
||||||
@ -1172,9 +1169,9 @@ pub fn get_combos() -> Vec<Combo> {
|
|||||||
Combo { components: Item::HasteI.combo(), item: Item::HasteI },
|
Combo { components: Item::HasteI.combo(), item: Item::HasteI },
|
||||||
Combo { components: Item::HasteII.combo(), item: Item::HasteII },
|
Combo { components: Item::HasteII.combo(), item: Item::HasteII },
|
||||||
Combo { components: Item::HasteIII.combo(), item: Item::HasteIII },
|
Combo { components: Item::HasteIII.combo(), item: Item::HasteIII },
|
||||||
Combo { components: Item::AbsorbtionI.combo(), item: Item::AbsorbtionI },
|
Combo { components: Item::AbsorbI.combo(), item: Item::AbsorbI },
|
||||||
Combo { components: Item::AbsorbtionII.combo(), item: Item::AbsorbtionII },
|
Combo { components: Item::AbsorbII.combo(), item: Item::AbsorbII },
|
||||||
Combo { components: Item::AbsorbtionIII.combo(), item: Item::AbsorbtionIII },
|
Combo { components: Item::AbsorbIII.combo(), item: Item::AbsorbIII },
|
||||||
Combo { components: Item::HybridI.combo(), item: Item::HybridI },
|
Combo { components: Item::HybridI.combo(), item: Item::HybridI },
|
||||||
Combo { components: Item::HybridII.combo(), item: Item::HybridII },
|
Combo { components: Item::HybridII.combo(), item: Item::HybridII },
|
||||||
Combo { components: Item::HybridIII.combo(), item: Item::HybridIII },
|
Combo { components: Item::HybridIII.combo(), item: Item::HybridIII },
|
||||||
@ -1241,9 +1238,9 @@ pub fn get_combos() -> Vec<Combo> {
|
|||||||
Combo { components: Item::ThrowI.combo(), item: Item::ThrowI },
|
Combo { components: Item::ThrowI.combo(), item: Item::ThrowI },
|
||||||
Combo { components: Item::ThrowII.combo(), item: Item::ThrowII },
|
Combo { components: Item::ThrowII.combo(), item: Item::ThrowII },
|
||||||
Combo { components: Item::ThrowIII.combo(), item: Item::ThrowIII },
|
Combo { components: Item::ThrowIII.combo(), item: Item::ThrowIII },
|
||||||
Combo { components: Item::HexI.combo(), item: Item::HexI },
|
Combo { components: Item::AbsorbI.combo(), item: Item::AbsorbI },
|
||||||
Combo { components: Item::HexII.combo(), item: Item::HexII },
|
Combo { components: Item::AbsorbII.combo(), item: Item::AbsorbII },
|
||||||
Combo { components: Item::HexIII.combo(), item: Item::HexIII },
|
Combo { components: Item::AbsorbIII.combo(), item: Item::AbsorbIII },
|
||||||
Combo { components: Item::BanishI.combo(), item: Item::BanishI },
|
Combo { components: Item::BanishI.combo(), item: Item::BanishI },
|
||||||
Combo { components: Item::BanishII.combo(), item: Item::BanishII },
|
Combo { components: Item::BanishII.combo(), item: Item::BanishII },
|
||||||
Combo { components: Item::BanishIII.combo(), item: Item::BanishIII },
|
Combo { components: Item::BanishIII.combo(), item: Item::BanishIII },
|
||||||
|
|||||||
@ -176,9 +176,9 @@ pub fn resolve(skill: Skill, source: &mut Construct, target: &mut Construct, mut
|
|||||||
Skill::HexII |
|
Skill::HexII |
|
||||||
Skill::HexIII => hex(source, target, resolutions, skill),
|
Skill::HexIII => hex(source, target, resolutions, skill),
|
||||||
|
|
||||||
Skill::AbsorbtionI |
|
Skill::AbsorbI |
|
||||||
Skill::AbsorbtionII |
|
Skill::AbsorbII |
|
||||||
Skill::AbsorbtionIII => absorbtion(source, target, resolutions, skill),
|
Skill::AbsorbIII => absorbtion(source, target, resolutions, skill),
|
||||||
|
|
||||||
Skill::HybridI |
|
Skill::HybridI |
|
||||||
Skill::HybridII |
|
Skill::HybridII |
|
||||||
@ -271,9 +271,9 @@ pub fn resolve(skill: Skill, source: &mut Construct, target: &mut Construct, mut
|
|||||||
Skill::ElectrocuteII |
|
Skill::ElectrocuteII |
|
||||||
Skill::ElectrocuteIII => panic!("should only trigger from electrify hit"),
|
Skill::ElectrocuteIII => panic!("should only trigger from electrify hit"),
|
||||||
Skill::HasteStrike => panic!("should only trigger from haste"),
|
Skill::HasteStrike => panic!("should only trigger from haste"),
|
||||||
Skill::AbsorbI |
|
Skill::AbsorptionI |
|
||||||
Skill::AbsorbII |
|
Skill::AbsorptionII |
|
||||||
Skill::AbsorbIII => panic!("should only trigger from absorb"),
|
Skill::AbsorptionIII => panic!("should only trigger from absorb"),
|
||||||
Skill::HybridBlast => panic!("should only trigger from hybrid"),
|
Skill::HybridBlast => panic!("should only trigger from hybrid"),
|
||||||
Skill::CounterAttackI |
|
Skill::CounterAttackI |
|
||||||
Skill::CounterAttackII |
|
Skill::CounterAttackII |
|
||||||
@ -304,9 +304,9 @@ fn post_resolve(_skill: Skill, game: &mut Game, mut resolutions: Resolutions) ->
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if target.affected(Effect::Absorbtion) {
|
if target.affected(Effect::Absorb) {
|
||||||
let ConstructEffect { effect: _, duration: _, meta, tick: _ } = target.effects.iter()
|
let ConstructEffect { effect: _, duration: _, meta, tick: _ } = target.effects.iter()
|
||||||
.find(|e| e.effect == Effect::Absorbtion).unwrap().clone();
|
.find(|e| e.effect == Effect::Absorb).unwrap().clone();
|
||||||
match meta {
|
match meta {
|
||||||
Some(EffectMeta::Skill(s)) => {
|
Some(EffectMeta::Skill(s)) => {
|
||||||
resolutions = absorb(&mut target, &mut source, resolutions, skill, amount, s);
|
resolutions = absorb(&mut target, &mut source, resolutions, skill, amount, s);
|
||||||
@ -544,12 +544,12 @@ pub enum Skill {
|
|||||||
HexII,
|
HexII,
|
||||||
HexIII,
|
HexIII,
|
||||||
|
|
||||||
|
AbsorptionI,
|
||||||
|
AbsorptionII,
|
||||||
|
AbsorptionIII,
|
||||||
AbsorbI,
|
AbsorbI,
|
||||||
AbsorbII,
|
AbsorbII,
|
||||||
AbsorbIII,
|
AbsorbIII,
|
||||||
AbsorbtionI,
|
|
||||||
AbsorbtionII,
|
|
||||||
AbsorbtionIII,
|
|
||||||
HybridBlast,
|
HybridBlast,
|
||||||
|
|
||||||
HybridI,
|
HybridI,
|
||||||
@ -790,16 +790,16 @@ impl Skill {
|
|||||||
Skill::HexII => vec![ConstructEffect {effect: Effect::Hex, duration: 3, meta: None, tick: None}],
|
Skill::HexII => vec![ConstructEffect {effect: Effect::Hex, duration: 3, meta: None, tick: None}],
|
||||||
Skill::HexIII => vec![ConstructEffect {effect: Effect::Hex, duration: 4, meta: None, tick: None}],
|
Skill::HexIII => vec![ConstructEffect {effect: Effect::Hex, duration: 4, meta: None, tick: None}],
|
||||||
|
|
||||||
Skill::AbsorbtionI => vec![ConstructEffect {effect: Effect::Absorbtion, duration: 2,
|
Skill::AbsorbI => vec![ConstructEffect {effect: Effect::Absorb, duration: 2,
|
||||||
meta: Some(EffectMeta::Skill(Skill::AbsorbI)), tick: None}],
|
meta: Some(EffectMeta::Skill(Skill::AbsorptionI)), tick: None}],
|
||||||
Skill::AbsorbtionII => vec![ConstructEffect {effect: Effect::Absorbtion, duration: 3,
|
Skill::AbsorbII => vec![ConstructEffect {effect: Effect::Absorb, duration: 3,
|
||||||
meta: Some(EffectMeta::Skill(Skill::AbsorbII)), tick: None}],
|
meta: Some(EffectMeta::Skill(Skill::AbsorptionII)), tick: None}],
|
||||||
Skill::AbsorbtionIII => vec![ConstructEffect {effect: Effect::Absorbtion, duration: 4,
|
Skill::AbsorbIII => vec![ConstructEffect {effect: Effect::Absorb, duration: 4,
|
||||||
meta: Some(EffectMeta::Skill(Skill::AbsorbIII)), tick: None}],
|
meta: Some(EffectMeta::Skill(Skill::AbsorptionIII)), tick: None}],
|
||||||
|
|
||||||
Skill::AbsorbI => vec![ConstructEffect {effect: Effect::Absorb, duration: 5, meta: None, tick: None}],
|
Skill::AbsorptionI => vec![ConstructEffect {effect: Effect::Absorption, duration: 5, meta: None, tick: None}],
|
||||||
Skill::AbsorbII => vec![ConstructEffect {effect: Effect::Absorb, duration: 7, meta: None, tick: None}],
|
Skill::AbsorptionII => vec![ConstructEffect {effect: Effect::Absorption, duration: 7, meta: None, tick: None}],
|
||||||
Skill::AbsorbIII => vec![ConstructEffect {effect: Effect::Absorb, duration: 9, meta: None, tick: None}],
|
Skill::AbsorptionIII => vec![ConstructEffect {effect: Effect::Absorption, duration: 9, meta: None, tick: None}],
|
||||||
|
|
||||||
Skill::HybridI => vec![ConstructEffect {effect: Effect::Hybrid, duration: 2,
|
Skill::HybridI => vec![ConstructEffect {effect: Effect::Hybrid, duration: 2,
|
||||||
meta: Some(EffectMeta::Multiplier(150)), tick: None }],
|
meta: Some(EffectMeta::Multiplier(150)), tick: None }],
|
||||||
@ -1010,9 +1010,9 @@ impl Skill {
|
|||||||
Skill::ElectrifyIII =>Some(1),
|
Skill::ElectrifyIII =>Some(1),
|
||||||
|
|
||||||
|
|
||||||
Skill::AbsorbtionI |
|
Skill::AbsorbI |
|
||||||
Skill::AbsorbtionII |
|
Skill::AbsorbII |
|
||||||
Skill::AbsorbtionIII => Some(1),
|
Skill::AbsorbIII => Some(1),
|
||||||
|
|
||||||
//-----------
|
//-----------
|
||||||
// Never cast directly
|
// Never cast directly
|
||||||
@ -1026,9 +1026,9 @@ impl Skill {
|
|||||||
Skill::ElectrocuteI |
|
Skill::ElectrocuteI |
|
||||||
Skill::ElectrocuteII |
|
Skill::ElectrocuteII |
|
||||||
Skill::ElectrocuteIII |
|
Skill::ElectrocuteIII |
|
||||||
Skill::AbsorbI |
|
Skill::AbsorptionI |
|
||||||
Skill::AbsorbII |
|
Skill::AbsorptionII |
|
||||||
Skill::AbsorbIII |
|
Skill::AbsorptionIII |
|
||||||
// Ticks
|
// Ticks
|
||||||
Skill::ElectrocuteTickI |
|
Skill::ElectrocuteTickI |
|
||||||
Skill::ElectrocuteTickII |
|
Skill::ElectrocuteTickII |
|
||||||
@ -1153,9 +1153,9 @@ impl Skill {
|
|||||||
Skill::HealI |
|
Skill::HealI |
|
||||||
Skill::HealII |
|
Skill::HealII |
|
||||||
Skill::HealIII |
|
Skill::HealIII |
|
||||||
Skill::AbsorbtionI |
|
Skill::AbsorbI |
|
||||||
Skill::AbsorbtionII |
|
Skill::AbsorbII |
|
||||||
Skill::AbsorbtionIII |
|
Skill::AbsorbIII |
|
||||||
Skill::InvertI |
|
Skill::InvertI |
|
||||||
Skill::InvertII |
|
Skill::InvertII |
|
||||||
Skill::InvertIII |
|
Skill::InvertIII |
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user