Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
196af7bff3 | ||
|
|
3b52fd80d8 | ||
|
|
5bf2ffb3fb | ||
|
|
abc1d297fa | ||
|
|
7c6b27ee1e | ||
|
|
f970eaad47 | ||
|
|
cb425e3641 | ||
|
|
6de5ec2b08 | ||
|
|
ff9fa39c51 | ||
|
|
484c34e62b | ||
|
|
71e7603176 | ||
|
|
d426a0deea | ||
|
|
8154291803 | ||
|
|
a228dc94ce | ||
|
|
998e27b756 | ||
|
|
270319107e | ||
|
|
2af4839bc3 | ||
|
|
eb4183367f | ||
|
|
372ca0d4b0 | ||
|
|
8cb72a7d41 | ||
|
|
4ad58836d0 | ||
|
|
1e136b3ed6 | ||
|
|
f49dee6149 | ||
|
|
da91623e8b | ||
|
|
5284b14831 | ||
|
|
b824f71e63 | ||
|
|
37dd5f8cfe | ||
|
|
5eac5b1715 | ||
|
|
d99041a005 | ||
|
|
190b30bbfe | ||
|
|
dcac358d01 | ||
|
|
dbaf48e72c | ||
|
|
5c35a0c334 | ||
|
|
298767662e | ||
|
|
7d11d25e3e | ||
|
|
c654a9e8e5 | ||
|
|
b94c28c2cb | ||
|
|
9e6f462b17 | ||
|
|
265f08e96f | ||
|
|
d4727dac52 | ||
|
|
cd33724374 | ||
|
|
e16bc7016c | ||
|
|
cab16a21b0 | ||
|
|
cf9b0955ad | ||
|
|
42f0ac7cf4 | ||
|
|
26ee7a2611 | ||
|
|
ec6cba5396 | ||
|
|
c99cdb0661 | ||
|
|
6759048fd1 | ||
|
|
d5fc9fc4f7 | ||
|
|
32b4e83ba1 | ||
|
|
63e4595641 | ||
|
|
ca1d2ea1da | ||
|
|
d9ba1462ef | ||
|
|
1de6c2c6a3 | ||
|
|
d0226d053f | ||
|
|
03e84a8b23 | ||
|
|
5335e1dcc4 | ||
|
|
5a0a029207 |
No files matched your search
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"Skill Template": {
|
||||
"prefix": "skill_template",
|
||||
"body": [
|
||||
"$1: {",
|
||||
" autoTranslate: {",
|
||||
" name: \"\",",
|
||||
" info: ``",
|
||||
" },",
|
||||
" trigger: {",
|
||||
" },",
|
||||
" filter(event, player){",
|
||||
" },",
|
||||
" async content(event, trigger, player){",
|
||||
" },",
|
||||
" ai: {",
|
||||
" threaten: 1",
|
||||
" },",
|
||||
" _priority: 1,",
|
||||
"},"
|
||||
],
|
||||
"description": "一般技能模板"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,234 @@
|
||||
// 用于在game.import中包裹skill,对其进行一定的预处理,使其支持一些如自动导入子技能,自动设置技能名等的功能
|
||||
export function skillFactory(skill) {
|
||||
for (let skill_name in skill.skill) {
|
||||
const skill_content = skill.skill[skill_name];
|
||||
// 自动导入在autoSubSkill下的子技能
|
||||
if (skill_content.autoSubSkill) {
|
||||
skill_content.group || (skill_content.group = []);
|
||||
skill_content.subSkill || (skill_content.subSkill = {});
|
||||
// skill_content.subSkill = skill_content.subSkill ?? {};
|
||||
// skill_content.group = skill_content.group ?? [];
|
||||
for (let autoSubSkillName in skill_content.autoSubSkill) {
|
||||
skill_content.subSkill[autoSubSkillName] = skill_content.autoSubSkill[autoSubSkillName];
|
||||
skill_content.group.push(`${skill_name}_${autoSubSkillName}`);
|
||||
}
|
||||
}
|
||||
// 自动根据autoTranslate设置技能的translate相关内容
|
||||
if (skill_content.autoTranslate) {
|
||||
skill.translate[`${skill_name}`] = skill_content.autoTranslate.name;
|
||||
skill.translate[`${skill_name}_info`] = skill_content.autoTranslate.info;
|
||||
}
|
||||
}
|
||||
return skill;
|
||||
}
|
||||
|
||||
/**
|
||||
* Description 动态载入css
|
||||
* @param {string} cssText css文本
|
||||
* @returns {null}
|
||||
*/
|
||||
const loadStyleString = cssText => {
|
||||
var style = document.createElement("style");
|
||||
style.type = "text/css";
|
||||
try {
|
||||
style.appendChild(document.createTextNode(cssText));
|
||||
} catch (ex) {
|
||||
style.styleSheet.cssText = cssText; // 适用于IE
|
||||
}
|
||||
document.getElementsByTagName("head")[0].appendChild(style);
|
||||
};
|
||||
|
||||
// 储存css
|
||||
const CSSS = {
|
||||
// 故障风
|
||||
glitch: {
|
||||
// 类名
|
||||
className: "avatar-glitch-style-miao",
|
||||
// css样式内容
|
||||
cssText:
|
||||
'.avatar-glitch-style-miao {animation: main-img-hide 8s infinite step-end;overflow: hidden;}.avatar-glitch-style-miao::before, .avatar-glitch-style-miao::after {position: absolute;width: inherit;height: inherit;top: 0px;left: 0;background: inherit;}.avatar-glitch-style-miao::after {content: "";animation: glitch-one 8s infinite step-end;}.avatar-glitch-style-miao::before {content: "";animation: glitch-two 8s infinite 1s step-end;}.player.dead > .avatar-glitch-style-miao {filter: grayscale(1) !important;-webkit-filter: grayscale(1);}@keyframes glitch-one {0% {clip-path: inset(140px 0 -20px);left: -2px;}1% {clip-path: inset(149px 0 4px);left: -9px;}2% {clip-path: inset(52px 0 106px);left: 15px;}3% {clip-path: inset(54px 0 96px);left: 33px;}4% {clip-path: inset(18px 0 108px);left: -2px;}5% {clip-path: inset(12px 0 121px);left: 14px;}6% {clip-path: inset(140px 0 5px);left: -4px;}7% {clip-path: inset(128px 0 1px);left: 33px;}8% {clip-path: inset(37px 0 96px);left: 37px;}9% {clip-path: inset(142px 0 -10px);left: 6px;}10% {clip-path: inset(42px 0 97px);left: 4px;}11% {clip-path: inset(130px 0 27px);left: -12px;}12% {clip-path: inset(141px 0 -7px);left: 31px;}13% {clip-path: inset(101px 0 37px);left: 20px;}14% {clip-path: inset(131px 0 14px);left: 14px;}15% {clip-path: inset(121px 0 28px);left: -18px;}16% {clip-path: inset(147px 0 4px);left: -9px;}17% {clip-path: inset(154px 0 -5px);left: 16px;}18% {clip-path: inset(107px 0 49px);left: 31px;}19% {clip-path: inset(123px 0 24px);left: 33px;}20% {clip-path: inset(44px 0 98px);left: 36px;}21% {clip-path: inset(40px 0 91px);left: 13px;}22% {clip-path: inset(53px 0 76px);left: 34px;}23% {clip-path: inset(161px 0 -30px);left: -3px;}24% {clip-path: inset(25px 0 101px);left: 14px;}25% {clip-path: inset(4px 0 149px);left: 23px;}26% {clip-path: inset(81px 0 63px);left: 6px;}27% {clip-path: inset(22px 0 100px);left: 28px;}28% {clip-path: inset(148px 0 -20px);left: -2px;}29% {clip-path: inset(69px 0 86px);left: -16px;}30% {clip-path: inset(59px 0 79px);left: 35px;}31% {clip-path: inset(8px 0 127px);left: -1px;}32% {clip-path: inset(158px 0 -14px);left: -7px;}33% {clip-path: inset(129px 0 4px);left: 13px;}34% {clip-path: inset(58px 0 91px);left: 34px;}35% {clip-path: inset(55px 0 71px);left: -4px;}36% {clip-path: inset(27px 0 99px);left: 33px;}37% {clip-path: inset(156px 0 -11px);left: -8px;}38% {clip-path: inset(166px 0 -13px);left: 23px;}39% {clip-path: inset(19px 0 132px);left: 36px;}40% {clip-path: inset(52px 0 81px);left: -1px;}41% {clip-path: inset(143px 0 -10px);left: 27px;}42% {clip-path: inset(51px 0 89px);left: -14px;}43% {clip-path: inset(100px 0 51px);left: 20px;}44% {clip-path: inset(84px 0 59px);left: 13px;}45% {clip-path: inset(68px 0 67px);left: 11px;}46% {clip-path: inset(64px 0 78px);left: -17px;}47% {clip-path: inset(7px 0 135px);left: 12px;}48% {clip-path: inset(59px 0 74px);left: 37px;}49% {clip-path: inset(86px 0 65px);left: 16px;}50% {clip-path: inset(112px 0 32px);left: 23px;}51% {clip-path: inset(64px 0 58px);left: 30px;}52% {clip-path: inset(5px 0 139px);left: -10px;}53% {clip-path: inset(85px 0 40px);left: 22px;}54% {clip-path: inset(165px 0 -8px);left: 31px;}55% {clip-path: inset(130px 0 23px);left: -6px;}56% {clip-path: inset(84px 0 54px);left: 12px;}57% {clip-path: inset(155px 0 -9px);left: -13px;}58% {clip-path: inset(61px 0 91px);left: -17px;}59% {clip-path: inset(139px 0 -15px);left: 36px;}60% {clip-path: inset(139px 0 15px);left: 40px;}61% {clip-path: inset(59px 0 76px);left: 20px;}62% {clip-path: inset(88px 0 61px);left: -2px;}63% {clip-path: inset(12px 0 140px);left: 5px;}64% {clip-path: inset(11px 0 118px);left: 27px;}65% {clip-path: inset(93px 0 32px);left: 26px;}66% {clip-path: inset(149px 0 -2px);left: 19px;}67% {clip-path: inset(165px 0 -26px);left: 38px;}68% {clip-path: inset(36px 0 123px);left: 10px;}69% {clip-path: inset(43px 0 89px);left: -16px;}70% {clip-path: inset(68px 0 55px);left: 19px;}71% {clip-path: inset(165px 0 -45px);left: -5px;}72% {clip-path: inset(120px 0 21px);left: 28px;}73% {clip-path: inset(74px 0 74px);left: -3px;}74% {clip-path: inset(37px 0 93px);left: -13px;}75% {clip-path: inset(38px 0 85px);left: 20px;}76% {clip-path: inset(96px 0 50px);left: 12px;}77% {clip-path: inset(50px 0 76px);left: 30px;}78% {clip-path: inset(120px 0 12px);left: -12px;}79% {clip-path: inset(153px 0 -4px);left: 11px;}80% {clip-path: inset(7px 0 133px);left: -13px;}81% {clip-path: inset(107px 0 17px);left: 34px;}82% {clip-path: inset(136px 0 22px);left: -9px;}83% {clip-path: inset(103px 0 28px);left: -17px;}84% {clip-path: inset(89px 0 59px);left: 1px;}85% {clip-path: inset(58px 0 83px);left: 40px;}86% {clip-path: inset(159px 0 -18px);left: 35px;}87% {clip-path: inset(155px 0 -22px);left: 24px;}88% {clip-path: inset(148px 0 -7px);left: -16px;}89% {clip-path: inset(52px 0 92px);left: 15px;}90% {clip-path: inset(94px 0 34px);left: 39px;}91% {clip-path: inset(3px 0 137px);left: 24px;}92% {clip-path: inset(143px 0 -10px);left: 13px;}93% {clLine truncated
|
||||
}
|
||||
};
|
||||
|
||||
export default (lib, game, ui, get, ai, _status) => {
|
||||
const miaoTool = {
|
||||
/**
|
||||
* Description 游戏全局相关操作
|
||||
*/
|
||||
game: {},
|
||||
/**
|
||||
* Description 角色相关操作
|
||||
*/
|
||||
player: {
|
||||
/**
|
||||
* Description 更换角色的头像
|
||||
* @param {Player} player 需要更换头像的玩家
|
||||
* @param {string} imageSource 图片源,可以为角色名(player.name)
|
||||
* @param {number|string} replace 要替代的,默认为1(单将模式不用管)
|
||||
* @returns {null} 无返回
|
||||
*/
|
||||
changeAvatar(player, imageSource, replace) {
|
||||
if (replace && (player.name2 === replace || replace === 2)) {
|
||||
player.node.avatar2.setBackground(imageSource, "character");
|
||||
} else {
|
||||
player.node.avatar.setBackground(imageSource, "character");
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Description 为角色设置用于显示的名称(如吕布,貂蝉等)
|
||||
* @param {Player} player 要设置名称的玩家
|
||||
* @param {string} name 新名称
|
||||
* @param {undefined | 1 | 2 | string} replace name1或name2
|
||||
* @returns {null}
|
||||
*/
|
||||
setName(player, name, replace) {
|
||||
let targetNode = player.node.name;
|
||||
if (replace && (player.name2 === replace || replace === 2)) {
|
||||
targetNode = player.node.name2;
|
||||
}
|
||||
targetNode.innerHTML = name;
|
||||
},
|
||||
/**
|
||||
* Description
|
||||
* @param {any} player player对象
|
||||
* @param {"glitch"} styleName 想要设置的风格,如glitch(详见CSSS)
|
||||
* @param {number|string} replace 要替代的,默认为1(单将模式不用管)
|
||||
* @returns {any}
|
||||
*/
|
||||
changeAvatarStyle(player, styleName, replace) {
|
||||
if (!player || !styleName) return;
|
||||
if (CSSS[styleName]) {
|
||||
// 导入相关样式
|
||||
if (!lib.miaoStorage.initedStyle.includes(styleName)) {
|
||||
loadStyleString(CSSS[styleName].cssText);
|
||||
lib.miaoStorage.initedStyle.push(styleName);
|
||||
}
|
||||
let dom = player.node.avatar;
|
||||
if (replace && (player.name2 === replace || replace === 2)) {
|
||||
dom = player.node.avatar2;
|
||||
}
|
||||
dom.classList.add(CSSS[styleName].className);
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Description 判断玩家是否可以使用卡牌
|
||||
* @param {Player} player 玩家对象
|
||||
* @param {Card} card 卡牌对象
|
||||
* @returns {boolean} 如果玩家可以使用卡牌,则返回true,否则返回false
|
||||
*/
|
||||
canUse(player, card) {
|
||||
return player.hasUseTarget(card)
|
||||
// return game.filterPlayer(current => {
|
||||
// return lib.filter.targetEnabled2(card, player, current);
|
||||
// }).length != 0
|
||||
}
|
||||
},
|
||||
loadash: {
|
||||
/**
|
||||
* Description 浅浅拷贝对象
|
||||
* @param {Array | Object} target
|
||||
* @returns {Array | Object}
|
||||
*/
|
||||
shallowClone(target) {
|
||||
if (Array.isArray(target)) {
|
||||
return [...target];
|
||||
}
|
||||
if (typeof target === "object" && target !== null) {
|
||||
return { ...target };
|
||||
}
|
||||
return target;
|
||||
},
|
||||
/**
|
||||
* Description 从数组中随机获取指定数量的元素
|
||||
* @param {Array} arr 原始数组
|
||||
* @param {number} count 需要获取的元素数量,默认为1
|
||||
* @returns {Array} 返回一个包含随机元素的新数组
|
||||
*/
|
||||
arrRandomGet(arr, count) {
|
||||
arr = [...arr];
|
||||
count = count || 1;
|
||||
const result = [];
|
||||
for (let i = 0; i < count; i++) {
|
||||
const index = Math.floor(Math.random() * arr.length);
|
||||
result.push(arr[index]);
|
||||
arr.splice(index, 1);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
},
|
||||
// 提供一些便捷的math功能
|
||||
math: {
|
||||
/**
|
||||
* Description
|
||||
* @param {number} start
|
||||
* @param {number} end
|
||||
* @returns {number} [start,end]
|
||||
*/
|
||||
randInt(start, end) {
|
||||
end += 1;
|
||||
return Math.floor(Math.random() * (end - start) + start);
|
||||
}
|
||||
},
|
||||
// 一些不好分类的功能放在这里
|
||||
other: {
|
||||
/**
|
||||
* Description 返回一个function,每次执行会控制台递增输出0,1,2等等,用于debug挺好
|
||||
* @returns {function}
|
||||
*/
|
||||
useLogger() {
|
||||
let count = 0;
|
||||
return (...args) => {
|
||||
console.log(count++, ...args);
|
||||
};
|
||||
},
|
||||
/**
|
||||
* Description 类似python的sleep,配合await使用,使async函数暂停。
|
||||
* @param {number} timeout 暂停时间
|
||||
* @returns {null}
|
||||
*/
|
||||
async sleep(timeout) {
|
||||
await new Promise(r => setTimeout(r, timeout));
|
||||
return;
|
||||
},
|
||||
|
||||
isAsyncFunction(func) {
|
||||
return func.constructor.name === "AsyncFunction";
|
||||
},
|
||||
|
||||
loadStyleString,
|
||||
|
||||
/**
|
||||
* Description 让一个obj的某一函数执行前后额外执行一些东西
|
||||
* @param {object} target
|
||||
* @param {string} key
|
||||
* @param {{before: () => void; after: () => void}} config
|
||||
* @returns {() => void} unhook
|
||||
*/
|
||||
hook(target, key, config) {
|
||||
let enable = true;
|
||||
const originFunc = target[key];
|
||||
const _do = (func, args) => {
|
||||
// if(miaoTool.other.isAsyncFunction) {
|
||||
// await func(...args)
|
||||
// } else {
|
||||
func(...args);
|
||||
// }
|
||||
};
|
||||
target[key] = (...args) => {
|
||||
if (enable && config.before) {
|
||||
_do(config.before, args);
|
||||
}
|
||||
const result = originFunc.call(target, ...args);
|
||||
if (enable && config.after) {
|
||||
_do(config.after, args);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
return () => {
|
||||
enable = false;
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
return miaoTool;
|
||||
};
|
||||
@@ -0,0 +1,304 @@
|
||||
$imgHeight: 180;
|
||||
|
||||
@function randomNum($max, $min: 0, $u: 1) {
|
||||
@return ($min + random($max)) * $u;
|
||||
}
|
||||
|
||||
@mixin leftAndClip {
|
||||
$height: randomNum(40, 20);
|
||||
$top: random($imgHeight - 10);
|
||||
$bottom: $imgHeight - $top - $height;
|
||||
clip-path: inset(#{$top}px 0 #{$bottom}px);
|
||||
left: #{randomNum(60, -20)}px;
|
||||
}
|
||||
|
||||
.avatar-glitch-style-miao {
|
||||
animation: main-img-hide 8s infinite step-end;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.avatar-glitch-style-miao::before,
|
||||
.avatar-glitch-style-miao::after {
|
||||
position: absolute;
|
||||
width: inherit;
|
||||
height: inherit;
|
||||
top: 0px;
|
||||
left: 0;
|
||||
background: inherit;
|
||||
}
|
||||
|
||||
.avatar-glitch-style-miao::after {
|
||||
content: "";
|
||||
animation: glitch-one 8s infinite step-end;
|
||||
}
|
||||
|
||||
.avatar-glitch-style-miao::before {
|
||||
content: "";
|
||||
animation: glitch-two 8s infinite 1s step-end;
|
||||
}
|
||||
|
||||
.player.dead>.avatar-glitch-style-miao {
|
||||
filter: grayscale(1) !important;
|
||||
-webkit-filter: grayscale(1);
|
||||
}
|
||||
|
||||
@keyframes glitch-one {
|
||||
@for $i from 0 to 100 {
|
||||
#{$i}% {
|
||||
@include leftAndClip;
|
||||
}
|
||||
}
|
||||
|
||||
15.5% {
|
||||
clip-path: inset(10px 0 320px);
|
||||
left: -20px;
|
||||
}
|
||||
16% {
|
||||
clip-path: inset(10px 0 320px);
|
||||
left: -10px;
|
||||
opacity: 0;
|
||||
}
|
||||
45% {
|
||||
opacity: 0.5;
|
||||
left: -20px;
|
||||
filter: hue-rotate(90deg) saturate(1.3);
|
||||
}
|
||||
45.5% {
|
||||
left: 0px;
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
46% {
|
||||
clip-path: inset(150px 0 160px);
|
||||
left: 15%;
|
||||
}
|
||||
46.5% {
|
||||
clip-path: inset(20px 0 200px);
|
||||
left: -10%;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
47% {
|
||||
clip-path: inset(240px 0 20px);
|
||||
left: -11%;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
47.5% {
|
||||
clip-path: inset(20 0 20px);
|
||||
left: 13%;
|
||||
transform: scale(1.3);
|
||||
filter: invert(0);
|
||||
}
|
||||
48% {
|
||||
clip-path: inset(120 0 120px);
|
||||
left: 15%;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
48.5% {
|
||||
clip-path: inset(260px 0 10px);
|
||||
left: -11%;
|
||||
transform: scale(1.2);
|
||||
filter: none;
|
||||
}
|
||||
49% {
|
||||
clip-path: inset(5px 0 350px);
|
||||
left: 11%;
|
||||
transform: scale(1.3);
|
||||
}
|
||||
49.5% {
|
||||
clip-path: inset(105px 0 210px);
|
||||
left: 0%;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
50% {
|
||||
clip-path: inset(175px 0 160px);
|
||||
left: -11%;
|
||||
}
|
||||
50.5% {
|
||||
clip-path: inset(95px 0 230px);
|
||||
left: -14%;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
51% {
|
||||
clip-path: inset(235px 0 12px);
|
||||
left: -14%;
|
||||
}
|
||||
51.5% {
|
||||
clip-path: inset(350px 0 7px);
|
||||
left: -14%;
|
||||
}
|
||||
52% {
|
||||
clip-path: inset(320px 0 27px);
|
||||
left: -12%;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
52.5% {
|
||||
clip-path: inset(190px 0 127px);
|
||||
left: -11%;
|
||||
transform: scale(1.3);
|
||||
filter: hue-rotate(90deg) saturate(1.3);
|
||||
}
|
||||
54% {
|
||||
clip-path: inset(20px 0 20px);
|
||||
left: 12%;
|
||||
transform: scale(1.1);
|
||||
filter: none;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes glitch-two {
|
||||
@for $i from 0 to 100 {
|
||||
#{$i}% {
|
||||
@include leftAndClip;
|
||||
}
|
||||
}
|
||||
|
||||
25.5% {
|
||||
clip-path: inset(10px 0 320px);
|
||||
left: -20px;
|
||||
}
|
||||
26% {
|
||||
clip-path: inset(10px 0 320px);
|
||||
left: -10px;
|
||||
opacity: 0;
|
||||
}
|
||||
45% {
|
||||
opacity: 0.3;
|
||||
left: -20px;
|
||||
filter: hue-rotate(45deg) saturate(1.1);
|
||||
}
|
||||
45.5% {
|
||||
left: 0px;
|
||||
filter: invert(1.2);
|
||||
}
|
||||
|
||||
46% {
|
||||
clip-path: inset(50px 0 260px);
|
||||
left: -12%;
|
||||
}
|
||||
46.5% {
|
||||
clip-path: inset(120px 0 100px);
|
||||
left: 8%;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
47% {
|
||||
clip-path: inset(40px 0 300px);
|
||||
left: 8%;
|
||||
transform: scale(1.3);
|
||||
}
|
||||
47.5% {
|
||||
clip-path: inset(220 0 70px);
|
||||
left: -9%;
|
||||
transform: scale(1.1);
|
||||
filter: invert(1.1);
|
||||
}
|
||||
48% {
|
||||
clip-path: inset(240px 0 120px);
|
||||
left: 11%;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
48.5% {
|
||||
clip-path: inset(0px 0 310px);
|
||||
left: -12%;
|
||||
transform: scale(1.2);
|
||||
filter: none;
|
||||
}
|
||||
49% {
|
||||
clip-path: inset(255px 0 50px);
|
||||
left: 11%;
|
||||
transform: scale(1.3);
|
||||
}
|
||||
49.5% {
|
||||
clip-path: inset(10px 0 240px);
|
||||
left: 6%;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
50% {
|
||||
clip-path: inset(275px 0 90px);
|
||||
left: -12%;
|
||||
}
|
||||
50.5% {
|
||||
clip-path: inset(195px 0 90px);
|
||||
left: 14%;
|
||||
transform: scale(1.4);
|
||||
}
|
||||
51% {
|
||||
clip-path: inset(35px 0 282px);
|
||||
left: -14%;
|
||||
}
|
||||
51.5% {
|
||||
clip-path: inset(350px 0 7px);
|
||||
left: 14%;
|
||||
}
|
||||
52% {
|
||||
clip-path: inset(20px 0 270px);
|
||||
left: -12%;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
52.5% {
|
||||
clip-path: inset(90px 0 227px);
|
||||
left: -11%;
|
||||
transform: scale(1.3);
|
||||
filter: hue-rotate(150deg) saturate(1.3);
|
||||
}
|
||||
54% {
|
||||
clip-path: inset(220px 0 100px);
|
||||
left: 12%;
|
||||
transform: scale(1.1);
|
||||
filter: none;
|
||||
}
|
||||
}
|
||||
@keyframes main-img-hide {
|
||||
5% {
|
||||
filter: invert(1);
|
||||
}
|
||||
5.2% {
|
||||
filter: none;
|
||||
}
|
||||
10% {
|
||||
opacity: 0.5;
|
||||
filter: grayscale(1);
|
||||
}
|
||||
11% {
|
||||
filter: none;
|
||||
opacity: 1;
|
||||
}
|
||||
45% {
|
||||
opacity: 0.5;
|
||||
filter: grayscale(1);
|
||||
}
|
||||
46% {
|
||||
filter: none;
|
||||
opacity: 1;
|
||||
}
|
||||
53.5% {
|
||||
opacity: 0.5;
|
||||
filter: grayscale(1);
|
||||
}
|
||||
54% {
|
||||
filter: none;
|
||||
opacity: 1;
|
||||
}
|
||||
54.5% {
|
||||
opacity: 0.5;
|
||||
filter: hue-rotate(30deg);
|
||||
}
|
||||
55% {
|
||||
filter: none;
|
||||
}
|
||||
55.5% {
|
||||
opacity: 1;
|
||||
}
|
||||
56% {
|
||||
opacity: 0.5;
|
||||
}
|
||||
56.5% {
|
||||
opacity: 0.8;
|
||||
}
|
||||
57% {
|
||||
opacity: 0.3;
|
||||
}
|
||||
58% {
|
||||
filter: none;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
.avatar-glitch-style-miao {animation: main-img-hide 8s infinite step-end;overflow: hidden;}.avatar-glitch-style-miao::before, .avatar-glitch-style-miao::after {position: absolute;width: inherit;height: inherit;top: 0px;left: 0;background: inherit;}.avatar-glitch-style-miao::after {content: "";animation: glitch-one 8s infinite step-end;}.avatar-glitch-style-miao::before {content: "";animation: glitch-two 8s infinite 1s step-end;}.player.dead > .avatar-glitch-style-miao {filter: grayscale(1) !important;-webkit-filter: grayscale(1);}@keyframes glitch-one {0% {clip-path: inset(140px 0 -20px);left: -2px;}1% {clip-path: inset(149px 0 4px);left: -9px;}2% {clip-path: inset(52px 0 106px);left: 15px;}3% {clip-path: inset(54px 0 96px);left: 33px;}4% {clip-path: inset(18px 0 108px);left: -2px;}5% {clip-path: inset(12px 0 121px);left: 14px;}6% {clip-path: inset(140px 0 5px);left: -4px;}7% {clip-path: inset(128px 0 1px);left: 33px;}8% {clip-path: inset(37px 0 96px);left: 37px;}9% {clip-path: inset(142px 0 -10px);left: 6px;}10% {clip-path: inset(42px 0 97px);left: 4px;}11% {clip-path: inset(130px 0 27px);left: -12px;}12% {clip-path: inset(141px 0 -7px);left: 31px;}13% {clip-path: inset(101px 0 37px);left: 20px;}14% {clip-path: inset(131px 0 14px);left: 14px;}15% {clip-path: inset(121px 0 28px);left: -18px;}16% {clip-path: inset(147px 0 4px);left: -9px;}17% {clip-path: inset(154px 0 -5px);left: 16px;}18% {clip-path: inset(107px 0 49px);left: 31px;}19% {clip-path: inset(123px 0 24px);left: 33px;}20% {clip-path: inset(44px 0 98px);left: 36px;}21% {clip-path: inset(40px 0 91px);left: 13px;}22% {clip-path: inset(53px 0 76px);left: 34px;}23% {clip-path: inset(161px 0 -30px);left: -3px;}24% {clip-path: inset(25px 0 101px);left: 14px;}25% {clip-path: inset(4px 0 149px);left: 23px;}26% {clip-path: inset(81px 0 63px);left: 6px;}27% {clip-path: inset(22px 0 100px);left: 28px;}28% {clip-path: inset(148px 0 -20px);left: -2px;}29% {clip-path: inset(69px 0 86px);left: -16px;}30% {clip-path: inset(59px 0 79px);left: 35px;}31% {clip-path: inset(8px 0 127px);left: -1px;}32% {clip-path: inset(158px 0 -14px);left: -7px;}33% {clip-path: inset(129px 0 4px);left: 13px;}34% {clip-path: inset(58px 0 91px);left: 34px;}35% {clip-path: inset(55px 0 71px);left: -4px;}36% {clip-path: inset(27px 0 99px);left: 33px;}37% {clip-path: inset(156px 0 -11px);left: -8px;}38% {clip-path: inset(166px 0 -13px);left: 23px;}39% {clip-path: inset(19px 0 132px);left: 36px;}40% {clip-path: inset(52px 0 81px);left: -1px;}41% {clip-path: inset(143px 0 -10px);left: 27px;}42% {clip-path: inset(51px 0 89px);left: -14px;}43% {clip-path: inset(100px 0 51px);left: 20px;}44% {clip-path: inset(84px 0 59px);left: 13px;}45% {clip-path: inset(68px 0 67px);left: 11px;}46% {clip-path: inset(64px 0 78px);left: -17px;}47% {clip-path: inset(7px 0 135px);left: 12px;}48% {clip-path: inset(59px 0 74px);left: 37px;}49% {clip-path: inset(86px 0 65px);left: 16px;}50% {clip-path: inset(112px 0 32px);left: 23px;}51% {clip-path: inset(64px 0 58px);left: 30px;}52% {clip-path: inset(5px 0 139px);left: -10px;}53% {clip-path: inset(85px 0 40px);left: 22px;}54% {clip-path: inset(165px 0 -8px);left: 31px;}55% {clip-path: inset(130px 0 23px);left: -6px;}56% {clip-path: inset(84px 0 54px);left: 12px;}57% {clip-path: inset(155px 0 -9px);left: -13px;}58% {clip-path: inset(61px 0 91px);left: -17px;}59% {clip-path: inset(139px 0 -15px);left: 36px;}60% {clip-path: inset(139px 0 15px);left: 40px;}61% {clip-path: inset(59px 0 76px);left: 20px;}62% {clip-path: inset(88px 0 61px);left: -2px;}63% {clip-path: inset(12px 0 140px);left: 5px;}64% {clip-path: inset(11px 0 118px);left: 27px;}65% {clip-path: inset(93px 0 32px);left: 26px;}66% {clip-path: inset(149px 0 -2px);left: 19px;}67% {clip-path: inset(165px 0 -26px);left: 38px;}68% {clip-path: inset(36px 0 123px);left: 10px;}69% {clip-path: inset(43px 0 89px);left: -16px;}70% {clip-path: inset(68px 0 55px);left: 19px;}71% {clip-path: inset(165px 0 -45px);left: -5px;}72% {clip-path: inset(120px 0 21px);left: 28px;}73% {clip-path: inset(74px 0 74px);left: -3px;}74% {clip-path: inset(37px 0 93px);left: -13px;}75% {clip-path: inset(38px 0 85px);left: 20px;}76% {clip-path: inset(96px 0 50px);left: 12px;}77% {clip-path: inset(50px 0 76px);left: 30px;}78% {clip-path: inset(120px 0 12px);left: -12px;}79% {clip-path: inset(153px 0 -4px);left: 11px;}80% {clip-path: inset(7px 0 133px);left: -13px;}81% {clip-path: inset(107px 0 17px);left: 34px;}82% {clip-path: inset(136px 0 22px);left: -9px;}83% {clip-path: inset(103px 0 28px);left: -17px;}84% {clip-path: inset(89px 0 59px);left: 1px;}85% {clip-path: inset(58px 0 83px);left: 40px;}86% {clip-path: inset(159px 0 -18px);left: 35px;}87% {clip-path: inset(155px 0 -22px);left: 24px;}88% {clip-path: inset(148px 0 -7px);left: -16px;}89% {clip-path: inset(52px 0 92px);left: 15px;}90% {clip-path: inset(94px 0 34px);left: 39px;}91% {clip-path: inset(3px 0 137px);left: 24px;}92% {clip-path: inset(143px 0 -10px);left: 13px;}93% {clip-pLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
仅用于暂存css文件
|
||||
|
After Width: | Height: | Size: 215 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 314 KiB |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 332 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 125 KiB |