koishi-plugin-rocom 1.0.1

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.
Files changed (157) hide show
  1. package/lib/client.d.ts +53 -0
  2. package/lib/client.js +473 -0
  3. package/lib/commands/account.d.ts +5 -0
  4. package/lib/commands/account.js +205 -0
  5. package/lib/commands/admin.d.ts +2 -0
  6. package/lib/commands/admin.js +117 -0
  7. package/lib/commands/egg.d.ts +2 -0
  8. package/lib/commands/egg.js +196 -0
  9. package/lib/commands/merchant.d.ts +2 -0
  10. package/lib/commands/merchant.js +242 -0
  11. package/lib/commands/query.d.ts +2 -0
  12. package/lib/commands/query.js +1264 -0
  13. package/lib/commands/wiki.d.ts +2 -0
  14. package/lib/commands/wiki.js +11 -0
  15. package/lib/egg-service.d.ts +229 -0
  16. package/lib/egg-service.js +705 -0
  17. package/lib/index.d.ts +24 -0
  18. package/lib/index.js +3746 -0
  19. package/lib/render-templates/bind-list/index.html +51 -0
  20. package/lib/render-templates/bind-list/style.css +178 -0
  21. package/lib/render-templates/exchange-hall/css/_@astro-renderers.0KDkAyVb.css +1 -0
  22. package/lib/render-templates/exchange-hall/css/index.B3tv56V6.css +1 -0
  23. package/lib/render-templates/exchange-hall/css/index.D2LGPudy.css +1 -0
  24. package/lib/render-templates/exchange-hall/extracted.css +393 -0
  25. package/lib/render-templates/exchange-hall/index.html +99 -0
  26. package/lib/render-templates/exchange-hall/style.css +267 -0
  27. package/lib/render-templates/friendship/index.html +58 -0
  28. package/lib/render-templates/friendship/style.css +182 -0
  29. package/lib/render-templates/home/data/home_item_list.json +122 -0
  30. package/lib/render-templates/home/img/home_icon/100604.png +0 -0
  31. package/lib/render-templates/home/img/home_icon/100604_1.png +0 -0
  32. package/lib/render-templates/home/img/home_icon/100604_2.png +0 -0
  33. package/lib/render-templates/home/img/home_icon/100605.png +0 -0
  34. package/lib/render-templates/home/img/home_icon/100605_1.png +0 -0
  35. package/lib/render-templates/home/img/home_icon/100605_2.png +0 -0
  36. package/lib/render-templates/home/img/home_icon/100606.png +0 -0
  37. package/lib/render-templates/home/img/home_icon/100606_1.png +0 -0
  38. package/lib/render-templates/home/img/home_icon/100606_2.png +0 -0
  39. package/lib/render-templates/home/img/home_icon/100607.png +0 -0
  40. package/lib/render-templates/home/img/home_icon/100607_1.png +0 -0
  41. package/lib/render-templates/home/img/home_icon/100607_2.png +0 -0
  42. package/lib/render-templates/home/img/home_icon/100608.png +0 -0
  43. package/lib/render-templates/home/img/home_icon/100608_1.png +0 -0
  44. package/lib/render-templates/home/img/home_icon/100608_2.png +0 -0
  45. package/lib/render-templates/home/img/home_icon/100622.png +0 -0
  46. package/lib/render-templates/home/img/home_icon/100622_1.png +0 -0
  47. package/lib/render-templates/home/img/home_icon/100622_2.png +0 -0
  48. package/lib/render-templates/home/img/home_icon/100623.png +0 -0
  49. package/lib/render-templates/home/img/home_icon/100623_1.png +0 -0
  50. package/lib/render-templates/home/img/home_icon/100623_2.png +0 -0
  51. package/lib/render-templates/home/img/home_icon/100624.png +0 -0
  52. package/lib/render-templates/home/img/home_icon/100624_1.png +0 -0
  53. package/lib/render-templates/home/img/home_icon/100624_2.png +0 -0
  54. package/lib/render-templates/home/img/home_icon/100627.png +0 -0
  55. package/lib/render-templates/home/img/home_icon/100627_1.png +0 -0
  56. package/lib/render-templates/home/img/home_icon/100627_2.png +0 -0
  57. package/lib/render-templates/home/img/home_icon/100684.png +0 -0
  58. package/lib/render-templates/home/img/home_icon/100684_1.png +0 -0
  59. package/lib/render-templates/home/img/home_icon/100684_2.png +0 -0
  60. package/lib/render-templates/home/img/home_icon/100686.png +0 -0
  61. package/lib/render-templates/home/img/home_icon/100686_1.png +0 -0
  62. package/lib/render-templates/home/img/home_icon/100686_2.png +0 -0
  63. package/lib/render-templates/home/img/home_icon/100687.png +0 -0
  64. package/lib/render-templates/home/img/home_icon/100687_1.png +0 -0
  65. package/lib/render-templates/home/img/home_icon/100687_2.png +0 -0
  66. package/lib/render-templates/home/img/home_icon/100689.png +0 -0
  67. package/lib/render-templates/home/img/home_icon/100689_1.png +0 -0
  68. package/lib/render-templates/home/img/home_icon/100689_2.png +0 -0
  69. package/lib/render-templates/home/img/home_icon/100690.png +0 -0
  70. package/lib/render-templates/home/img/home_icon/100690_1.png +0 -0
  71. package/lib/render-templates/home/img/home_icon/100690_2.png +0 -0
  72. package/lib/render-templates/home/img/home_icon/100691.png +0 -0
  73. package/lib/render-templates/home/img/home_icon/100691_1.png +0 -0
  74. package/lib/render-templates/home/img/home_icon/100691_2.png +0 -0
  75. package/lib/render-templates/home/img/home_icon/100692.png +0 -0
  76. package/lib/render-templates/home/img/home_icon/100692_1.png +0 -0
  77. package/lib/render-templates/home/img/home_icon/100692_2.png +0 -0
  78. package/lib/render-templates/home/img/home_icon/100693.png +0 -0
  79. package/lib/render-templates/home/img/home_icon/100693_1.png +0 -0
  80. package/lib/render-templates/home/img/home_icon/100693_2.png +0 -0
  81. package/lib/render-templates/home/img/home_icon/100694.png +0 -0
  82. package/lib/render-templates/home/img/home_icon/100694_1.png +0 -0
  83. package/lib/render-templates/home/img/home_icon/100694_2.png +0 -0
  84. package/lib/render-templates/home/img/home_icon/100706.png +0 -0
  85. package/lib/render-templates/home/img/home_icon/100706_1.png +0 -0
  86. package/lib/render-templates/home/img/home_icon/100706_2.png +0 -0
  87. package/lib/render-templates/home/img/home_icon/100751.png +0 -0
  88. package/lib/render-templates/home/img/home_icon/100751_1.png +0 -0
  89. package/lib/render-templates/home/img/home_icon/100751_2.png +0 -0
  90. package/lib/render-templates/home/img/home_icon/100755.png +0 -0
  91. package/lib/render-templates/home/img/home_icon/100755_1.png +0 -0
  92. package/lib/render-templates/home/img/home_icon/100755_2.png +0 -0
  93. package/lib/render-templates/home/img/home_icon/100762.png +0 -0
  94. package/lib/render-templates/home/img/home_icon/100762_1.png +0 -0
  95. package/lib/render-templates/home/img/home_icon/100762_2.png +0 -0
  96. package/lib/render-templates/home/img/home_icon/100764.png +0 -0
  97. package/lib/render-templates/home/img/home_icon/100764_1.png +0 -0
  98. package/lib/render-templates/home/img/home_icon/100764_2.png +0 -0
  99. package/lib/render-templates/home/img/home_icon/100869.png +0 -0
  100. package/lib/render-templates/home/img/home_icon/100869_1.png +0 -0
  101. package/lib/render-templates/home/img/home_icon/100869_2.png +0 -0
  102. package/lib/render-templates/home/img/img_HomeVisit_Icon1.png +0 -0
  103. package/lib/render-templates/home/img/img_LevelReward_Bg2.png +0 -0
  104. package/lib/render-templates/home/index.html +139 -0
  105. package/lib/render-templates/home/style.css +537 -0
  106. package/lib/render-templates/ingame-shop/index.html +87 -0
  107. package/lib/render-templates/ingame-shop/style.css +220 -0
  108. package/lib/render-templates/inspect/index.html +47 -0
  109. package/lib/render-templates/inspect/style.css +149 -0
  110. package/lib/render-templates/lineup/index.html +77 -0
  111. package/lib/render-templates/lineup/style.css +255 -0
  112. package/lib/render-templates/lineup-detail/index.html +63 -0
  113. package/lib/render-templates/lineup-detail/style.css +218 -0
  114. package/lib/render-templates/menu/index.html +36 -0
  115. package/lib/render-templates/menu/style.css +126 -0
  116. package/lib/render-templates/package/index.html +115 -0
  117. package/lib/render-templates/package/style.css +352 -0
  118. package/lib/render-templates/personal-card/index.html +292 -0
  119. package/lib/render-templates/personal-card/style.css +2114 -0
  120. package/lib/render-templates/pet-wiki/index.html +118 -0
  121. package/lib/render-templates/pet-wiki/style.css +382 -0
  122. package/lib/render-templates/player-search/index.html +60 -0
  123. package/lib/render-templates/player-search/style.css +192 -0
  124. package/lib/render-templates/record/index.html +86 -0
  125. package/lib/render-templates/record/style.css +322 -0
  126. package/lib/render-templates/searcheggs/Pets.json +104328 -0
  127. package/lib/render-templates/searcheggs/candidates.html +52 -0
  128. package/lib/render-templates/searcheggs/eggs.py +599 -0
  129. package/lib/render-templates/searcheggs/index.html +198 -0
  130. package/lib/render-templates/searcheggs/pair.html +81 -0
  131. package/lib/render-templates/searcheggs/size.html +82 -0
  132. package/lib/render-templates/searcheggs/style.css +586 -0
  133. package/lib/render-templates/searcheggs/want.html +63 -0
  134. package/lib/render-templates/skill-wiki/index.html +68 -0
  135. package/lib/render-templates/skill-wiki/style.css +182 -0
  136. package/lib/render-templates/student/index.html +95 -0
  137. package/lib/render-templates/student/style.css +255 -0
  138. package/lib/render-templates/student-perks/index.html +78 -0
  139. package/lib/render-templates/student-perks/style.css +238 -0
  140. package/lib/render-templates/student-state/index.html +52 -0
  141. package/lib/render-templates/student-state/style.css +157 -0
  142. package/lib/render-templates/yuanxing-shangren/index.html +371 -0
  143. package/lib/render-templates/yuanxing-shangren/style.css +371 -0
  144. package/lib/render.d.ts +11 -0
  145. package/lib/render.js +226 -0
  146. package/lib/role-token.d.ts +27 -0
  147. package/lib/role-token.js +137 -0
  148. package/lib/send-image.d.ts +3 -0
  149. package/lib/send-image.js +135 -0
  150. package/lib/subscription-send.d.ts +8 -0
  151. package/lib/subscription-send.js +48 -0
  152. package/lib/types.d.ts +32 -0
  153. package/lib/types.js +2 -0
  154. package/lib/user.d.ts +67 -0
  155. package/lib/user.js +176 -0
  156. package/package.json +58 -0
  157. package/readme.md +575 -0
@@ -0,0 +1,192 @@
1
+ @font-face {
2
+ font-family: "rocom-player";
3
+ src: url("../../ttf/HYWenHei-85W-1.ttf") format("truetype");
4
+ font-display: swap;
5
+ }
6
+
7
+ html,
8
+ body {
9
+ margin: 0;
10
+ padding: 26px;
11
+ background: #efe6d8;
12
+ display: inline-block;
13
+ font-family: "rocom-player", "Microsoft YaHei", "PingFang SC", sans-serif;
14
+ }
15
+
16
+ .player-page {
17
+ width: 1180px;
18
+ padding: 34px 36px 30px;
19
+ box-sizing: border-box;
20
+ border-radius: 28px;
21
+ color: #322618;
22
+ background:
23
+ linear-gradient(rgba(40, 29, 18, 0.10), rgba(40, 29, 18, 0.10)),
24
+ url("../../img/ercode-bg.D1ccSQKH.png") center/cover no-repeat;
25
+ }
26
+
27
+ .page-header {
28
+ padding-bottom: 18px;
29
+ border-bottom: 2px dashed rgba(141, 106, 68, 0.28);
30
+ }
31
+
32
+ .page-title {
33
+ font-size: 44px;
34
+ line-height: 1.1;
35
+ font-weight: 800;
36
+ }
37
+
38
+ .page-subtitle {
39
+ margin-top: 10px;
40
+ font-size: 22px;
41
+ line-height: 1.4;
42
+ color: #6d5944;
43
+ }
44
+
45
+ .hero-card,
46
+ .summary-card,
47
+ .panel-card,
48
+ .command-hint {
49
+ border: 1px solid rgba(141, 106, 68, 0.16);
50
+ border-radius: 20px;
51
+ background: rgba(255, 252, 247, 0.82);
52
+ box-shadow: 0 10px 26px rgba(83, 58, 35, 0.08);
53
+ }
54
+
55
+ .hero-card {
56
+ margin-top: 22px;
57
+ padding: 24px 26px;
58
+ background:
59
+ linear-gradient(135deg, rgba(237, 179, 89, 0.24), rgba(255, 251, 245, 0.88)),
60
+ rgba(255, 252, 247, 0.86);
61
+ }
62
+
63
+ .hero-title {
64
+ font-size: 20px;
65
+ color: #8b735b;
66
+ }
67
+
68
+ .hero-value {
69
+ margin-top: 8px;
70
+ font-size: 42px;
71
+ line-height: 1.15;
72
+ font-weight: 800;
73
+ color: #2e2418;
74
+ }
75
+
76
+ .hero-subvalue {
77
+ margin-top: 8px;
78
+ font-size: 22px;
79
+ color: #6d5944;
80
+ }
81
+
82
+ .summary-grid {
83
+ display: grid;
84
+ grid-template-columns: repeat(3, 1fr);
85
+ gap: 16px;
86
+ margin-top: 22px;
87
+ }
88
+
89
+ .summary-card {
90
+ padding: 18px 20px;
91
+ }
92
+
93
+ .summary-label {
94
+ font-size: 18px;
95
+ color: #8b735b;
96
+ }
97
+
98
+ .summary-value {
99
+ margin-top: 10px;
100
+ font-size: 30px;
101
+ line-height: 1.2;
102
+ font-weight: 800;
103
+ }
104
+
105
+ .panel-card {
106
+ margin-top: 18px;
107
+ padding: 20px;
108
+ }
109
+
110
+ .signature-panel {
111
+ margin-top: 20px;
112
+ }
113
+
114
+ .section-grid {
115
+ display: grid;
116
+ grid-template-columns: repeat(2, minmax(0, 1fr));
117
+ gap: 18px;
118
+ margin-top: 18px;
119
+ }
120
+
121
+ .info-panel {
122
+ margin-top: 0;
123
+ }
124
+
125
+ .section-title {
126
+ margin-bottom: 14px;
127
+ font-size: 28px;
128
+ font-weight: 800;
129
+ }
130
+
131
+ .signature-box {
132
+ padding: 18px 20px;
133
+ border-radius: 18px;
134
+ background: rgba(255,255,255,0.42);
135
+ border: 1px solid rgba(141, 106, 68, 0.10);
136
+ font-size: 22px;
137
+ line-height: 1.5;
138
+ color: #4f3c29;
139
+ }
140
+
141
+ .detail-card {
142
+ overflow: hidden;
143
+ border-radius: 18px;
144
+ background: rgba(255,255,255,0.42);
145
+ border: 1px solid rgba(141, 106, 68, 0.10);
146
+ padding: 0 16px;
147
+ }
148
+
149
+ .detail-row {
150
+ display: grid;
151
+ grid-template-columns: 220px 1fr;
152
+ gap: 16px;
153
+ padding: 14px 0;
154
+ border-bottom: 1px solid rgba(141, 106, 68, 0.10);
155
+ }
156
+
157
+ .detail-row:last-child {
158
+ border-bottom: none;
159
+ }
160
+
161
+ .detail-label {
162
+ font-size: 20px;
163
+ font-weight: 700;
164
+ color: #6d5944;
165
+ }
166
+
167
+ .detail-value {
168
+ font-size: 20px;
169
+ color: #322618;
170
+ word-break: break-word;
171
+ text-align: right;
172
+ }
173
+
174
+ .command-hint {
175
+ margin-top: 20px;
176
+ padding: 14px 18px;
177
+ font-size: 20px;
178
+ color: #6d5944;
179
+ }
180
+
181
+ .footer {
182
+ margin-top: 18px;
183
+ text-align: center;
184
+ font-size: 16px;
185
+ color: rgba(113, 93, 73, 0.88);
186
+ }
187
+
188
+ @media (max-width: 1280px) {
189
+ .section-grid {
190
+ grid-template-columns: 1fr;
191
+ }
192
+ }
@@ -0,0 +1,86 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=1280, initial-scale=1">
6
+ <link rel="stylesheet" href="{{_res_path}}render/record/style.css">
7
+ </head>
8
+ <body>
9
+ <div class="record-page">
10
+ <!-- Header -->
11
+ <div class="record-header">
12
+ <div class="header-user-info">
13
+ <img class="header-avatar" src="{{userAvatarDisplay}}" alt="Avatar" onerror="this.onerror=null;this.src='data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 24 24\' fill=\'%23333\'%3E%3Ccircle cx=\'12\' cy=\'12\' r=\'12\'/%3E%3C/svg%3E'">
14
+ <div class="header-user-details">
15
+ <div class="header-user-name-row">
16
+ <span class="header-user-name">{{userName}}</span>
17
+ <span class="header-user-level">Lv. {{userLevel}}</span>
18
+ </div>
19
+ <span class="header-user-uid">ID:{{userUid}}</span>
20
+ </div>
21
+ </div>
22
+ <div class="header-center">
23
+ <span class="header-title">闪耀大赛 · 战绩总览</span>
24
+ </div>
25
+ <div class="header-right">
26
+ <div class="header-stats">
27
+ <span class="stat-item"><span class="stat-label">胜率</span><span class="stat-value">{{winRate}}</span></span>
28
+ <span class="stat-item"><span class="stat-label">总场次</span><span class="stat-value">{{totalMatch}}</span></span>
29
+ </div>
30
+ </div>
31
+ </div>
32
+
33
+ <!-- Match List -->
34
+ <div class="match-list">
35
+ {{each battles battle}}
36
+ <div class="match-record-card">
37
+ <!-- Left Team -->
38
+ <div class="match-team match-team-left">
39
+ <div class="match-player-info">
40
+ <img class="match-player-avatar" src="{{battle.leftAvatar}}" alt="">
41
+ <img class="match-player-badge" src="{{battle.leftBadge}}" alt="" onerror="this.style.display='none'">
42
+ <span class="match-player-name">{{battle.leftName}}</span>
43
+ </div>
44
+ <div class="match-pet-list">
45
+ {{each battle.leftPets pet}}
46
+ <img class="match-pet-icon" src="{{pet.icon}}" alt="">
47
+ {{/each}}
48
+ </div>
49
+ </div>
50
+
51
+ <!-- Center Result -->
52
+ <div class="match-center">
53
+ <div class="match-result-badge {{battle.result}}"></div>
54
+ </div>
55
+
56
+ <!-- Right Team -->
57
+ <div class="match-team match-team-right">
58
+ <div class="match-player-info match-player-info-right">
59
+ <span class="match-player-name">{{battle.rightName}}</span>
60
+ <img class="match-player-badge" src="{{battle.rightBadge}}" alt="" onerror="this.style.display='none'">
61
+ <img class="match-player-avatar" src="{{battle.rightAvatar}}" alt="">
62
+ </div>
63
+ <div class="match-pet-list match-pet-list-right">
64
+ {{each battle.rightPets pet}}
65
+ <img class="match-pet-icon" src="{{pet.icon}}" alt="">
66
+ {{/each}}
67
+ </div>
68
+ </div>
69
+
70
+ <!-- Time -->
71
+ <div class="match-time">
72
+ <span class="match-time-hm">{{battle.time}}</span>
73
+ <span class="match-time-date">{{battle.date}}</span>
74
+ </div>
75
+ </div>
76
+ {{/each}}
77
+ </div>
78
+
79
+ <!-- Footer -->
80
+ <div class="record-footer">
81
+ <span class="footer-hint">{{commandHint}}</span>
82
+ <span class="footer-cmd">{{copyright}}</span>
83
+ </div>
84
+ </div>
85
+ </body>
86
+ </html>
@@ -0,0 +1,322 @@
1
+ @font-face {
2
+ font-family: 'fzlant';
3
+ src: url('../../ttf/fzlant.D5FI9Et0.ttf') format('truetype');
4
+ }
5
+
6
+ @font-face {
7
+ font-family: 'mianfeiziti';
8
+ src: url('../../ttf/dundun.xHd_Ee5-.woff2') format('woff2'),
9
+ url('../../ttf/dundun.BCbg_KoL.ttf') format('truetype');
10
+ font-display: swap;
11
+ }
12
+
13
+ :root {
14
+ --helper-font-family-system: system-ui, "calibri", "Roboto", verdana, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
15
+ --helper-font-family-mianfeiziti: 'mianfeiziti', system-ui, "calibri", "Roboto", verdana, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
16
+ --helper-font-family-fzlant: 'fzlant', system-ui, "calibri", "Roboto", verdana, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
17
+ }
18
+
19
+ html { font-size: 80px !important; }
20
+
21
+ html, body {
22
+ margin: 0;
23
+ padding: 0;
24
+ box-sizing: border-box;
25
+ }
26
+
27
+ *, *::before, *::after {
28
+ box-sizing: border-box;
29
+ }
30
+
31
+ img {
32
+ border: 0;
33
+ font-size: 0;
34
+ user-select: none;
35
+ vertical-align: middle;
36
+ -webkit-user-drag: none;
37
+ }
38
+
39
+ /* ====== Page Container ====== */
40
+ .record-page {
41
+ width: 12rem;
42
+ background: url('../../img/bg.C8CUoi7I.jpg') no-repeat center top;
43
+ background-size: cover;
44
+ padding: 0.2rem 0.3rem;
45
+ font-family: var(--helper-font-family-system);
46
+ }
47
+
48
+ /* ====== Header ====== */
49
+ .record-header {
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: space-between;
53
+ background: rgba(50, 42, 30, 0.85);
54
+ border-radius: 0.15rem;
55
+ padding: 0.15rem 0.2rem;
56
+ margin-bottom: 0.2rem;
57
+ min-height: 0.9rem;
58
+ }
59
+
60
+ .header-user-info {
61
+ display: flex;
62
+ align-items: center;
63
+ gap: 0.1rem;
64
+ flex: 1;
65
+ }
66
+
67
+ .header-avatar {
68
+ width: 0.6rem;
69
+ height: 0.6rem;
70
+ object-fit: contain;
71
+ }
72
+
73
+ .header-user-details {
74
+ display: flex;
75
+ flex-direction: column;
76
+ gap: 0.04rem;
77
+ }
78
+
79
+ .header-user-name-row {
80
+ display: flex;
81
+ align-items: center;
82
+ gap: 0.08rem;
83
+ }
84
+
85
+ .header-user-name {
86
+ font-family: var(--helper-font-family-mianfeiziti);
87
+ color: #f4eee1;
88
+ font-size: 0.22rem;
89
+ font-weight: bold;
90
+ }
91
+
92
+ .header-user-level {
93
+ font-family: var(--helper-font-family-mianfeiziti);
94
+ background-color: #ffc966;
95
+ color: #272624;
96
+ font-size: 0.14rem;
97
+ font-weight: bold;
98
+ padding: 0.02rem 0.08rem;
99
+ border-radius: 0.1rem;
100
+ line-height: 1.2;
101
+ }
102
+
103
+ .header-user-uid {
104
+ font-family: Arial, sans-serif;
105
+ color: #a8a69f;
106
+ font-size: 0.14rem;
107
+ }
108
+
109
+ .header-center {
110
+ flex: 2;
111
+ text-align: center;
112
+ display: flex;
113
+ align-items: center;
114
+ justify-content: center;
115
+ }
116
+
117
+ .header-title {
118
+ font-family: var(--helper-font-family-mianfeiziti);
119
+ color: #ffc65f;
120
+ font-size: 0.28rem;
121
+ font-weight: bold;
122
+ text-shadow: 0 2px 6px rgba(0,0,0,0.3);
123
+ }
124
+
125
+ .header-right {
126
+ display: flex;
127
+ align-items: center;
128
+ gap: 0.12rem;
129
+ flex: 1;
130
+ justify-content: flex-end;
131
+ }
132
+
133
+ .header-stats {
134
+ display: flex;
135
+ flex-direction: row;
136
+ gap: 0.16rem;
137
+ align-items: center;
138
+ }
139
+
140
+ .stat-item {
141
+ display: flex;
142
+ align-items: baseline;
143
+ gap: 0.06rem;
144
+ }
145
+
146
+ .stat-label {
147
+ font-family: var(--helper-font-family-mianfeiziti);
148
+ color: #a8a69f;
149
+ font-size: 0.14rem;
150
+ }
151
+
152
+ .stat-value {
153
+ font-family: var(--helper-font-family-mianfeiziti);
154
+ color: #f4eee1;
155
+ font-size: 0.2rem;
156
+ font-weight: bold;
157
+ }
158
+
159
+ /* ====== Match List ====== */
160
+ .match-list {
161
+ display: flex;
162
+ flex-direction: column;
163
+ gap: 0.12rem;
164
+ }
165
+
166
+ /* ====== Match Record Card ====== */
167
+ .match-record-card {
168
+ display: flex;
169
+ align-items: center;
170
+ background-color: rgba(247, 244, 237, 0.92);
171
+ border-radius: 0.12rem;
172
+ padding: 0.12rem 0.18rem;
173
+ gap: 0.12rem;
174
+ box-shadow: 0 2px 8px rgba(0,0,0,0.08);
175
+ overflow: visible;
176
+ }
177
+
178
+ /* ====== Team Sections ====== */
179
+ .match-team {
180
+ flex: 4;
181
+ }
182
+
183
+ .match-player-info {
184
+ display: flex;
185
+ align-items: center;
186
+ gap: 0.06rem;
187
+ margin-bottom: 0.06rem;
188
+ }
189
+
190
+ .match-player-info-right {
191
+ justify-content: flex-end;
192
+ }
193
+
194
+ .match-player-avatar {
195
+ width: 0.32rem;
196
+ height: 0.32rem;
197
+ border-radius: 50%;
198
+ object-fit: contain;
199
+ }
200
+
201
+ .match-player-name {
202
+ font-family: var(--helper-font-family-mianfeiziti);
203
+ font-size: 0.16rem;
204
+ font-weight: bold;
205
+ color: #5a3e1b;
206
+ max-width: 1rem;
207
+ overflow: hidden;
208
+ text-overflow: ellipsis;
209
+ white-space: nowrap;
210
+ }
211
+
212
+ .match-player-badge {
213
+ width: 0.24rem;
214
+ height: 0.24rem;
215
+ object-fit: contain;
216
+ }
217
+
218
+ .match-pet-list {
219
+ display: flex;
220
+ gap: 0.02rem;
221
+ flex-wrap: wrap;
222
+ overflow: visible;
223
+ }
224
+
225
+ .match-pet-list-right {
226
+ justify-content: flex-end;
227
+ }
228
+
229
+ .match-pet-icon {
230
+ width: 0.52rem;
231
+ height: 0.52rem;
232
+ border-radius: 50%;
233
+ object-fit: contain;
234
+ background-color: rgba(100, 80, 50, 0.12);
235
+ margin-top: -0.1rem;
236
+ }
237
+
238
+ /* ====== Center VS ====== */
239
+ .match-center {
240
+ flex: 1.5;
241
+ display: flex;
242
+ flex-direction: column;
243
+ align-items: center;
244
+ gap: 0.04rem;
245
+ }
246
+
247
+ .match-vs-icon {
248
+ width: 0.5rem;
249
+ height: 0.5rem;
250
+ }
251
+
252
+ .vs-img {
253
+ width: 100%;
254
+ height: 100%;
255
+ object-fit: contain;
256
+ }
257
+
258
+ /* ====== Match Result Badge (胜/败 background image) ====== */
259
+ .match-result-badge {
260
+ width: 0.98rem;
261
+ height: 0.81rem;
262
+ display: flex;
263
+ justify-content: center;
264
+ align-items: center;
265
+ background-size: 100% 100%;
266
+ background-repeat: no-repeat;
267
+ background-position: center;
268
+ font-size: 0;
269
+ color: transparent;
270
+ }
271
+ .match-result-badge.win {
272
+ background-image: url('../../img/win-icon.DJfsgL3i.png');
273
+ }
274
+ .match-result-badge.fail {
275
+ background-image: url('../../img/fail-icon.ChpzWjNv.png');
276
+ }
277
+
278
+ /* ====== Time Section ====== */
279
+ .match-time {
280
+ flex: 1.2;
281
+ display: flex;
282
+ flex-direction: column;
283
+ align-items: flex-end;
284
+ gap: 0.02rem;
285
+ }
286
+
287
+ .match-time-hm {
288
+ font-family: var(--helper-font-family-fzlant);
289
+ font-size: 0.28rem;
290
+ font-weight: bold;
291
+ color: #5a3e1b;
292
+ }
293
+
294
+ .match-time-date {
295
+ font-family: var(--helper-font-family-mianfeiziti);
296
+ font-size: 0.12rem;
297
+ color: #9e8e76;
298
+ }
299
+
300
+ /* ====== Footer ====== */
301
+ .record-footer {
302
+ display: flex;
303
+ flex-direction: column;
304
+ align-items: center;
305
+ gap: 0.04rem;
306
+ margin-top: 0.16rem;
307
+ padding-top: 0.1rem;
308
+ border-top: 1px solid rgba(0,0,0,0.08);
309
+ }
310
+
311
+ .footer-hint {
312
+ font-family: var(--helper-font-family-mianfeiziti);
313
+ font-size: 0.16rem;
314
+ color: #5a3e1b;
315
+ font-weight: bold;
316
+ }
317
+
318
+ .footer-cmd {
319
+ font-family: var(--helper-font-family-mianfeiziti);
320
+ font-size: 0.14rem;
321
+ color: #9e8e76;
322
+ }