koishi-plugin-dew-bot 1.0.188
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/html/css/body.css +287 -0
- package/lib/html/css/equip.css +115 -0
- package/lib/html/css/skill.css +75 -0
- package/lib/html/css/talent.css +58 -0
- package/lib/html/page/body.html +96 -0
- package/lib/html/page/equip.html +98 -0
- package/lib/html/page/mini_texas.html +493 -0
- package/lib/html/page/skill.html +76 -0
- package/lib/html/page/talent.html +76 -0
- package/lib/html/res/avatar.jpg +0 -0
- package/lib/html/res/body/box.png +0 -0
- package/lib/html/res/body/share/test.png +0 -0
- package/lib/html/res/body/title/test.png +0 -0
- package/lib/html/res/body/title/test1.png +0 -0
- package/lib/html/res/equip/equip_border.png +0 -0
- package/lib/html/res/equip/icon/none.png +0 -0
- package/lib/html/res/equip/icon/test.png +0 -0
- package/lib/html/res/equip/quality/0.png +0 -0
- package/lib/html/res/equip/quality/1.png +0 -0
- package/lib/html/res/equip/quality/2.png +0 -0
- package/lib/html/res/equip/quality/3.png +0 -0
- package/lib/html/res/equip/quality/4.png +0 -0
- package/lib/html/res/equip/quality/5.png +0 -0
- package/lib/html/res/equip/quality/6.png +0 -0
- package/lib/html/res/equip/quality/7.png +0 -0
- package/lib/html/res/equip/quality/8.png +0 -0
- package/lib/html/res/equip/quality/9.png +0 -0
- package/lib/html/res/font/cn.ttf +0 -0
- package/lib/html/res/font/xiaomai.ttf +0 -0
- package/lib/html/res/mini/chip/chip0.png +0 -0
- package/lib/html/res/mini/chip/chip1.png +0 -0
- package/lib/html/res/mini/chip/chip2.png +0 -0
- package/lib/html/res/mini/chip/chip3.png +0 -0
- package/lib/html/res/mini/chip/chip4.png +0 -0
- package/lib/html/res/mini/chip/chip5.png +0 -0
- package/lib/html/res/mini/poker/backPoker.png +0 -0
- package/lib/html/res/mini/poker/poker_0_10.png +0 -0
- package/lib/html/res/mini/poker/poker_0_11.png +0 -0
- package/lib/html/res/mini/poker/poker_0_12.png +0 -0
- package/lib/html/res/mini/poker/poker_0_13.png +0 -0
- package/lib/html/res/mini/poker/poker_0_14.png +0 -0
- package/lib/html/res/mini/poker/poker_0_2.png +0 -0
- package/lib/html/res/mini/poker/poker_0_3.png +0 -0
- package/lib/html/res/mini/poker/poker_0_4.png +0 -0
- package/lib/html/res/mini/poker/poker_0_5.png +0 -0
- package/lib/html/res/mini/poker/poker_0_6.png +0 -0
- package/lib/html/res/mini/poker/poker_0_7.png +0 -0
- package/lib/html/res/mini/poker/poker_0_8.png +0 -0
- package/lib/html/res/mini/poker/poker_0_9.png +0 -0
- package/lib/html/res/mini/poker/poker_1_10.png +0 -0
- package/lib/html/res/mini/poker/poker_1_11.png +0 -0
- package/lib/html/res/mini/poker/poker_1_12.png +0 -0
- package/lib/html/res/mini/poker/poker_1_13.png +0 -0
- package/lib/html/res/mini/poker/poker_1_14.png +0 -0
- package/lib/html/res/mini/poker/poker_1_2.png +0 -0
- package/lib/html/res/mini/poker/poker_1_3.png +0 -0
- package/lib/html/res/mini/poker/poker_1_4.png +0 -0
- package/lib/html/res/mini/poker/poker_1_5.png +0 -0
- package/lib/html/res/mini/poker/poker_1_6.png +0 -0
- package/lib/html/res/mini/poker/poker_1_7.png +0 -0
- package/lib/html/res/mini/poker/poker_1_8.png +0 -0
- package/lib/html/res/mini/poker/poker_1_9.png +0 -0
- package/lib/html/res/mini/poker/poker_2_10.png +0 -0
- package/lib/html/res/mini/poker/poker_2_11.png +0 -0
- package/lib/html/res/mini/poker/poker_2_12.png +0 -0
- package/lib/html/res/mini/poker/poker_2_13.png +0 -0
- package/lib/html/res/mini/poker/poker_2_14.png +0 -0
- package/lib/html/res/mini/poker/poker_2_2.png +0 -0
- package/lib/html/res/mini/poker/poker_2_3.png +0 -0
- package/lib/html/res/mini/poker/poker_2_4.png +0 -0
- package/lib/html/res/mini/poker/poker_2_5.png +0 -0
- package/lib/html/res/mini/poker/poker_2_6.png +0 -0
- package/lib/html/res/mini/poker/poker_2_7.png +0 -0
- package/lib/html/res/mini/poker/poker_2_8.png +0 -0
- package/lib/html/res/mini/poker/poker_2_9.png +0 -0
- package/lib/html/res/mini/poker/poker_3_10.png +0 -0
- package/lib/html/res/mini/poker/poker_3_11.png +0 -0
- package/lib/html/res/mini/poker/poker_3_12.png +0 -0
- package/lib/html/res/mini/poker/poker_3_13.png +0 -0
- package/lib/html/res/mini/poker/poker_3_14.png +0 -0
- package/lib/html/res/mini/poker/poker_3_2.png +0 -0
- package/lib/html/res/mini/poker/poker_3_3.png +0 -0
- package/lib/html/res/mini/poker/poker_3_4.png +0 -0
- package/lib/html/res/mini/poker/poker_3_5.png +0 -0
- package/lib/html/res/mini/poker/poker_3_6.png +0 -0
- package/lib/html/res/mini/poker/poker_3_7.png +0 -0
- package/lib/html/res/mini/poker/poker_3_8.png +0 -0
- package/lib/html/res/mini/poker/poker_3_9.png +0 -0
- package/lib/html/res/mini/texas/bg.jpg +0 -0
- package/lib/html/res/mini/texas/win.png +0 -0
- package/lib/html/res/quality/test.png +0 -0
- package/lib/html/res/skill/att/dark.png +0 -0
- package/lib/html/res/skill/att/divine.png +0 -0
- package/lib/html/res/skill/att/earth.png +0 -0
- package/lib/html/res/skill/att/fire.png +0 -0
- package/lib/html/res/skill/att/light.png +0 -0
- package/lib/html/res/skill/att/spell.png +0 -0
- package/lib/html/res/skill/att/trap.png +0 -0
- package/lib/html/res/skill/att/water.png +0 -0
- package/lib/html/res/skill/att/wind.png +0 -0
- package/lib/html/res/skill/frame/0.jpg +0 -0
- package/lib/html/res/skill/frame/1.jpg +0 -0
- package/lib/html/res/skill/frame/2.jpg +0 -0
- package/lib/html/res/skill/frame/3.jpg +0 -0
- package/lib/html/res/skill/frame/4.jpg +0 -0
- package/lib/html/res/skill/frame/5.jpg +0 -0
- package/lib/html/res/skill/frame/6.jpg +0 -0
- package/lib/html/res/skill/frame/7.jpg +0 -0
- package/lib/html/res/skill/frame/8.jpg +0 -0
- package/lib/html/res/skill/frame/9.jpg +0 -0
- package/lib/html/res/skill/star/level.png +0 -0
- package/lib/html/res/skill/star/rank.png +0 -0
- package/lib/html/res/skill/test.jpg +0 -0
- package/lib/html/res/vue2.js +11 -0
- package/lib/index.js +46 -0
- package/lib/inits.js +43 -0
- package/lib/msgCsl.js +97 -0
- package/lib/plugin/console.js +17 -0
- package/lib/plugin/messageQueue.js +134 -0
- package/lib/plugin/puppeteer.js +81 -0
- package/lib/plugin/rateLimiter.js +104 -0
- package/lib/plugin/server.js +206 -0
- package/lib/plugin/serverHandel/handel_base.js +27 -0
- package/lib/plugin/serverHandel/image.js +19 -0
- package/lib/plugin/serverHandel/none.js +15 -0
- package/lib/plugin/serverHandel/text.js +20 -0
- package/lib/plugin/sessions.js +33 -0
- package/lib/shared/IBody.js +2 -0
- package/lib/shared/IMassage.js +9 -0
- package/lib/shared/MsgMessage.js +4 -0
- package/lib/shared/PtlMessage.js +4 -0
- package/lib/shared/PtlTest.js +4 -0
- package/lib/shared/base.js +2 -0
- package/lib/shared/face/index.js +47 -0
- package/lib/shared/serviceProto.js +328 -0
- package/package.json +36 -0
- package/readme.md +9 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>装备卡片</title>
|
|
8
|
+
<script src="../res/vue2.js"></script>
|
|
9
|
+
<link rel="stylesheet" href="../css/equip.css">
|
|
10
|
+
</head>
|
|
11
|
+
|
|
12
|
+
<body>
|
|
13
|
+
<div id="app">
|
|
14
|
+
<div class="equip-iconBox">
|
|
15
|
+
<img class="equip-icon-border" src="../res/equip/equip_border.png">
|
|
16
|
+
<img class="equip-icon-quality" :src="'../res/equip/quality/' + data.quality + '.png'">
|
|
17
|
+
<img class="equip-icon" :src="data.icon" onerror="this.onerror=null; this.src='../res/equip/icon/none.png'">
|
|
18
|
+
</div>
|
|
19
|
+
<div class="equip-baseInfo">
|
|
20
|
+
<div class="equip-name">
|
|
21
|
+
{{ data.name }}
|
|
22
|
+
</div>
|
|
23
|
+
<div class="quality">
|
|
24
|
+
{{ convertToStars(data.quality) }}
|
|
25
|
+
</div>
|
|
26
|
+
<div class="attribute">
|
|
27
|
+
<div v-for="item in data.attribute" :key="item.key">
|
|
28
|
+
{{ item.key }} {{ item.val }}
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="info-box" v-if="data.skill.length > 0">
|
|
32
|
+
<div class="info-box-title">附带技能:</div>
|
|
33
|
+
<div class="info-box-content">
|
|
34
|
+
<div v-for="item in data.skill" :key="item.id">
|
|
35
|
+
No.{{ item.id }} - {{ item.name }}
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="info-box">
|
|
40
|
+
<div class="info-box-title">装备介绍:</div>
|
|
41
|
+
<div class="info-box-content">
|
|
42
|
+
{{ data.desc }}
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="info-box">
|
|
46
|
+
<div class="info-box-title">装备来源:</div>
|
|
47
|
+
<div class="info-box-content">
|
|
48
|
+
{{ data.source }}
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="info-box">
|
|
52
|
+
<div class="info-box-title">装备位置:</div>
|
|
53
|
+
<div class="info-box-content">
|
|
54
|
+
{{ data.type }}
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
<script>
|
|
60
|
+
let data = {
|
|
61
|
+
name: '星辰法杖111',
|
|
62
|
+
quality: 9,
|
|
63
|
+
icon: 'test',
|
|
64
|
+
attribute: [],
|
|
65
|
+
skill: [{ id: 'p1', name: '金璋皇极' }],
|
|
66
|
+
desc: '',
|
|
67
|
+
source: '世界掉落 · 十日终焉',
|
|
68
|
+
type: '武器',
|
|
69
|
+
};
|
|
70
|
+
new Vue({
|
|
71
|
+
el: '#app',
|
|
72
|
+
data: {
|
|
73
|
+
name: '',
|
|
74
|
+
quality: 4,
|
|
75
|
+
icon: 'none',
|
|
76
|
+
attribute: [],
|
|
77
|
+
skill: [],
|
|
78
|
+
desc: '',
|
|
79
|
+
source: '',
|
|
80
|
+
type: '',
|
|
81
|
+
},
|
|
82
|
+
mounted() {
|
|
83
|
+
this.data = data;
|
|
84
|
+
},
|
|
85
|
+
methods: {
|
|
86
|
+
convertToStars(number) {
|
|
87
|
+
number = number + 1;
|
|
88
|
+
let str = '';
|
|
89
|
+
for (let i = 0; i < number; i++) {
|
|
90
|
+
str += '★';
|
|
91
|
+
}
|
|
92
|
+
return str;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
</script>
|
|
97
|
+
|
|
98
|
+
</body>
|
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>德州扑克</title>
|
|
8
|
+
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body>
|
|
12
|
+
<div id="app" class="poker-table">
|
|
13
|
+
<img src="../res/mini/texas/bg.jpg" class="background-image">
|
|
14
|
+
|
|
15
|
+
<div class="table">
|
|
16
|
+
<!-- 总注区域 -->
|
|
17
|
+
<div v-if="state == 2" class="chip-pool">
|
|
18
|
+
<div class="chip-pool-info">
|
|
19
|
+
<img src="../res/mini/chip/chip5.png" style="width: 15px; height: 15px;"><span
|
|
20
|
+
style="color: black;font-size: 14px;">总注:</span><span
|
|
21
|
+
style="color: yellow; text-shadow: 1px 1px 0 rgb(235, 186, 27);font-size: 14px;">{{chip_all}}</span>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
<!-- 公牌 -->
|
|
25
|
+
<div v-if="state == 2 || state == 3" class="gongpai">
|
|
26
|
+
<img v-for="(card, index) in communityCards" :src="getCardUrl(card)" :key="index">
|
|
27
|
+
</div>
|
|
28
|
+
<!-- 房间信息 -->
|
|
29
|
+
<div v-if="state == 1" class="table-info">
|
|
30
|
+
德州扑克-上不封顶-2人以上自动开始
|
|
31
|
+
</div>
|
|
32
|
+
<!-- 用户筹码区域 -->
|
|
33
|
+
<div v-if="state == 2 || state == 3 && user.id != winUser.id" :class="'user-bet-area-' + index"
|
|
34
|
+
v-for="(user, index) in users" :key="index">
|
|
35
|
+
<img v-for="(chip, index) in rendeChipArea(user.bet)" :key="index"
|
|
36
|
+
:src="'../res/mini/chip/chip' + chip.coin + '.png'" class="chip-all-area-item"
|
|
37
|
+
:style="{ position: 'absolute', left: chip.x + 'px', top: chip.y + 'px' }">
|
|
38
|
+
</div>
|
|
39
|
+
<!-- 用户在桌面上的位置 -->
|
|
40
|
+
<!-- top: 46px;
|
|
41
|
+
left: 305px; -->
|
|
42
|
+
<div :class="['user', 'user-idx' + index]" v-for="(user, index) in users" :key="index"
|
|
43
|
+
:style="(user.id == winUser.id && state == 3) ? {top: '58px', left: '305px'} : {}">
|
|
44
|
+
<img class="user-win" v-if="user.id == winUser.id && state == 3" src="../res/mini/texas/win.png">
|
|
45
|
+
<div class="user-avatar">
|
|
46
|
+
<img :src="user.avatar" style="width: 100%;border-radius: 50%;">
|
|
47
|
+
</div>
|
|
48
|
+
<div class="user-coin">
|
|
49
|
+
<img src="../res/mini/chip/chip5.png" style="height: 100%;"><span
|
|
50
|
+
style="color: yellow;font-size: 10px;">{{user.coin}}</span>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="user-state">
|
|
53
|
+
<span>{{user.state.length > 0 ? user.state:user.name}}</span>
|
|
54
|
+
</div>
|
|
55
|
+
<!-- 用户手牌 -->
|
|
56
|
+
<div v-if="state == 2 || state == 3" class="user-hand">
|
|
57
|
+
<img class="hand-1" :src="getCardUrl(user.hand[0])">
|
|
58
|
+
<img class="hand-2" :src="getCardUrl(user.hand[1])">
|
|
59
|
+
<!-- 用户手牌点数 -->
|
|
60
|
+
<div class="user-hand-point">
|
|
61
|
+
{{user.handName}}
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
<!-- 用户回合操作区 -->
|
|
68
|
+
<div class="user-actions" v-if="buttoms.length > 0">
|
|
69
|
+
<div v-for="(button, index) in buttoms" :key="index" class="action-button"
|
|
70
|
+
:style="{ background: getColor(button) }">
|
|
71
|
+
{{ button }}
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
<!-- 回合结算 -->
|
|
75
|
+
<div class="round-ouver">
|
|
76
|
+
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
<script>
|
|
83
|
+
let data = {
|
|
84
|
+
state: 2,
|
|
85
|
+
chip_all: 9988,
|
|
86
|
+
users: [
|
|
87
|
+
{ id: '1', avatar: '../res/avatar.jpg', state: '+9999', name: '楚轩', hand: [{ suit: '?', rank: '?' }, { suit: '?', rank: '?' }], handName: '高牌', coin: 999 }
|
|
88
|
+
],
|
|
89
|
+
buttoms: [],
|
|
90
|
+
communityCards: [{ suit: '?', rank: '?' }],
|
|
91
|
+
winUser: { id: '1', coin: 1000 }
|
|
92
|
+
};
|
|
93
|
+
new Vue({
|
|
94
|
+
el: '#app',
|
|
95
|
+
data: {
|
|
96
|
+
state: 3,
|
|
97
|
+
chip_all: 111,
|
|
98
|
+
users: [],
|
|
99
|
+
// 操作指令
|
|
100
|
+
buttoms: [],
|
|
101
|
+
overLog: [],
|
|
102
|
+
communityCards: []
|
|
103
|
+
},
|
|
104
|
+
created() {
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
this.chip_all = data.chip_all;
|
|
108
|
+
this.state = data.state
|
|
109
|
+
this.winUser = data.winUser
|
|
110
|
+
this.users = data.users;
|
|
111
|
+
this.buttoms = data.buttoms
|
|
112
|
+
// this.communityCards = data.communityCards.length < 5 ? data.communityCards.concat(Array(5 - data.communityCards.length).fill({ suit: '?', rank: '?' })) : data.communityCards
|
|
113
|
+
},
|
|
114
|
+
methods: {
|
|
115
|
+
getColor(text) {
|
|
116
|
+
const colorMap = {
|
|
117
|
+
'跟注': '#28a745', // 优化为Bootstrap绿色
|
|
118
|
+
'过': '#ffc107', // 优化为Bootstrap黄色
|
|
119
|
+
'加注': '#007bff', // 优化为Bootstrap蓝色
|
|
120
|
+
'梭哈': '#dc3545', // 优化为Bootstrap红色
|
|
121
|
+
'弃牌': '#6c757d', // 优化为Bootstrap灰色
|
|
122
|
+
'准备': '#28a745',
|
|
123
|
+
'换一桌': '#007bff'
|
|
124
|
+
};
|
|
125
|
+
return colorMap[text] || '#6c757d';
|
|
126
|
+
},
|
|
127
|
+
getCardUrl(info) {
|
|
128
|
+
if (info.suit == '?') {
|
|
129
|
+
return '../res/mini/poker/backPoker.png'
|
|
130
|
+
}
|
|
131
|
+
const suits = ['♠', '♥', '♣', '♦'];
|
|
132
|
+
const ranks = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A'];
|
|
133
|
+
let suitIndex = suits.indexOf(info.suit);
|
|
134
|
+
let rankIndex = ranks.indexOf(info.rank);
|
|
135
|
+
let url = `../res/mini/poker/poker_${suitIndex}_${rankIndex + 2}.png`
|
|
136
|
+
return url
|
|
137
|
+
},
|
|
138
|
+
rendeChipArea(arry) {
|
|
139
|
+
arry = [];
|
|
140
|
+
const chipPositions = [];
|
|
141
|
+
const chipWidth = 15;
|
|
142
|
+
const chipHeight = 15;
|
|
143
|
+
const tableWidth = 70;
|
|
144
|
+
const tableHeight = 47;
|
|
145
|
+
|
|
146
|
+
for (let i = 0; i < arry.length; i++) {
|
|
147
|
+
let position;
|
|
148
|
+
let coin = arry[i];
|
|
149
|
+
let range = 5;
|
|
150
|
+
if (coin <= 100) {
|
|
151
|
+
range = 0;
|
|
152
|
+
} else if (coin <= 200) {
|
|
153
|
+
range = 1;
|
|
154
|
+
} else if (coin <= 300) {
|
|
155
|
+
range = 2;
|
|
156
|
+
} else if (coin <= 400) {
|
|
157
|
+
range = 3;
|
|
158
|
+
} else if (coin <= 500) {
|
|
159
|
+
range = 4;
|
|
160
|
+
}
|
|
161
|
+
do {
|
|
162
|
+
const x = Math.floor(Math.random() * (tableWidth - chipWidth));
|
|
163
|
+
const y = Math.floor(Math.random() * (tableHeight - chipHeight));
|
|
164
|
+
position = { x, y, coin };
|
|
165
|
+
} while (chipPositions.some(pos => pos.x === position.x && pos.y === position.y));
|
|
166
|
+
chipPositions.push(position);
|
|
167
|
+
}
|
|
168
|
+
return chipPositions;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
</script>
|
|
173
|
+
|
|
174
|
+
<style>
|
|
175
|
+
@font-face {
|
|
176
|
+
font-family: 'xiaomai';
|
|
177
|
+
src: url('../res/font/xiaomai.ttf');
|
|
178
|
+
font-weight: normal;
|
|
179
|
+
font-style: normal;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
@font-face {
|
|
183
|
+
font-family: 'cn';
|
|
184
|
+
src: url('../res/font/cn.ttf');
|
|
185
|
+
font-weight: normal;
|
|
186
|
+
font-style: normal;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
span {
|
|
190
|
+
font-size: 12px;
|
|
191
|
+
font-family: 'cn';
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
div {
|
|
195
|
+
font-family: 'cn';
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.user-hand {
|
|
199
|
+
background: red;
|
|
200
|
+
position: absolute;
|
|
201
|
+
right: -17px;
|
|
202
|
+
bottom: -20px;
|
|
203
|
+
width: 10px;
|
|
204
|
+
height: 10px;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.hand-1 {
|
|
208
|
+
bottom: 0;
|
|
209
|
+
left: -7px;
|
|
210
|
+
transform: rotate(-10deg);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.hand-2 {
|
|
214
|
+
bottom: -2px;
|
|
215
|
+
left: 3px;
|
|
216
|
+
transform: rotate(10deg);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.user-hand img {
|
|
220
|
+
position: absolute;
|
|
221
|
+
width: 33px;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.user-hand-point {
|
|
225
|
+
color: #ffffff;
|
|
226
|
+
position: absolute;
|
|
227
|
+
top: 11px;
|
|
228
|
+
left: 131%;
|
|
229
|
+
transform: translateX(-50%);
|
|
230
|
+
/* font-size: 14px; */
|
|
231
|
+
font-weight: bold;
|
|
232
|
+
white-space: nowrap;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.table-info {
|
|
236
|
+
height: 50px;
|
|
237
|
+
width: 330px;
|
|
238
|
+
position: absolute;
|
|
239
|
+
top: 153px;
|
|
240
|
+
left: 182px;
|
|
241
|
+
color: bisque;
|
|
242
|
+
font-size: 18px;
|
|
243
|
+
font-weight: bold;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.gongpai {
|
|
247
|
+
height: 50px;
|
|
248
|
+
width: 210px;
|
|
249
|
+
position: absolute;
|
|
250
|
+
top: 153px;
|
|
251
|
+
left: 239px;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.chip-pool {
|
|
255
|
+
height: 22px;
|
|
256
|
+
width: 205px;
|
|
257
|
+
position: absolute;
|
|
258
|
+
top: 119px;
|
|
259
|
+
left: 239px;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
.chip-all-area-item {
|
|
265
|
+
width: 15px;
|
|
266
|
+
height: 15px;
|
|
267
|
+
position: absolute;
|
|
268
|
+
top: 0;
|
|
269
|
+
left: 0;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.gongpai img {
|
|
273
|
+
height: 100%;
|
|
274
|
+
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.8);
|
|
275
|
+
/* 添加阴影 */
|
|
276
|
+
border-radius: 7px;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
body {
|
|
281
|
+
margin: 0;
|
|
282
|
+
padding: 0;
|
|
283
|
+
width: 667px;
|
|
284
|
+
height: 375px;
|
|
285
|
+
overflow: hidden;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.poker-table {
|
|
289
|
+
width: 100%;
|
|
290
|
+
height: 100%;
|
|
291
|
+
position: relative;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.background-image {
|
|
295
|
+
position: absolute;
|
|
296
|
+
width: 100%;
|
|
297
|
+
height: 100%;
|
|
298
|
+
top: 0;
|
|
299
|
+
left: 0;
|
|
300
|
+
z-index: -1;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
.user {
|
|
304
|
+
width: 50px;
|
|
305
|
+
position: absolute;
|
|
306
|
+
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.user-win {
|
|
310
|
+
position: absolute;
|
|
311
|
+
width: 102px;
|
|
312
|
+
top: -44px;
|
|
313
|
+
left: -24px;
|
|
314
|
+
z-index: 13;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
.user-bet-area-0 {
|
|
320
|
+
width: 70px;
|
|
321
|
+
height: 47px;
|
|
322
|
+
position: absolute;
|
|
323
|
+
top: 209px;
|
|
324
|
+
left: 315px;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
.user-bet-area-1 {
|
|
328
|
+
width: 70px;
|
|
329
|
+
height: 47px;
|
|
330
|
+
position: absolute;
|
|
331
|
+
top: 202px;
|
|
332
|
+
left: 481px;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
.user-bet-area-2 {
|
|
336
|
+
width: 70px;
|
|
337
|
+
height: 47px;
|
|
338
|
+
position: absolute;
|
|
339
|
+
top: 125px;
|
|
340
|
+
left: 495px;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.user-bet-area-3 {
|
|
344
|
+
width: 70px;
|
|
345
|
+
height: 47px;
|
|
346
|
+
position: absolute;
|
|
347
|
+
top: 94px;
|
|
348
|
+
left: 413px;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
.user-bet-area-4 {
|
|
352
|
+
width: 70px;
|
|
353
|
+
height: 47px;
|
|
354
|
+
position: absolute;
|
|
355
|
+
top: 94px;
|
|
356
|
+
left: 189px;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
.user-bet-area-5 {
|
|
360
|
+
width: 70px;
|
|
361
|
+
height: 47px;
|
|
362
|
+
position: absolute;
|
|
363
|
+
top: 129px;
|
|
364
|
+
left: 116px;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
.user-bet-area-6 {
|
|
368
|
+
width: 70px;
|
|
369
|
+
height: 47px;
|
|
370
|
+
position: absolute;
|
|
371
|
+
top: 213px;
|
|
372
|
+
left: 116px;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
.user-idx0 {
|
|
376
|
+
top: 253px;
|
|
377
|
+
left: 305px;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.user-idx1 {
|
|
381
|
+
top: 232px;
|
|
382
|
+
right: 62px;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
.user-idx2 {
|
|
386
|
+
top: 86px;
|
|
387
|
+
right: 52px;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
.user-idx3 {
|
|
391
|
+
top: 28px;
|
|
392
|
+
right: 177px;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
.user-idx4 {
|
|
396
|
+
top: 28px;
|
|
397
|
+
left: 190px;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
.user-idx5 {
|
|
401
|
+
top: 82px;
|
|
402
|
+
left: 38px;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
.user-idx6 {
|
|
406
|
+
bottom: 81px;
|
|
407
|
+
left: 72px;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
.user-state {
|
|
413
|
+
width: 150%;
|
|
414
|
+
height: 14px;
|
|
415
|
+
background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.8) 20%, rgba(0, 0, 0, 0.589) 80%, transparent);
|
|
416
|
+
text-align: center;
|
|
417
|
+
display: flex;
|
|
418
|
+
align-items: center;
|
|
419
|
+
justify-content: center;
|
|
420
|
+
position: absolute;
|
|
421
|
+
left: 50%;
|
|
422
|
+
transform: translateX(-50%);
|
|
423
|
+
bottom: -19px;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
.user-coin {
|
|
427
|
+
width: 150%;
|
|
428
|
+
height: 12px;
|
|
429
|
+
background: linear-gradient(90deg, transparent, rgba(139, 69, 19, 0.8) 20%, rgba(139, 69, 19, 0.589) 80%, transparent);
|
|
430
|
+
text-align: center;
|
|
431
|
+
display: flex;
|
|
432
|
+
align-items: center;
|
|
433
|
+
justify-content: center;
|
|
434
|
+
position: absolute;
|
|
435
|
+
left: 50%;
|
|
436
|
+
transform: translateX(-50%);
|
|
437
|
+
bottom: -5px
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
.user-state span {
|
|
441
|
+
font-weight: bold;
|
|
442
|
+
color: #fff;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
.user-avatar {
|
|
446
|
+
width: 35px;
|
|
447
|
+
height: 35px;
|
|
448
|
+
border-radius: 50%;
|
|
449
|
+
border: 2px solid transparent;
|
|
450
|
+
background-image: linear-gradient(white, white),
|
|
451
|
+
linear-gradient(45deg, #4ecdc4, #4ecdc4);
|
|
452
|
+
background-origin: border-box;
|
|
453
|
+
background-clip: content-box, border-box;
|
|
454
|
+
position: relative;
|
|
455
|
+
left: 50%;
|
|
456
|
+
overflow: hidden;
|
|
457
|
+
transform: translateX(-50%);
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
.chip-pool-info {
|
|
461
|
+
display: flex;
|
|
462
|
+
align-items: center;
|
|
463
|
+
/* 垂直居中 */
|
|
464
|
+
margin: 0 auto;
|
|
465
|
+
justify-content: center;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
.user-actions {
|
|
469
|
+
position: absolute;
|
|
470
|
+
bottom: 10px;
|
|
471
|
+
right: -190px;
|
|
472
|
+
transform: translateX(-50%);
|
|
473
|
+
display: flex;
|
|
474
|
+
gap: 5px;
|
|
475
|
+
width: 401px;
|
|
476
|
+
justify-content: flex-start;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
.action-button {
|
|
480
|
+
background: green;
|
|
481
|
+
/* 背景绿色 */
|
|
482
|
+
color: white;
|
|
483
|
+
font-weight: bold;
|
|
484
|
+
text-shadow: 0px 0px 10px black;
|
|
485
|
+
/* 文字白色 */
|
|
486
|
+
padding: 5px 20px;
|
|
487
|
+
/* 内边距 */
|
|
488
|
+
border-radius: 5px;
|
|
489
|
+
}
|
|
490
|
+
</style>
|
|
491
|
+
</body>
|
|
492
|
+
|
|
493
|
+
</html>
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>游戏王卡片</title>
|
|
8
|
+
<script src="../res/vue2.js"></script>
|
|
9
|
+
<link rel="stylesheet" href="../css/skill.css">
|
|
10
|
+
</head>
|
|
11
|
+
|
|
12
|
+
<body>
|
|
13
|
+
<div id="app">
|
|
14
|
+
<img class="pos card-frame" :src="'../res/skill/frame/' + quality + '.jpg'"
|
|
15
|
+
style="width: 406.5px; height: 593.5px;">
|
|
16
|
+
<span class="pos card-name" style="top: 32px; left: 37.5px; font-size: 21px;">No.{{id}} {{name}}</span>
|
|
17
|
+
<img v-for="(n, index) in quality" :key="index"
|
|
18
|
+
:src="'../res/skill/star/' + (quality >= 5 ? 'rank' : 'level') + '.png'" class="pos filter"
|
|
19
|
+
:style="{ left: 30 + index * 27 + 'px', top: '70px', width: '27px' }">
|
|
20
|
+
<img class="pos filter" src="../res/skill/att/water.png" style="right: 29px;top: 30px;width: 33px;">
|
|
21
|
+
<img class="pos filter" src="../res/skill/test.jpg" style="right: 49.5px;top: 110px;width: 307px;">
|
|
22
|
+
<div class="pos descArea">
|
|
23
|
+
<div>
|
|
24
|
+
<div class="content">
|
|
25
|
+
<span class="text-content bold">
|
|
26
|
+
【技能信息】
|
|
27
|
+
</span>
|
|
28
|
+
<span class="text-content">
|
|
29
|
+
<span style="color: rgb(237 0 0);">{{classType}}</span>
|
|
30
|
+
-
|
|
31
|
+
{{getQuality(quality)}}级{{type}}
|
|
32
|
+
<span class="bold">[技能频率]{{cd > 0 ? cd : '无CD'}}回合</span>
|
|
33
|
+
</span>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="split-line"></div>
|
|
36
|
+
<div class="content">
|
|
37
|
+
<span class="text-content" style="font-size: 10px;">
|
|
38
|
+
<span class="bold">【技能描述】</span>
|
|
39
|
+
{{desc}}
|
|
40
|
+
</span>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
<script>
|
|
46
|
+
let data = { "name": "普通攻击", "quality": 7, "type": "主动技能", "desc": "对敌方单体造成物理伤害", "cd": 0, "classType": "攻击型" };
|
|
47
|
+
new Vue({
|
|
48
|
+
el: '#app',
|
|
49
|
+
data: {
|
|
50
|
+
id: 'a001',
|
|
51
|
+
name: '',
|
|
52
|
+
quality: 5,
|
|
53
|
+
desc: '',
|
|
54
|
+
type: '',
|
|
55
|
+
cd: 0,
|
|
56
|
+
classType: '伤害型',
|
|
57
|
+
},
|
|
58
|
+
mounted() {
|
|
59
|
+
this.id = data.id;
|
|
60
|
+
this.name = data.name;
|
|
61
|
+
this.quality = data.quality;
|
|
62
|
+
this.desc = data.desc;
|
|
63
|
+
this.type = data.type;
|
|
64
|
+
this.cd = data.cd;
|
|
65
|
+
this.classType = data.classType;
|
|
66
|
+
},
|
|
67
|
+
methods: {
|
|
68
|
+
getQuality(quality) {
|
|
69
|
+
// 品质映射
|
|
70
|
+
const qualities = ['F', 'D', 'C', 'B', 'A', 'S', 'SS', 'SSS', 'SR', 'SSR'];
|
|
71
|
+
return qualities[quality] || '未知';
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
</script>
|
|
76
|
+
</body>
|