Add HeXi bot codebase: custom plugins, web frontends, tests
- hexi core: message handling, rate limiting, cooldown, plugin manager - Custom plugins: BF stats, daily check-in, quotes, persona cards, etc. - Community plugins vendored under hexi/plugins with local fixes - Web admin frontends (learning-chat, persona-admin), unified hexi/web - Tests for rate_limit/cooldown/memes/persona; poetry.lock Co-Authored-By: Claude <noreply@anthropic.com>
@@ -0,0 +1,145 @@
|
||||
# nonebot_plugin_helldivers_tools
|
||||
|
||||
绝地潜兵小助手。命令:
|
||||
|
||||
- `简报`:获取星系战争概况(现在走 **[helldivers-2/api](https://github.com/helldivers-2/api)** 社区接口,用 Playwright 渲染自建 HTML 卡片,**不再打开外部网页截图**)。
|
||||
- `随机战备`:随机一套战备(自建 HTML 卡片,与 `简报` 一样用 `nonebot_plugin_htmlrender` 出图)。
|
||||
|
||||
## 为什么改成 API?
|
||||
|
||||
旧方案用 Playwright 打开 `hd2galaxy.com` 截全页图,要等 `networkidle`(本地化 30s 左右),还要在页面 DOM 里做星球名替换,慢且脆弱。
|
||||
|
||||
新方案:
|
||||
|
||||
1. 调 `helldivers-2/api` 的 `/api/v1/war`、`/assignments`、`/campaigns`、`/planets`(带缓存,避免触发限流);
|
||||
2. 用**自己的 HTML 模板**(内联 CSS + base64 logo + 系统字体)渲染一张战况卡片;
|
||||
3. 交给 **[nonebot_plugin_htmlrender](https://github.com/nonebotjs/nonebot-plugin-htmlrender)** 的 `get_new_page()` 出图。因为模板是本地内容、无外部资源,`set_content` 后秒级完成,不再卡 30s。
|
||||
|
||||
> 说明:由 `nonebot_plugin_htmlrender` 管理 Playwright 内核(机器人日志里 `HTMLRender Started.` 即已加载)。`简报` 与 `随机战备` 都依赖 `require("nonebot_plugin_htmlrender")`,与 `nonebot_plugin_picstatus` 的做法一致。
|
||||
|
||||
## 新增/改动文件
|
||||
|
||||
| 文件 | 作用 |
|
||||
| --- | --- |
|
||||
| `config.py` | NoneBot 插件配置 |
|
||||
| `hd2_api.py` | 异步 API 客户端(httpx + 进程内缓存 + 并发聚合) |
|
||||
| `war_renderer.py` | 战况 HTML 模板 + 用 `nonebot_plugin_htmlrender` 渲染为 PNG |
|
||||
| `equipment_renderer.py` | `随机战备` HTML 模板 + 用 `nonebot_plugin_htmlrender` 渲染为 PNG |
|
||||
| `__init__.py` | `简报` 与 `随机战备` 命令改为走 API / 本地 + 渲染(移除了 `screen_shot` 依赖) |
|
||||
|
||||
## 配置
|
||||
|
||||
NoneBot 配置(`.env` / `.env.dev`)读取以下环境变量,均为可选,用默认值即可开箱即用:
|
||||
|
||||
| 环境变量 | 默认值 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `hd2_api_base_url` | `https://api.helldivers2.dev` | 自托管 helldivers-2/api 的根地址;不填用公共社区 API |
|
||||
| `hd2_api_language` | `zh-Hans` | 请求本地化语言(自托管默认支持 zh-Hans / zh-Hant) |
|
||||
| `hd2_cache_ttl` | `60` | 缓存秒数,避免频繁打接口触发限流(5次/10秒) |
|
||||
| `hd2_super_client` | `hexi-bot.local` | 请求头,社区 API 必备 |
|
||||
| `hd2_super_contact` | `https://github.com/sansenhoshi/nonebot_plugin_helldivers_tools` | 请求头,社区 API 必备 |
|
||||
|
||||
> **⚠️ 两个 `X-Super-*` 头必须都存在**:`RateLimitMiddleware` 在 `ValidateClients=true` 时(公共实例默认开启)要求请求**同时**带 `X-Super-Client` 和 `X-Super-Contact`,缺一即返回 `400 Bad Request / "The X-Super-Client and X-Super-Contact headers are required"`。客户端已保证始终发这两个头,`hd2_super_contact` 留空也会用 `hd2_super_client` 兜底。
|
||||
|
||||
示例:
|
||||
|
||||
```ini
|
||||
hd2_api_base_url=http://127.0.0.1:8080
|
||||
hd2_api_language=zh-Hans
|
||||
hd2_cache_ttl=60
|
||||
```
|
||||
|
||||
## 自托管 helldivers-2/api
|
||||
|
||||
项目是 .NET 10 + Docker。用 Docker Compose 最省事。
|
||||
|
||||
### 1) 克隆(务必带子模块)
|
||||
```bash
|
||||
git clone --recurse-submodules https://github.com/helldivers-2/api.git
|
||||
cd api
|
||||
```
|
||||
> `src/Helldivers-2-Models/json` 是子模块,里面是星球名/本地化数据,**不带上它接口会没数据**。
|
||||
|
||||
### 2) 放一个 `docker-compose.yml`(在 `api` 根目录)
|
||||
|
||||
> 本仓库已写好一份:`HeXi/deploy/helldivers-api/docker-compose.yml`,复制到 `api` 仓库根目录即可。要点:`ASPNETCORE_URLS=http://+:8080`(否则默认监听 5000)、`Helldivers__API__Authentication__Enabled=false`(必须)、`ValidateClients=false`、含健康检查/重启/日志轮转。
|
||||
|
||||
```yaml
|
||||
services:
|
||||
helldivers-api:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: src/Helldivers-2-API/Dockerfile
|
||||
image: helldivers2-api
|
||||
container_name: helldivers2-api
|
||||
ports:
|
||||
- "8080:8080"
|
||||
environment:
|
||||
# 自托管务必关鉴权:默认 Authentication.Enabled=true 但没 SigningKey,直接启动会抛 ArgumentNullException(issue #90)
|
||||
- Helldivers__API__Authentication__Enabled=false
|
||||
# 抬高本地限流,多核打也不怕
|
||||
- Helldivers__API__RateLimit=300
|
||||
- Helldivers__API__RateLimitWindow=10
|
||||
# 与 ArrowHead 官方接口同步频率(秒)
|
||||
- Helldivers__Synchronization__IntervalSeconds=60
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
### 3) 构建并启动
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
### 4) 验证
|
||||
```bash
|
||||
# 应该返回 JSON(当前战争信息)
|
||||
curl http://127.0.0.1:8080/api/v1/war
|
||||
curl http://127.0.0.1:8080/api/v1/assignments
|
||||
```
|
||||
|
||||
### 5) 让机器人指向它
|
||||
在机器人 `.env` / `.env.dev` 里(本项目在 `HeXi/.env`)写:
|
||||
|
||||
```ini
|
||||
hd2_api_base_url=http://127.0.0.1:8080
|
||||
hd2_api_language=zh-Hans
|
||||
```
|
||||
|
||||
然后重启机器人,发 `简报` 即可。默认配置的 `Languages` 已含 `zh-Hans`,星球名/大指令就是中文。
|
||||
|
||||
### 常见问题
|
||||
- **`docker compose up` 报 `ArgumentNullException (Parameter 's')`**:忘关鉴权了,确认有 `Helldivers__API__Authentication__Enabled=false`。
|
||||
- **`/api/v1/war` 一直是 200 但 `planet.name` 为空**:子模块没拉全,重新 `git submodule update --init --recursive` 后重建。
|
||||
- **返回 400 / "X-Super-Client and X-Super-Contact headers are required"**:这是实例开了 `ValidateClients`;我方客户端已永远带这两个头,正常不会触发。
|
||||
- **容器能起但数组为空**:容器要联网访问 ArrowHead 官方接口才能同步,检查机器能否访问外网。
|
||||
- **想用 Fly.io**:仓库自带 `fly.toml`,直接 `fly deploy`。
|
||||
|
||||
### 备选部署(不用 Docker)
|
||||
数据(星球名/本地化)由 `Helldivers-2-SourceGen` 在**编译期**写进二进制,运行时**不读任何 json 文件**,所以直接跑发布产物完全可行。
|
||||
|
||||
**Windows 本机跑(只需 .NET 10 SDK 构建一次):**
|
||||
```powershell
|
||||
git clone --recurse-submodules https://github.com/helldivers-2/api.git && cd api
|
||||
dotnet publish src/Helldivers-2-API/Helldivers-2-API.csproj `
|
||||
-c Release -r win-x64 --self-contained true -p:PublishAot=false -o .\publish
|
||||
$env:ASPNETCORE_URLS="http://127.0.0.1:8080"
|
||||
$env:Helldivers__API__Authentication__Enabled="false"
|
||||
$env:Helldivers__API__RateLimit="300"
|
||||
.\publish\Helldivers-2-API.exe
|
||||
```
|
||||
> `-p:PublishAot=false`:项目默认 AOT,Windows 上要 VC++ 工具链,关掉避免踩坑。
|
||||
|
||||
**VPS + systemd**:把发布产物换成 `linux-x64` 上传,用 systemd 挂服务(`Environment=Helldivers__API__Authentication__Enabled=false`)。
|
||||
|
||||
**Fly.io / 其它 PaaS**:仓库自带 `fly.toml`,`fly deploy` 即可;Render/Railway/Azure 同理。
|
||||
|
||||
## 接口字段依赖
|
||||
|
||||
- `war.statistics`:`playerCount`、`missionSuccessRate`、`terminidKills`、`automatonKills`、`illuminateKills`、`deaths`
|
||||
- `assignments[0]`:`title`、`description`、`briefing`、`reward/rewards`、`expiration`
|
||||
- `campaigns[]` → `planet`:`name`、`currentOwner`、`health`、`maxHealth`、`statistics.playerCount`
|
||||
- `planets[]` → `currentOwner`(星系控制统计用)
|
||||
|
||||
## 翻译兜底
|
||||
|
||||
接口带 `Accept-Language: zh-Hans` 时,`LocalizedMessage` 字段会返回中文。若某字段仍为英文,渲染层会用 `data/plantes_mix.json` 做兜底翻译。
|
||||
@@ -0,0 +1,204 @@
|
||||
import httpx
|
||||
from nonebot import logger
|
||||
from nonebot.internal.params import ArgPlainText
|
||||
from nonebot.typing import T_State
|
||||
from nonebot import on_command
|
||||
from nonebot.adapters.onebot.v11 import MessageEvent, Bot, MessageSegment
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from typing import Optional, Union
|
||||
|
||||
from .equipment import get_random_equipment, get_equipment_by_combination
|
||||
from .hd2_api import get_briefing_data
|
||||
from .war_renderer import render_war_briefing
|
||||
from .utils import *
|
||||
from .equipment_store import init_db as _init_equipment_db
|
||||
from . import stratagem_admin as _stratagem_admin
|
||||
from hexi.web_plugin_registry import register_web_plugin
|
||||
from nonebot.matcher import Matcher
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
name="绝地潜兵小助手",
|
||||
description="绝地潜兵小助手,提供一些小功能,让超级地球更加美好!",
|
||||
usage="简报:获取星系战争简要概况(每个阵营取人数前 4 张卡片)\n"
|
||||
"详报:全量绘制当前进行的战役\n"
|
||||
"随机战备:让机器人帮你随机一套战备\n"
|
||||
"战备管理后台:/hub/ 统一管理台内可视化编辑",
|
||||
type="application",
|
||||
homepage="https://github.com/sansenhoshi/nonebot_plugin_helldivers_tools"
|
||||
)
|
||||
|
||||
basic_path = os.path.dirname(__file__)
|
||||
save_path = os.path.join(basic_path, "temp")
|
||||
img_path = os.path.join(basic_path, "img")
|
||||
data_path = os.path.join(basic_path, "data")
|
||||
|
||||
|
||||
# 注册到统一 Web:hub 启动时会自动挂载 /api/helldivers,无需手动配置
|
||||
_init_equipment_db()
|
||||
register_web_plugin(
|
||||
"helldivers",
|
||||
"战备管理",
|
||||
"rocket",
|
||||
lambda: _stratagem_admin.build_admin_app(),
|
||||
module_name=__name__,
|
||||
)
|
||||
logger.info("战备管理 Web 插件已注册(/api/helldivers)")
|
||||
|
||||
# 统一配置标准:把 API 相关配置暴露给 Web 管理台(/hub 插件配置)
|
||||
from hexi.config_standard import register_model_config # noqa: E402
|
||||
from .config import config as _hd2_config # noqa: E402
|
||||
|
||||
register_model_config(
|
||||
__name__,
|
||||
_hd2_config,
|
||||
fields=[
|
||||
"hd2_api_base_url",
|
||||
"hd2_api_language",
|
||||
"hd2_cache_ttl",
|
||||
"hd2_super_client",
|
||||
"hd2_super_contact",
|
||||
],
|
||||
labels={
|
||||
"hd2_api_base_url": "API 根地址",
|
||||
"hd2_api_language": "本地化语言",
|
||||
"hd2_cache_ttl": "数据缓存秒数",
|
||||
"hd2_super_client": "请求头 Client",
|
||||
"hd2_super_contact": "请求头 Contact",
|
||||
},
|
||||
descriptions={
|
||||
"hd2_api_base_url": "自托管 helldivers-2/api 根地址;不填则用公共社区 API",
|
||||
"hd2_api_language": "请求本地化语言,自托管实例支持 zh-Hans/zh-Hant",
|
||||
"hd2_cache_ttl": "战况快照约几分钟更新一次,靠这个避免频繁打接口触发限流",
|
||||
"hd2_super_client": "公共/自托管都要求 X-Super-Client 头",
|
||||
"hd2_super_contact": "公共/自托管都要求 X-Super-Contact 头",
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
async def _send_war_card(matcher: Matcher, ev: MessageEvent, top_per_race: Optional[int]) -> None:
|
||||
await matcher.send("正在获取前线战况,请民主的等待!")
|
||||
try:
|
||||
data = await get_briefing_data()
|
||||
png = await render_war_briefing(data, top_per_race)
|
||||
except Exception as e:
|
||||
logger.exception("获取战况失败")
|
||||
await matcher.finish(
|
||||
MessageSegment.reply(ev.message_id)
|
||||
+ f"战况获取失败:{type(e).__name__}:{e}"
|
||||
)
|
||||
return
|
||||
mes = (MessageSegment.reply(ev.message_id), gen_ms_img(png))
|
||||
await matcher.send(mes)
|
||||
|
||||
|
||||
war_situation = on_command("简报", aliases={"简报"})
|
||||
war_detail = on_command("详报", aliases={"详报"})
|
||||
|
||||
|
||||
@war_situation.handle()
|
||||
async def get_war_info(ev: MessageEvent):
|
||||
await _send_war_card(war_situation, ev, top_per_race=4)
|
||||
|
||||
|
||||
@war_detail.handle()
|
||||
async def get_war_detail(ev: MessageEvent):
|
||||
await _send_war_card(war_detail, ev, top_per_race=None)
|
||||
|
||||
|
||||
async def download_url(url: str) -> bytes | None:
|
||||
async with httpx.AsyncClient() as client:
|
||||
for i in range(3):
|
||||
try:
|
||||
resp = await client.get(url)
|
||||
if resp.status_code != 200:
|
||||
continue
|
||||
return resp.content
|
||||
except Exception as e:
|
||||
print(f"Error downloading {url}, retry {i}/3: {str(e)}")
|
||||
return None
|
||||
|
||||
|
||||
random_helldivers = on_command("随机战备", aliases={"随机战备"}, block=True)
|
||||
|
||||
# PROMPT = """ ***超级地球武装部***
|
||||
# 请发送你需要的随机规则
|
||||
#
|
||||
# 1:纯随机(不推荐)
|
||||
#
|
||||
# 套路随机(按一定规则随机)
|
||||
#
|
||||
# 2:2红/1蓝/1绿
|
||||
# 3:2绿/1红/1蓝
|
||||
# 4:2蓝/1绿/1红
|
||||
#
|
||||
# 5:3红/1蓝
|
||||
# 6:3绿/1蓝
|
||||
#
|
||||
# 7:2红/2蓝
|
||||
# 8:2蓝/2绿
|
||||
# 9:2绿/2红
|
||||
#
|
||||
# 10:4红
|
||||
# 11:4绿"""
|
||||
|
||||
board_path = f"{img_path}/board2.png"
|
||||
|
||||
PROMPT = MessageSegment.image(pic2b64(Image.open(board_path)))
|
||||
|
||||
error_count = 0
|
||||
|
||||
|
||||
# 用户选择
|
||||
@random_helldivers.got("pick_type", prompt=PROMPT)
|
||||
async def got_random_helldivers(event: MessageEvent, pick_type: str = ArgPlainText()):
|
||||
global error_count
|
||||
if error_count >= 2:
|
||||
await random_helldivers.finish("已回归平民生活——")
|
||||
logger.info("持续输错退出随机战备")
|
||||
error_count = 0
|
||||
return
|
||||
logger.info(f"用户选择的战备类型: {pick_type}")
|
||||
if not is_number(pick_type):
|
||||
error_count += 1
|
||||
await random_helldivers.reject(f"您输入的 {pick_type} 非数字,请重新输入1到11,或者输入0退出")
|
||||
elif int(pick_type) not in range(12):
|
||||
error_count += 1
|
||||
await random_helldivers.reject(f"您输入的 {pick_type} 不在范围内,请重新输入1到11,或者输入0退出")
|
||||
elif int(pick_type) == 0:
|
||||
await random_helldivers.finish("已回归平民生活——")
|
||||
logger.info("用户选择退出随机战备")
|
||||
error_count = 0
|
||||
return
|
||||
|
||||
mix_msg = (MessageSegment.reply(event.message_id),)
|
||||
|
||||
type_combinations = {
|
||||
2: {'red': 2, 'blue': 1, 'green': 1},
|
||||
3: {'green': 2, 'red': 1, 'blue': 1},
|
||||
4: {'blue': 2, 'green': 1, 'red': 1},
|
||||
5: {'red': 3, 'blue': 1},
|
||||
6: {'green': 3, 'blue': 1},
|
||||
7: {'red': 2, 'blue': 2},
|
||||
8: {'blue': 2, 'green': 2},
|
||||
9: {'green': 2, 'red': 2},
|
||||
10: {'red': 4},
|
||||
11: {'green': 4}
|
||||
}
|
||||
|
||||
if int(pick_type) == 1:
|
||||
logger.info("用户选择纯随机战备")
|
||||
result = await get_random_equipment(4) # 4 random equipments
|
||||
else:
|
||||
combination = type_combinations.get(int(pick_type))
|
||||
logger.info(f"用户选择的战备组合: {combination}")
|
||||
result = await get_equipment_by_combination(combination)
|
||||
|
||||
final_msg = MessageSegment.text("您的随机结果是:\n")
|
||||
image_tuple = gen_ms_img(result)
|
||||
mix_msg += (final_msg, image_tuple)
|
||||
|
||||
await random_helldivers.finish(mix_msg)
|
||||
|
||||
|
||||
def is_number(s):
|
||||
return bool(re.match(r'^[0-9]+$', s))
|
||||
@@ -0,0 +1,487 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<base href="file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/" />
|
||||
<style>
|
||||
@font-face{font-family:'HC Sinclair';src:url(data/font/HCSinclair-Normal.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HC Sinclair';src:url(data/font/HCSinclair-Medium.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'FS Sinclair';src:url(data/font/FSSinclair-Bold.ttf) format('ttf');font-weight:700;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Planet';src:url(data/font/HD2S字体包/商用免费/爱点风雅黑/爱点风雅黑.ttf) format('truetype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Sector';src:url(data/font/HD2S字体包/商用授权/造字工坊尚黑/造字工房尚黑G0v1常规体.otf) format('opentype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Display';src:url(data/font/HD2S字体包/商用免费/创客贴金刚体/ChuangKeTieJinGangTi-2.otf) format('opentype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Body';src:url(data/font/HD2S字体包/商用免费/一品创享体/一品创享体 1.20.ttf) format('truetype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Sans';src:url(data/font/HD2S字体包/商用免费/思源黑体/SourceHanSansCN-Regular.otf) format('opentype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
body { background: #070707; font-family: "HC Sinclair", "FS Sinclair", "HD2 Body", "HD2 Sans", "Microsoft YaHei", "Noto Sans SC", sans-serif; color: #fbfaf5; padding: 16px; }
|
||||
.card { width: 750px; background: linear-gradient(165deg, #0f0f0f 0%, #0a0a0a 100%); border: 1px solid #262626; border-radius: 16px; padding: 24px 26px; }
|
||||
.header { display: flex; align-items: center; margin-bottom: 20px; }
|
||||
.brief-overview { margin-bottom: 20px; }
|
||||
.brief-overview .order { margin-bottom: 12px; }
|
||||
.brief-overview > .box:last-child { margin-bottom: 0; }
|
||||
.header .logo { width: 56px; height: 56px; margin-right: 16px; }
|
||||
.header .title { font-size: 34px; font-weight: 700; color: #FFE710; letter-spacing: 3px; text-transform: uppercase; }
|
||||
.header .subtitle { font-size: 13px; color: #9a9a90; margin-top: 4px; letter-spacing: 1px; }
|
||||
/* 标题用 HD2 军事硬朗中文字体(创客贴金刚体),正文回落系统黑体 */
|
||||
.box-title, .order-title, .header .title { font-family: "HD2 Display", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
/* 中文用途字体:星球名=爱点风雅黑,星系名=造字工房尚黑 */
|
||||
.planet { font-family: "HD2 Planet", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
.sector-name { font-family: "HD2 Sector", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
/* 小标签用思源黑体;line-height:1 收紧行框,避免中文大行高导致文字视觉偏下 */
|
||||
.efx, .stat .k, .chip, .order-meta { font-family: "HD2 Sans", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; line-height: 1; }
|
||||
/* 星系战况(stat)用思源黑体,数字/统计更清晰平直 */
|
||||
.stat .v, .stat .k { font-family: "HD2 Sans", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
.box { background: #161616; border: 1px solid #2a2a2a; border-radius: 12px; padding: 18px 20px; margin-bottom: 20px; }
|
||||
.box-title { display: flex; align-items: center; font-size: 17px; font-weight: 700; color: #fbfaf5; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 14px; }
|
||||
.box-title .dot { width: 8px; height: 8px; border-radius: 50%; background: #FFE710; margin-right: 9px; box-shadow: 0 0 10px #FFE710; }
|
||||
.ic { display: inline-block; flex: none; }
|
||||
.empty { color: #9a9a90; font-size: 15px; }
|
||||
.order { border-left: 3px solid #FFE710; background: linear-gradient(90deg, #1a1a17 0%, #161616 100%); }
|
||||
.order-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
|
||||
.order-title2 { display: flex; align-items: center; gap: 6px; font-size: 17px; font-weight: 700; color: #fbfaf5; text-transform: uppercase; letter-spacing: 1px; }
|
||||
.order-remain { font-size: 14px; font-weight: 700; color: #FFE710; }
|
||||
.order-desc { font-size: 15px; color: #d9d6c8; line-height: 1.7; }
|
||||
.order-ov { margin-top: 12px; }
|
||||
.order-ov-title { font-size: 13px; color: #9a9a90; letter-spacing: 1px; margin-bottom: 6px; }
|
||||
.order-target { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 13px; }
|
||||
.ot-dot { flex: none; width: 10px; height: 10px; border-radius: 3px; }
|
||||
.ot-main { flex: 1; min-width: 0; }
|
||||
.ot-name { display: block; min-width: 0; color: #fbfaf5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
||||
/* 重要指令目标:格子型进度条(双色交战,解放=蓝领先/防守=敌色侵占蓝条) */
|
||||
.otseg { height: 7px; margin: 5px 0 0; gap: 2px; }
|
||||
.otseg i { box-shadow: inset 0 0 0 1px rgba(0,0,0,0.3); }
|
||||
.ot-pct { flex: none; min-width: 50px; text-align: right; color: #fbfaf5; }
|
||||
.order-meta { display: flex; gap: 26px; margin-top: 12px; font-size: 14px; color: #CBCBCD; }
|
||||
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; background: #101010; border: 1px solid #2a2a2a; border-radius: 10px; overflow: hidden; }
|
||||
.stat { position: relative; min-width: 0; background: transparent; border: 0; border-radius: 0; padding: 13px 8px 11px; text-align: center; }
|
||||
.stat:nth-child(4n + 2), .stat:nth-child(4n + 3), .stat:nth-child(4n + 4) { border-left: 1px solid #2d2d2a; }
|
||||
.stat:nth-child(n + 5) { border-top: 1px solid #2d2d2a; }
|
||||
.stat .v { font-family: "FS Sinclair", "HC Sinclair", sans-serif; font-size: 25px; line-height: 1; font-weight: 700; color: #fbfaf5; letter-spacing: 1px; }
|
||||
.stat .k { font-family: "HD2 Sans", "Microsoft YaHei", "Noto Sans SC", sans-serif; font-size: 11px; color: #8d8d85; margin-top: 7px; letter-spacing: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
||||
.camps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
|
||||
.campsec { margin-top: 16px; }
|
||||
.campsec:first-child { margin-top: 0; }
|
||||
.campsec-title { display: flex; align-items: center; gap: 7px; font-size: 15px; font-weight: 700; letter-spacing: 1px; margin-bottom: 10px; }
|
||||
.campsec-title .campsec-sub { margin-left: auto; font-size: 12px; color: #9a9a90; font-weight: 400; }
|
||||
/* 单卡(参考图样式,缩放到两列网格的紧凑 tile) */
|
||||
.camp { position: relative; display: flex; background: #0c0c0c; background-size: cover; background-position: center top; border: 1px solid #2a2a2a; border-radius: 14px; overflow: hidden; min-height: 300px; box-shadow: 0 8px 22px rgba(0,0,0,0.5); }
|
||||
.camp-veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,5,5,0.30) 0%, rgba(5,5,5,0.56) 46%, rgba(5,5,5,0.94) 100%); pointer-events: none; }
|
||||
.camp-rail { position: relative; z-index: 3; width: 42px; flex: none; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; padding: 12px 0 14px; gap: 9px; background: linear-gradient(180deg, #151515 0%, #0a0a0a 100%); border-right: 1px solid rgba(255,255,255,0.08); box-shadow: inset 3px 0 12px rgba(0,0,0,0.6); }
|
||||
.camp-rail::before { content: ""; position: absolute; left: 1px; top: 0; bottom: 0; width: 3px; background: linear-gradient(180deg, var(--rc), rgba(0,0,0,0)); }
|
||||
.rail-icon { display: flex; align-items: center; justify-content: center; width: 100%; height: 28px; margin-top: 4px; }
|
||||
.rail-icon .ic { width: 24px; height: 24px; margin-right: 0; display: block; }
|
||||
.rail-text { writing-mode: vertical-rl; text-align: center; letter-spacing: 3px; line-height: 1; font-size: 13px; font-weight: 700; color: #fbfaf5; opacity: 0.92; margin-top: 10px; text-shadow: 0 1px 4px rgba(0,0,0,0.8); }
|
||||
.rail-dots { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-top: auto; }
|
||||
.rail-dots i { width: 5px; height: 5px; border-radius: 50%; background: rgba(255,255,255,0.35); }
|
||||
.camp-body { position: relative; z-index: 2; flex: 1; min-width: 0; padding: 12px 12px 12px 11px; }
|
||||
.camp-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
|
||||
.camp-title { min-width: 0; }
|
||||
.camp .planet { font-family: "HD2 Planet", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; font-size: 19px; font-weight: 700; color: #fff; text-transform: uppercase; letter-spacing: 1px; text-shadow: 0 2px 6px rgba(0,0,0,0.9); line-height: 1.1; }
|
||||
.camp-faction { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; margin-top: 5px; text-shadow: 0 1px 4px rgba(0,0,0,0.9); }
|
||||
.camp-prog { flex: none; text-align: right; }
|
||||
.camp-pct { font-family: "FS Sinclair", "HC Sinclair", sans-serif; font-size: 22px; font-weight: 700; line-height: 1; color: #fff; text-shadow: 0 2px 6px rgba(0,0,0,0.9); }
|
||||
.camp-prog-label { font-size: 11px; color: #c9c9c0; margin-top: 4px; letter-spacing: 1px; text-shadow: 0 1px 4px rgba(0,0,0,0.9); }
|
||||
.segbar { display: flex; gap: 3px; height: 9px; margin: 12px 0 0; }
|
||||
.segbar i { flex: 1; background: rgba(255,255,255,0.10); border-radius: 2px; }
|
||||
/* 双色交战进度条:两股颜色争地盘,谁段多谁占优 */
|
||||
.segbar-duo i { box-shadow: inset 0 0 0 1px rgba(0,0,0,0.35); border-radius: 2px; }
|
||||
.camp-remain { font-size: 12px; color: #d9d6c8; margin-top: 7px; text-shadow: 0 1px 4px rgba(0,0,0,0.9); }
|
||||
.camp-remain b { color: #fbfaf5; font-weight: 700; }
|
||||
.info-rows { margin-top: 11px; border-top: 1px solid rgba(255,255,255,0.08); }
|
||||
.irow { display: flex; align-items: center; gap: 7px; padding: 8px 2px; border-bottom: 1px solid rgba(255,255,255,0.06); }
|
||||
.irow-ic { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; color: #b0b0a8; }
|
||||
.irow-ic .ic { width: 15px !important; height: 15px !important; margin-right: 0; }
|
||||
.irow-label { flex: none; min-width: 52px; font-size: 11px; color: #9a9a90; letter-spacing: 1px; }
|
||||
.irow-val { flex: 1; text-align: right; font-size: 13px; font-weight: 700; color: #fbfaf5; }
|
||||
.haz-val { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 3px 10px; }
|
||||
.hzt { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
|
||||
.hzt .ic { display: inline-block; }
|
||||
.feat-row { display: flex; align-items: flex-start; gap: 8px; margin-top: 10px; }
|
||||
.feat-label { display: inline-flex; align-items: center; gap: 5px; flex: none; font-size: 13px; font-weight: 700; color: #fbfaf5; }
|
||||
.feat-tags { display: flex; flex-wrap: wrap; gap: 5px; flex: 1; min-width: 0; }
|
||||
/* 星球效果 徽章(复用 efx,尺寸放大适配单卡) */
|
||||
.efx { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; background: rgba(224,196,106,0.12); border: 1px solid; border-radius: 20px; padding: 1px 9px; }
|
||||
.feat-tags .efx { padding: 4px 10px; font-size: 12px; font-weight: 700; }
|
||||
/* 民主空间站(DSS)增益标识:会动的星球,驻扎给该星球带来 buff;字体用思源黑体(HD2 Sans) */
|
||||
.dss { margin: 0 0 6px; padding: 6px 10px; background: linear-gradient(90deg, #6bb7ea28, #6bb7ea0c); border: 1px solid #6bb7ea55; border-radius: 8px; font-family: "HD2 Sans", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
.dss-head { display: flex; align-items: center; gap: 6px; }
|
||||
.dss-ic { display: inline-flex; flex: none; }
|
||||
.dss-tx { font-size: 13px; font-weight: 700; color: #6bb7ea; letter-spacing: 1px; }
|
||||
.dss-actions { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 3px 0 0 22px; font-size: 13px; color: #6bb7ea; }
|
||||
.dss-inherent { margin: 3px 0 0 22px; font-size: 13px; color: #6bb7ea; line-height: 1.4; word-break: break-word; }
|
||||
.dss-b { display: inline-flex; align-items: center; gap: 3px; }
|
||||
.dss-b .ic { width: 13px; height: 13px; }
|
||||
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
|
||||
.chip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid; border-radius: 20px; padding: 6px 16px; font-size: 14px; font-weight: 700; background: #101010; letter-spacing: 1px; }
|
||||
.foot { text-align: center; font-size: 12px; color: #5a5a52; margin-top: 4px; }
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="card">
|
||||
|
||||
<div class="header">
|
||||
<img class="logo" src="img/super earth.png" alt="logo" />
|
||||
<div class="title">超级地球战况简报</div>
|
||||
<div class="subtitle">Galactic War Briefing · 2026-08-28 19:01</div>
|
||||
</div>
|
||||
|
||||
<div class="brief-overview">
|
||||
|
||||
<div class="box order">
|
||||
<div class="order-head">
|
||||
<span class="order-title2"><span class="dot"></span><svg class="ic" viewBox="0 0 1000 1000" style="width:1.2em;height:1.2em;color:#FFE710;vertical-align:middle;"> <g style=" pointer-events: none; " class="noselect notouch svelte-1fita6j" opacity="1"><g transform="scale(1 1)" class="svelte-1fita6j"><g transform="translate(500 500) scale(1 1)" class="svelte-1fita6j"><g opacity="1" transform="translate(-500 -500)" class="svelte-1fita6j"><g clip-path="url('#svgIc_clipShape_36')"><g style="color: ;"><path class="anim_target svelte-1fita6j" id="icPath136i0" d="M512,220c115,5,213,80,251,183H575ZM425,402l62-182c-115,5-213,80-251,183ZM379,544,229,427a281,281,0,0,0,96,293Zm121,88L347,736a281,281,0,0,0,307,0Zm121-88,54,177a281,281,0,0,0,96-293Z" style="pointer-events: none;" stroke-miterlimit="1.77" fill="currentColor" stroke="currentColor" stroke-width="0" stroke-linecap="round" stroke-linejoin="miter" transform="translate(-400 -400) scale(1.8)"></path></g></g></g></g></g></g></svg>重要指令</span>
|
||||
<span class="order-remain">剩余:73小时1分</span>
|
||||
</div>
|
||||
<div class="order-desc">解放指定的敌方星球,这些星球极有可能藏匿着破坏TCS+的异见分子。</div>
|
||||
<div class="order-ov"><div class="order-ov-title">指令目标</div><div class='order-target'><span class='ot-dot' style='background:#FFE710'></span><span class='ot-main'><span class='ot-name'>十字架一</span></span><span class='ot-pct'>—</span></div><div class='order-target'><span class='ot-dot' style='background:#6bb7ea'></span><span class='ot-main'><span class='ot-name'>轧尔哈伦</span><div class='segbar segbar-duo otseg'><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i></div></span><span class='ot-pct'>90%</span></div><div class='order-target'><span class='ot-dot' style='background:#FFE710'></span><span class='ot-main'><span class='ot-name'>富源</span></span><span class='ot-pct'>—</span></div></div>
|
||||
<div class="order-meta"><span>奖励:50奖章</span></div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="box">
|
||||
<div class="box-title"><span class="dot"></span>星系战况</div>
|
||||
<div class="stats"><div class='stat'><div class='v'>56.9K</div><div class='k'>参战潜兵</div></div><div class='stat'><div class='v'>91%</div><div class='k'>任务完成率</div></div><div class='stat'><div class='v'>35</div><div class='k'>当前战役数</div></div><div class='stat'><div class='v'>216.6B</div><div class='k'>终结族总击杀</div></div><div class='stat'><div class='v'>115.0B</div><div class='k'>机器人总击杀</div></div><div class='stat'><div class='v'>75.8B</div><div class='k'>光能族总击杀</div></div><div class='stat'><div class='v'>8.7B</div><div class='k'>潜兵总阵亡</div></div><div class='stat'><div class='v'>1.0B</div><div class='k'>任务完成总数</div></div></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="box">
|
||||
<div class="box-title"><span class="dot"></span>进行中的战役</div>
|
||||
|
||||
<div class="campsec">
|
||||
<div class="campsec-title" style="color:#ff9900"><img class='ic' src='img/assets/icons/faction-terminid.png' style='width:1.2em;height:1.2em;color:#ff9900;vertical-align:middle;'>终结族 · 10<span class="campsec-sub">玩家 4.9万</span></div>
|
||||
<div class="camps">
|
||||
<div class="camp" style="background-image:url(img/assets/planets/gar-haren.png);">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#ff9900">
|
||||
<span class="rail-icon"><img class='ic' src='img/assets/icons/faction-terminid.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">解放战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">轧尔哈伦</div>
|
||||
<div class="camp-faction" style="color:#ff9900"><img class='ic' src='img/assets/icons/faction-terminid.png' style='width:1.2em;height:1.2em;color:#ff9900;vertical-align:middle;'>终结族 · 解放</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">90%</div>
|
||||
<div class="camp-prog-label">解放进度</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='dss'><div class='dss-head'><span class='dss-ic'><img class='ic' src='img/assets/icons/effect-dss.png' style='width:16px;height:16px;color:#6bb7ea;vertical-align:middle;'></span><span class='dss-tx'>民主空间站</span></div><div class='dss-inherent'>行动支持 · 外骨骼装甲储备</div><div class='dss-actions'><span class='dss-b'><img class='ic' src='img/assets/icons/effect-dss-blockade.png' style='width:13px;height:13px;color:#6bb7ea;vertical-align:middle;'>轨道封锁</span></div></div>
|
||||
<div class='segbar segbar-duo '><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i></div>
|
||||
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>锦栖分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>3.5万</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>幽祟沼泽</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val haz-val'><span class='hzt'>无</span></span></div></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="camp" style="background-image:url(img/assets/planets/achernar-secundus.png);">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#6bb7ea">
|
||||
<span class="rail-icon"><img class='ic' src='img/assets/icons/faction-super-earth.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">保卫战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">水委一次星</div>
|
||||
<div class="camp-faction" style="color:#6bb7ea"><img class='ic' src='img/assets/icons/faction-super-earth.png' style='width:1.2em;height:1.2em;color:#6bb7ea;vertical-align:middle;'>超级地球 · 防守</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">72%</div>
|
||||
<div class="camp-prog-label">入侵进度</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='segbar segbar-duo '><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i></div>
|
||||
<div class='camp-remain'>剩余时间:<b>1小时3分</b></div>
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#6bb7ea;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>博格斯分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#6bb7ea;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>5,416</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#6bb7ea;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>平原</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#6bb7ea;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val haz-val'><span class='hzt'>无</span></span></div></div>
|
||||
<div class='feat-row'><span class='feat-label'><svg class='ic' viewBox='0 0 24 24' style='width:1em;height:1em;color:#6bb7ea;vertical-align:middle;'><rect x="2.5" y="2.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="13.5" y="2.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="2.5" y="13.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="13.5" y="13.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/></svg>星球效果</span><span class='feat-tags'><span class='efx' style='background:#6bb7ea1f;border-color:#6bb7ea66;color:#6bb7ea'><img class='ic' src='img/assets/icons/effect-factory-hub.png' style='width:1.2em;height:1.2em;color:#6bb7ea;vertical-align:middle;'> 工厂枢纽</span><span class='efx' style='background:#e0c46a1f;border-color:#e0c46a66;color:#e0c46a'><img class='ic' src='img/assets/icons/effect-tcs-plus.png' style='width:1.2em;height:1.2em;color:#e0c46a;vertical-align:middle;'> 终结族遏制体系+</span><span class='efx' style='background:#ff99001f;border-color:#ff990066;color:#ff9900'><img class='ic' src='img/assets/icons/effect-predator-strain.png' style='width:1.2em;height:1.2em;color:#ff9900;vertical-align:middle;'> 掠食变种</span><span class='efx' style='background:#6bb7ea1f;border-color:#6bb7ea66;color:#6bb7ea'><img class='ic' src='img/assets/icons/effect-heavy-seaf.png' style='width:1.2em;height:1.2em;color:#6bb7ea;vertical-align:middle;'> 超级地球武装部队驻守</span></span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="camp" style="background-image:url(img/assets/planets/phact-bay.png);">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#ff9900">
|
||||
<span class="rail-icon"><img class='ic' src='img/assets/icons/faction-terminid.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">解放战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">丈人一湾</div>
|
||||
<div class="camp-faction" style="color:#ff9900"><img class='ic' src='img/assets/icons/faction-terminid.png' style='width:1.2em;height:1.2em;color:#ff9900;vertical-align:middle;'>终结族 · 解放</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">0%</div>
|
||||
<div class="camp-prog-label">解放进度</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='segbar segbar-duo '><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i></div>
|
||||
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>锦栖分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>3,126</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>沙漠沙丘</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val haz-val'><span class='hzt'><img class='ic' src='img/assets/icons/hazard-sandstorms.png' style='width:13px;height:13px;color:#ff9900;vertical-align:middle;'>沙暴</span></span></div></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="camp" style="background-image:url(img/assets/planets/gatria.png);">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#ff9900">
|
||||
<span class="rail-icon"><img class='ic' src='img/assets/icons/faction-terminid.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">解放战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">盖尔崔亚</div>
|
||||
<div class="camp-faction" style="color:#ff9900"><img class='ic' src='img/assets/icons/faction-terminid.png' style='width:1.2em;height:1.2em;color:#ff9900;vertical-align:middle;'>终结族 · 解放</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">0%</div>
|
||||
<div class="camp-prog-label">解放进度</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='segbar segbar-duo '><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i></div>
|
||||
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>锦栖分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>2,414</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>离子绯红之地</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val haz-val'><span class='hzt'><img class='ic' src='img/assets/icons/hazard-ion-storms.png' style='width:13px;height:13px;color:#ff9900;vertical-align:middle;'>离子风暴</span></span></div></div>
|
||||
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
<div class="campsec">
|
||||
<div class="campsec-title" style="color:#fe6d6a"><img class='ic' src='img/assets/icons/faction-automaton.png' style='width:1.2em;height:1.2em;color:#fe6d6a;vertical-align:middle;'>机器人 · 9<span class="campsec-sub">玩家 4,537</span></div>
|
||||
<div class="camps">
|
||||
<div class="camp" style="background-image:url(img/assets/planets/matar-bay.png);">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#fe6d6a">
|
||||
<span class="rail-icon"><img class='ic' src='img/assets/icons/faction-automaton.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">解放战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">玛塔</div>
|
||||
<div class="camp-faction" style="color:#fe6d6a"><img class='ic' src='img/assets/icons/faction-automaton.png' style='width:1.2em;height:1.2em;color:#fe6d6a;vertical-align:middle;'>机器人 · 解放</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">0%</div>
|
||||
<div class="camp-prog-label">解放进度</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='segbar segbar-duo '><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i></div>
|
||||
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>仙女座分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>1,420</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>平原</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val haz-val'><span class='hzt'>无</span></span></div></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="camp" style="background-image:url(img/assets/planets/aurora-bay.png);">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#fe6d6a">
|
||||
<span class="rail-icon"><img class='ic' src='img/assets/icons/faction-automaton.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">解放战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">极光湾</div>
|
||||
<div class="camp-faction" style="color:#fe6d6a"><img class='ic' src='img/assets/icons/faction-automaton.png' style='width:1.2em;height:1.2em;color:#fe6d6a;vertical-align:middle;'>机器人 · 解放</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">0%</div>
|
||||
<div class="camp-prog-label">解放进度</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='segbar segbar-duo '><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i></div>
|
||||
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>瓦尔迪斯分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>661</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>苔原</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val haz-val'><span class='hzt'>无</span></span></div></div>
|
||||
<div class='feat-row'><span class='feat-label'><svg class='ic' viewBox='0 0 24 24' style='width:1em;height:1em;color:#fe6d6a;vertical-align:middle;'><rect x="2.5" y="2.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="13.5" y="2.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="2.5" y="13.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="13.5" y="13.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/></svg>星球效果</span><span class='feat-tags'><span class='efx' style='background:#fe6d6a1f;border-color:#fe6d6a66;color:#fe6d6a'><img class='ic' src='img/assets/icons/effect-jet-brigade-factory.png' style='width:1.2em;height:1.2em;color:#fe6d6a;vertical-align:middle;'> 喷气旅孵化厂</span></span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="camp" style="background-image:url(img/assets/planets/martale.png);">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#fe6d6a">
|
||||
<span class="rail-icon"><img class='ic' src='img/assets/icons/faction-automaton.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">解放战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">玛尔特</div>
|
||||
<div class="camp-faction" style="color:#fe6d6a"><img class='ic' src='img/assets/icons/faction-automaton.png' style='width:1.2em;height:1.2em;color:#fe6d6a;vertical-align:middle;'>机器人 · 解放</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">0%</div>
|
||||
<div class="camp-prog-label">解放进度</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='segbar segbar-duo '><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i></div>
|
||||
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>仙女座分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>603</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>苔原</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val haz-val'><span class='hzt'>无</span></span></div></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="camp" style="background-image:url(img/assets/planets/choohe.png);">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#fe6d6a">
|
||||
<span class="rail-icon"><img class='ic' src='img/assets/icons/faction-automaton.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">解放战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">丘伊</div>
|
||||
<div class="camp-faction" style="color:#fe6d6a"><img class='ic' src='img/assets/icons/faction-automaton.png' style='width:1.2em;height:1.2em;color:#fe6d6a;vertical-align:middle;'>机器人 · 解放</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">0%</div>
|
||||
<div class="camp-prog-label">解放进度</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='segbar segbar-duo '><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i><i style='background:#fe6d6a'></i></div>
|
||||
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>拉凯欧分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>564</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>沙漠沙丘</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#fe6d6a;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val haz-val'><span class='hzt'><img class='ic' src='img/assets/icons/hazard-sandstorms.png' style='width:13px;height:13px;color:#fe6d6a;vertical-align:middle;'>沙暴</span></span></div></div>
|
||||
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
<div class="campsec">
|
||||
<div class="campsec-title" style="color:#CF64F8"><img class='ic' src='img/assets/icons/faction-illuminate.png' style='width:1.2em;height:1.2em;color:#CF64F8;vertical-align:middle;'>光能族 · 16<span class="campsec-sub">玩家 1,905</span></div>
|
||||
<div class="camps">
|
||||
<div class="camp" style="background-image:url(img/assets/planets/karlia.png);">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#CF64F8">
|
||||
<span class="rail-icon"><img class='ic' src='img/assets/icons/faction-illuminate.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">解放战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">可利亚</div>
|
||||
<div class="camp-faction" style="color:#CF64F8"><img class='ic' src='img/assets/icons/faction-illuminate.png' style='width:1.2em;height:1.2em;color:#CF64F8;vertical-align:middle;'>光能族 · 解放</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">9%</div>
|
||||
<div class="camp-prog-label">解放进度</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='segbar segbar-duo '><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i></div>
|
||||
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>欧米茄分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>564</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>焦土荒原</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val haz-val'><span class='hzt'><img class='ic' src='img/assets/icons/hazard-fire-tornados.png' style='width:13px;height:13px;color:#CF64F8;vertical-align:middle;'>烈焰龙卷</span></span></div></div>
|
||||
<div class='feat-row'><span class='feat-label'><svg class='ic' viewBox='0 0 24 24' style='width:1em;height:1em;color:#CF64F8;vertical-align:middle;'><rect x="2.5" y="2.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="13.5" y="2.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="2.5" y="13.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="13.5" y="13.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/></svg>星球效果</span><span class='feat-tags'><span class='efx' style='background:#CF64F81f;border-color:#CF64F866;color:#CF64F8'><img class='ic' src='img/assets/icons/effect-vote-snatchers.png' style='width:1.2em;height:1.2em;color:#CF64F8;vertical-align:middle;'> 窃票者</span></span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="camp" style="background-image:url(img/assets/planets/alaraph.png);">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#CF64F8">
|
||||
<span class="rail-icon"><img class='ic' src='img/assets/icons/faction-illuminate.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">解放战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">右执法</div>
|
||||
<div class="camp-faction" style="color:#CF64F8"><img class='ic' src='img/assets/icons/faction-illuminate.png' style='width:1.2em;height:1.2em;color:#CF64F8;vertical-align:middle;'>光能族 · 解放</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">3%</div>
|
||||
<div class="camp-prog-label">解放进度</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='segbar segbar-duo '><i style='background:#6bb7ea'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i></div>
|
||||
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>阿基拉分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>254</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>死寂之地</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val haz-val'><span class='hzt'>无</span></span></div></div>
|
||||
<div class='feat-row'><span class='feat-label'><svg class='ic' viewBox='0 0 24 24' style='width:1em;height:1em;color:#CF64F8;vertical-align:middle;'><rect x="2.5" y="2.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="13.5" y="2.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="2.5" y="13.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="13.5" y="13.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/></svg>星球效果</span><span class='feat-tags'><span class='efx' style='background:#CF64F81f;border-color:#CF64F866;color:#CF64F8'><img class='ic' src='img/assets/icons/effect-vote-snatchers.png' style='width:1.2em;height:1.2em;color:#CF64F8;vertical-align:middle;'> 窃票者</span></span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="camp" style="">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#CF64F8">
|
||||
<span class="rail-icon"><img class='ic' src='img/assets/icons/faction-illuminate.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">解放战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">格拉夫米尔</div>
|
||||
<div class="camp-faction" style="color:#CF64F8"><img class='ic' src='img/assets/icons/faction-illuminate.png' style='width:1.2em;height:1.2em;color:#CF64F8;vertical-align:middle;'>光能族 · 解放</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">0%</div>
|
||||
<div class="camp-prog-label">解放进度</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='segbar segbar-duo '><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i></div>
|
||||
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>瑞克图斯分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>207</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>骸骨之地</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val haz-val'><span class='hzt'>无</span></span></div></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="camp" style="">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#CF64F8">
|
||||
<span class="rail-icon"><img class='ic' src='img/assets/icons/faction-illuminate.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">解放战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">新戈23</div>
|
||||
<div class="camp-faction" style="color:#CF64F8"><img class='ic' src='img/assets/icons/faction-illuminate.png' style='width:1.2em;height:1.2em;color:#CF64F8;vertical-align:middle;'>光能族 · 解放</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">0%</div>
|
||||
<div class="camp-prog-label">解放进度</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='segbar segbar-duo '><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i><i style='background:#CF64F8'></i></div>
|
||||
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>欧米茄分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>174</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>岩质峡谷</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#CF64F8;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val haz-val'><span class='hzt'><img class='ic' src='img/assets/icons/hazard-tremors.png' style='width:13px;height:13px;color:#CF64F8;vertical-align:middle;'>地震</span></span></div></div>
|
||||
<div class='feat-row'><span class='feat-label'><svg class='ic' viewBox='0 0 24 24' style='width:1em;height:1em;color:#CF64F8;vertical-align:middle;'><rect x="2.5" y="2.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="13.5" y="2.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="2.5" y="13.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="13.5" y="13.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/></svg>星球效果</span><span class='feat-tags'><span class='efx' style='background:#CF64F81f;border-color:#CF64F866;color:#CF64F8'><img class='ic' src='img/assets/icons/effect-invasion-fleet.webp' style='width:1.2em;height:1.2em;color:#CF64F8;vertical-align:middle;'> 入侵舰队</span><span class='efx' style='background:#CF64F81f;border-color:#CF64F866;color:#CF64F8'><img class='ic' src='img/assets/icons/effect-appropriators.png' style='width:1.2em;height:1.2em;color:#CF64F8;vertical-align:middle;'> 占领者</span></span></div>
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="box">
|
||||
<div class="box-title"><span class="dot"></span>星系控制</div>
|
||||
<div class="chips"><span class='chip' style='border-color:#6bb7ea;color:#6bb7ea'><img class='ic' src='img/assets/icons/faction-super-earth.png' style='width:1.2em;height:1.2em;color:#6bb7ea;vertical-align:middle;'> 超级地球 209</span><span class='chip' style='border-color:#ff9900;color:#ff9900'><img class='ic' src='img/assets/icons/faction-terminid.png' style='width:1.2em;height:1.2em;color:#ff9900;vertical-align:middle;'> 终结族 25</span><span class='chip' style='border-color:#fe6d6a;color:#fe6d6a'><img class='ic' src='img/assets/icons/faction-automaton.png' style='width:1.2em;height:1.2em;color:#fe6d6a;vertical-align:middle;'> 机器人 14</span><span class='chip' style='border-color:#CF64F8;color:#CF64F8'><img class='ic' src='img/assets/icons/faction-illuminate.png' style='width:1.2em;height:1.2em;color:#CF64F8;vertical-align:middle;'> 光能族 25</span></div>
|
||||
</div>
|
||||
|
||||
<div class="foot">数据来源:helldivers-2/api 社区接口 · 仅供娱乐</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,152 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN"><head><meta charset="utf-8">
|
||||
<base href="file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/" />
|
||||
<style>
|
||||
@font-face{font-family:'HC Sinclair';src:url(data/font/HCSinclair-Normal.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HC Sinclair';src:url(data/font/HCSinclair-Medium.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'FS Sinclair';src:url(data/font/FSSinclair-Bold.ttf) format('ttf');font-weight:700;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Planet';src:url(data/font/HD2S字体包/商用免费/爱点风雅黑/爱点风雅黑.ttf) format('truetype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Sector';src:url(data/font/HD2S字体包/商用授权/造字工坊尚黑/造字工房尚黑G0v1常规体.otf) format('opentype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Display';src:url(data/font/HD2S字体包/商用免费/创客贴金刚体/ChuangKeTieJinGangTi-2.otf) format('opentype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Body';src:url(data/font/HD2S字体包/商用免费/一品创享体/一品创享体 1.20.ttf) format('truetype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Sans';src:url(data/font/HD2S字体包/商用免费/思源黑体/SourceHanSansCN-Regular.otf) format('opentype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
body { background: #070707; font-family: "HC Sinclair", "FS Sinclair", "HD2 Body", "HD2 Sans", "Microsoft YaHei", "Noto Sans SC", sans-serif; color: #fbfaf5; padding: 16px; }
|
||||
.card { width: 750px; background: linear-gradient(165deg, #0f0f0f 0%, #0a0a0a 100%); border: 1px solid #262626; border-radius: 16px; padding: 24px 26px; }
|
||||
.header { display: flex; align-items: center; margin-bottom: 20px; }
|
||||
.brief-overview { margin-bottom: 20px; }
|
||||
.brief-overview .order { margin-bottom: 12px; }
|
||||
.brief-overview > .box:last-child { margin-bottom: 0; }
|
||||
.header .logo { width: 56px; height: 56px; margin-right: 16px; }
|
||||
.header .title { font-size: 34px; font-weight: 700; color: #FFE710; letter-spacing: 3px; text-transform: uppercase; }
|
||||
.header .subtitle { font-size: 13px; color: #9a9a90; margin-top: 4px; letter-spacing: 1px; }
|
||||
/* 标题用 HD2 军事硬朗中文字体(创客贴金刚体),正文回落系统黑体 */
|
||||
.box-title, .order-title, .header .title { font-family: "HD2 Display", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
/* 中文用途字体:星球名=爱点风雅黑,星系名=造字工房尚黑 */
|
||||
.planet { font-family: "HD2 Planet", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
.sector-name { font-family: "HD2 Sector", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
/* 小标签用思源黑体;line-height:1 收紧行框,避免中文大行高导致文字视觉偏下 */
|
||||
.efx, .stat .k, .chip, .order-meta { font-family: "HD2 Sans", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; line-height: 1; }
|
||||
/* 星系战况(stat)用思源黑体,数字/统计更清晰平直 */
|
||||
.stat .v, .stat .k { font-family: "HD2 Sans", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
.box { background: #161616; border: 1px solid #2a2a2a; border-radius: 12px; padding: 18px 20px; margin-bottom: 20px; }
|
||||
.box-title { display: flex; align-items: center; font-size: 17px; font-weight: 700; color: #fbfaf5; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 14px; }
|
||||
.box-title .dot { width: 8px; height: 8px; border-radius: 50%; background: #FFE710; margin-right: 9px; box-shadow: 0 0 10px #FFE710; }
|
||||
.ic { display: inline-block; flex: none; }
|
||||
.empty { color: #9a9a90; font-size: 15px; }
|
||||
.order { border-left: 3px solid #FFE710; background: linear-gradient(90deg, #1a1a17 0%, #161616 100%); }
|
||||
.order-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
|
||||
.order-title2 { display: flex; align-items: center; gap: 6px; font-size: 17px; font-weight: 700; color: #fbfaf5; text-transform: uppercase; letter-spacing: 1px; }
|
||||
.order-remain { font-size: 14px; font-weight: 700; color: #FFE710; }
|
||||
.order-desc { font-size: 15px; color: #d9d6c8; line-height: 1.7; }
|
||||
.order-ov { margin-top: 12px; }
|
||||
.order-ov-title { font-size: 13px; color: #9a9a90; letter-spacing: 1px; margin-bottom: 6px; }
|
||||
.order-target { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 13px; }
|
||||
.ot-dot { flex: none; width: 10px; height: 10px; border-radius: 3px; }
|
||||
.ot-main { flex: 1; min-width: 0; }
|
||||
.ot-name { display: block; min-width: 0; color: #fbfaf5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
||||
/* 重要指令目标:格子型进度条(双色交战,解放=蓝领先/防守=敌色侵占蓝条) */
|
||||
.otseg { height: 7px; margin: 5px 0 0; gap: 2px; }
|
||||
.otseg i { box-shadow: inset 0 0 0 1px rgba(0,0,0,0.3); }
|
||||
.ot-pct { flex: none; min-width: 50px; text-align: right; color: #fbfaf5; }
|
||||
.order-meta { display: flex; gap: 26px; margin-top: 12px; font-size: 14px; color: #CBCBCD; }
|
||||
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; background: #101010; border: 1px solid #2a2a2a; border-radius: 10px; overflow: hidden; }
|
||||
.stat { position: relative; min-width: 0; background: transparent; border: 0; border-radius: 0; padding: 13px 8px 11px; text-align: center; }
|
||||
.stat:nth-child(4n + 2), .stat:nth-child(4n + 3), .stat:nth-child(4n + 4) { border-left: 1px solid #2d2d2a; }
|
||||
.stat:nth-child(n + 5) { border-top: 1px solid #2d2d2a; }
|
||||
.stat .v { font-family: "FS Sinclair", "HC Sinclair", sans-serif; font-size: 25px; line-height: 1; font-weight: 700; color: #fbfaf5; letter-spacing: 1px; }
|
||||
.stat .k { font-family: "HD2 Sans", "Microsoft YaHei", "Noto Sans SC", sans-serif; font-size: 11px; color: #8d8d85; margin-top: 7px; letter-spacing: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
||||
.camps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
|
||||
.campsec { margin-top: 16px; }
|
||||
.campsec:first-child { margin-top: 0; }
|
||||
.campsec-title { display: flex; align-items: center; gap: 7px; font-size: 15px; font-weight: 700; letter-spacing: 1px; margin-bottom: 10px; }
|
||||
.campsec-title .campsec-sub { margin-left: auto; font-size: 12px; color: #9a9a90; font-weight: 400; }
|
||||
/* 单卡(参考图样式,缩放到两列网格的紧凑 tile) */
|
||||
.camp { position: relative; display: flex; background: #0c0c0c; background-size: cover; background-position: center top; border: 1px solid #2a2a2a; border-radius: 14px; overflow: hidden; min-height: 300px; box-shadow: 0 8px 22px rgba(0,0,0,0.5); }
|
||||
.camp-veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,5,5,0.30) 0%, rgba(5,5,5,0.56) 46%, rgba(5,5,5,0.94) 100%); pointer-events: none; }
|
||||
.camp-rail { position: relative; z-index: 3; width: 42px; flex: none; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; padding: 12px 0 14px; gap: 9px; background: linear-gradient(180deg, #151515 0%, #0a0a0a 100%); border-right: 1px solid rgba(255,255,255,0.08); box-shadow: inset 3px 0 12px rgba(0,0,0,0.6); }
|
||||
.camp-rail::before { content: ""; position: absolute; left: 1px; top: 0; bottom: 0; width: 3px; background: linear-gradient(180deg, var(--rc), rgba(0,0,0,0)); }
|
||||
.rail-icon { display: flex; align-items: center; justify-content: center; width: 100%; height: 28px; margin-top: 4px; }
|
||||
.rail-icon .ic { width: 24px; height: 24px; margin-right: 0; display: block; }
|
||||
.rail-text { writing-mode: vertical-rl; text-align: center; letter-spacing: 3px; line-height: 1; font-size: 13px; font-weight: 700; color: #fbfaf5; opacity: 0.92; margin-top: 10px; text-shadow: 0 1px 4px rgba(0,0,0,0.8); }
|
||||
.rail-dots { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-top: auto; }
|
||||
.rail-dots i { width: 5px; height: 5px; border-radius: 50%; background: rgba(255,255,255,0.35); }
|
||||
.camp-body { position: relative; z-index: 2; flex: 1; min-width: 0; padding: 12px 12px 12px 11px; }
|
||||
.camp-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
|
||||
.camp-title { min-width: 0; }
|
||||
.camp .planet { font-family: "HD2 Planet", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; font-size: 19px; font-weight: 700; color: #fff; text-transform: uppercase; letter-spacing: 1px; text-shadow: 0 2px 6px rgba(0,0,0,0.9); line-height: 1.1; }
|
||||
.camp-faction { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; margin-top: 5px; text-shadow: 0 1px 4px rgba(0,0,0,0.9); }
|
||||
.camp-prog { flex: none; text-align: right; }
|
||||
.camp-pct { font-family: "FS Sinclair", "HC Sinclair", sans-serif; font-size: 22px; font-weight: 700; line-height: 1; color: #fff; text-shadow: 0 2px 6px rgba(0,0,0,0.9); }
|
||||
.camp-prog-label { font-size: 11px; color: #c9c9c0; margin-top: 4px; letter-spacing: 1px; text-shadow: 0 1px 4px rgba(0,0,0,0.9); }
|
||||
.segbar { display: flex; gap: 3px; height: 9px; margin: 12px 0 0; }
|
||||
.segbar i { flex: 1; background: rgba(255,255,255,0.10); border-radius: 2px; }
|
||||
/* 双色交战进度条:两股颜色争地盘,谁段多谁占优 */
|
||||
.segbar-duo i { box-shadow: inset 0 0 0 1px rgba(0,0,0,0.35); border-radius: 2px; }
|
||||
.camp-remain { font-size: 12px; color: #d9d6c8; margin-top: 7px; text-shadow: 0 1px 4px rgba(0,0,0,0.9); }
|
||||
.camp-remain b { color: #fbfaf5; font-weight: 700; }
|
||||
.info-rows { margin-top: 11px; border-top: 1px solid rgba(255,255,255,0.08); }
|
||||
.irow { display: flex; align-items: center; gap: 7px; padding: 8px 2px; border-bottom: 1px solid rgba(255,255,255,0.06); }
|
||||
.irow-ic { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; color: #b0b0a8; }
|
||||
.irow-ic .ic { width: 15px !important; height: 15px !important; margin-right: 0; }
|
||||
.irow-label { flex: none; min-width: 52px; font-size: 11px; color: #9a9a90; letter-spacing: 1px; }
|
||||
.irow-val { flex: 1; text-align: right; font-size: 13px; font-weight: 700; color: #fbfaf5; }
|
||||
.feat-row { display: flex; align-items: flex-start; gap: 8px; margin-top: 10px; }
|
||||
.feat-label { display: inline-flex; align-items: center; gap: 5px; flex: none; font-size: 13px; font-weight: 700; color: #fbfaf5; }
|
||||
.feat-tags { display: flex; flex-wrap: wrap; gap: 5px; flex: 1; min-width: 0; }
|
||||
/* 星球效果 徽章(复用 efx,尺寸放大适配单卡) */
|
||||
.efx { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; background: rgba(224,196,106,0.12); border: 1px solid; border-radius: 20px; padding: 1px 9px; }
|
||||
.feat-tags .efx { padding: 4px 10px; font-size: 12px; font-weight: 700; }
|
||||
/* 民主空间站(DSS)增益标识:会动的星球,驻扎给该星球带来 buff;字体用思源黑体(HD2 Sans) */
|
||||
.dss { margin: 0 0 6px; padding: 6px 10px; background: linear-gradient(90deg, #6bb7ea28, #6bb7ea0c); border: 1px solid #6bb7ea55; border-radius: 8px; font-family: "HD2 Sans", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
.dss-head { display: flex; align-items: center; gap: 6px; }
|
||||
.dss-ic { display: inline-flex; flex: none; }
|
||||
.dss-tx { font-size: 13px; font-weight: 700; color: #6bb7ea; letter-spacing: 1px; }
|
||||
.dss-actions { display: flex; flex-wrap: wrap; gap: 5px 8px; margin-top: 3px; }
|
||||
.dss-inherent { margin-top: 3px; font-size: 11px; color: #9fd0f5; line-height: 1.4; word-break: break-word; }
|
||||
.dss-b { display: inline-flex; align-items: center; gap: 3px; }
|
||||
.dss-b .ic { width: 13px; height: 13px; }
|
||||
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
|
||||
.chip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid; border-radius: 20px; padding: 6px 16px; font-size: 14px; font-weight: 700; background: #101010; letter-spacing: 1px; }
|
||||
.foot { text-align: center; font-size: 12px; color: #5a5a52; margin-top: 4px; }
|
||||
|
||||
body { background:#000; }
|
||||
#sb .box-title { display:none; }
|
||||
#sb .box { margin:0; padding:24px 26px; }
|
||||
</style></head>
|
||||
<body><div class="card" style="width:760px;margin:16px auto;"><div id="sb">
|
||||
<div class="box">
|
||||
<div class="box-title"><span class="dot"></span>进行中的战役</div>
|
||||
|
||||
<div class="campsec">
|
||||
<div class="campsec-title" style="color:#ff9900"><img class='ic' src='img/assets/icons/faction-terminid.png' style='width:1.2em;height:1.2em;color:#ff9900;vertical-align:middle;'>终结族 · 1<span class="campsec-sub">玩家 3.3万</span></div>
|
||||
<div class="camps">
|
||||
<div class="camp" style="background-image:url(img/assets/planets/gar-haren.png);">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#ff9900">
|
||||
<span class="rail-icon"><img class='ic' src='img/assets/icons/faction-terminid.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">解放战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">轧尔哈伦</div>
|
||||
<div class="camp-faction" style="color:#ff9900"><img class='ic' src='img/assets/icons/faction-terminid.png' style='width:1.2em;height:1.2em;color:#ff9900;vertical-align:middle;'>终结族 · 解放</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">87%</div>
|
||||
<div class="camp-prog-label">解放进度</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='dss'><div class='dss-head'><span class='dss-ic'><img class='ic' src='img/assets/icons/effect-dss.png' style='width:16px;height:16px;color:#6bb7ea;vertical-align:middle;'></span><span class='dss-tx'>民主空间站</span></div><div class='dss-inherent'>行动支持 · 外骨骼装甲储备</div><div class='dss-actions'><span class='dss-b'><img class='ic' src='img/assets/icons/effect-dss-eagle.png' style='width:13px;height:13px;color:#6bb7ea;vertical-align:middle;'>飞鹰风暴</span><span class='dss-b'><img class='ic' src='img/assets/icons/effect-dss-heavy-ordnance.png' style='width:13px;height:13px;color:#6bb7ea;vertical-align:middle;'>轰炸解放推进</span></div></div>
|
||||
<div class='segbar segbar-duo '><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#6bb7ea'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i><i style='background:#ff9900'></i></div>
|
||||
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>锦栖分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>3.3万</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>幽祟沼泽</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:15px;height:15px;color:#ff9900;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val'>无</span></div></div>
|
||||
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div></div></body></html>
|
||||
@@ -0,0 +1,178 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<style>
|
||||
@font-face{font-family:'HC Sinclair';src:url(file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/data/font/HCSinclair-Normal.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HC Sinclair';src:url(file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/data/font/HCSinclair-Medium.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'FS Sinclair';src:url(file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/data/font/FSSinclair-Bold.ttf) format('ttf');font-weight:700;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Planet';src:url(file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/data/font/HD2S%E5%AD%97%E4%BD%93%E5%8C%85/%E5%95%86%E7%94%A8%E5%85%8D%E8%B4%B9/%E7%88%B1%E7%82%B9%E9%A3%8E%E9%9B%85%E9%BB%91/%E7%88%B1%E7%82%B9%E9%A3%8E%E9%9B%85%E9%BB%91.ttf) format('truetype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Sector';src:url(file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/data/font/HD2S%E5%AD%97%E4%BD%93%E5%8C%85/%E5%95%86%E7%94%A8%E6%8E%88%E6%9D%83/%E9%80%A0%E5%AD%97%E5%B7%A5%E5%9D%8A%E5%B0%9A%E9%BB%91/%E9%80%A0%E5%AD%97%E5%B7%A5%E6%88%BF%E5%B0%9A%E9%BB%91G0v1%E5%B8%B8%E8%A7%84%E4%BD%93.otf) format('opentype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Display';src:url(file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/data/font/HD2S%E5%AD%97%E4%BD%93%E5%8C%85/%E5%95%86%E7%94%A8%E5%85%8D%E8%B4%B9/%E5%88%9B%E5%AE%A2%E8%B4%B4%E9%87%91%E5%88%9A%E4%BD%93/ChuangKeTieJinGangTi-2.otf) format('opentype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Body';src:url(file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/data/font/HD2S%E5%AD%97%E4%BD%93%E5%8C%85/%E5%95%86%E7%94%A8%E5%85%8D%E8%B4%B9/%E4%B8%80%E5%93%81%E5%88%9B%E4%BA%AB%E4%BD%93/%E4%B8%80%E5%93%81%E5%88%9B%E4%BA%AB%E4%BD%93%201.20.ttf) format('truetype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
@font-face{font-family:'HD2 Sans';src:url(file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/data/font/HD2S%E5%AD%97%E4%BD%93%E5%8C%85/%E5%95%86%E7%94%A8%E5%85%8D%E8%B4%B9/%E6%80%9D%E6%BA%90%E9%BB%91%E4%BD%93/SourceHanSansCN-Regular.otf) format('opentype');font-weight:100 900;font-style:normal;font-display:swap;}
|
||||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
body { background: #070707; font-family: "HC Sinclair", "FS Sinclair", "HD2 Body", "HD2 Sans", "Microsoft YaHei", "Noto Sans SC", sans-serif; color: #fbfaf5; padding: 16px; }
|
||||
.card { width: 750px; background: linear-gradient(165deg, #0f0f0f 0%, #0a0a0a 100%); border: 1px solid #262626; border-radius: 16px; padding: 24px 26px; }
|
||||
.header { display: flex; align-items: center; margin-bottom: 20px; }
|
||||
.brief-overview { margin-bottom: 20px; }
|
||||
.brief-overview .order { margin-bottom: 12px; }
|
||||
.brief-overview > .box:last-child { margin-bottom: 0; }
|
||||
.header .logo { width: 56px; height: 56px; margin-right: 16px; }
|
||||
.header .title { font-size: 34px; font-weight: 700; color: #FFE710; letter-spacing: 3px; text-transform: uppercase; }
|
||||
.header .subtitle { font-size: 13px; color: #9a9a90; margin-top: 4px; letter-spacing: 1px; }
|
||||
/* 标题用 HD2 军事硬朗中文字体(创客贴金刚体),正文回落系统黑体 */
|
||||
.box-title, .order-title, .header .title { font-family: "HD2 Display", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
/* 中文用途字体:星球名=爱点风雅黑,星系名=造字工房尚黑 */
|
||||
.planet { font-family: "HD2 Planet", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
.sector-name { font-family: "HD2 Sector", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
/* 小标签用思源黑体;line-height:1 收紧行框,避免中文大行高导致文字视觉偏下 */
|
||||
.camp .kind, .camp .owner, .camp-sub, .camp-env, .efx, .camp-event, .stat .k, .chip, .env-i, .order-meta { font-family: "HD2 Sans", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; line-height: 1; }
|
||||
/* 星系战况(stat)用思源黑体,数字/统计更清晰平直 */
|
||||
.stat .v, .stat .k { font-family: "HD2 Sans", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
.box { background: #161616; border: 1px solid #2a2a2a; border-radius: 12px; padding: 18px 20px; margin-bottom: 20px; }
|
||||
.box-title { display: flex; align-items: center; font-size: 17px; font-weight: 700; color: #fbfaf5; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 14px; }
|
||||
.box-title .dot { width: 8px; height: 8px; border-radius: 50%; background: #FFE710; margin-right: 9px; box-shadow: 0 0 10px #FFE710; }
|
||||
.ic { display: inline-block; flex: none; margin-right: 5px; }
|
||||
.empty { color: #9a9a90; font-size: 15px; }
|
||||
.order { border-left: 3px solid #FFE710; background: linear-gradient(90deg, #1a1a17 0%, #161616 100%); }
|
||||
.order-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
|
||||
.order-title2 { display: flex; align-items: center; font-size: 17px; font-weight: 700; color: #fbfaf5; text-transform: uppercase; letter-spacing: 1px; }
|
||||
.order-remain { font-size: 14px; font-weight: 700; color: #FFE710; }
|
||||
.order-desc { font-size: 15px; color: #d9d6c8; line-height: 1.7; }
|
||||
.order-ov { margin-top: 12px; }
|
||||
.order-ov-title { font-size: 13px; color: #9a9a90; letter-spacing: 1px; margin-bottom: 6px; }
|
||||
.order-target { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 13px; }
|
||||
.ot-dot { flex: none; width: 10px; height: 10px; border-radius: 3px; }
|
||||
.ot-main { flex: 1; min-width: 0; }
|
||||
.ot-name { display: block; min-width: 0; color: #fbfaf5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
||||
.ot-bar { display: block; height: 5px; margin-top: 5px; background: rgba(42,42,42,0.85); border-radius: 4px; overflow: hidden; }
|
||||
.ot-bar i { display: block; height: 100%; border-radius: 4px; }
|
||||
.ot-pct { flex: none; min-width: 50px; text-align: right; color: #fbfaf5; }
|
||||
.order-meta { display: flex; gap: 26px; margin-top: 12px; font-size: 14px; color: #CBCBCD; }
|
||||
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; background: #101010; border: 1px solid #2a2a2a; border-radius: 10px; overflow: hidden; }
|
||||
.stat { position: relative; min-width: 0; background: transparent; border: 0; border-radius: 0; padding: 13px 8px 11px; text-align: center; }
|
||||
.stat:nth-child(4n + 2), .stat:nth-child(4n + 3), .stat:nth-child(4n + 4) { border-left: 1px solid #2d2d2a; }
|
||||
.stat:nth-child(n + 5) { border-top: 1px solid #2d2d2a; }
|
||||
.stat .v { font-family: "FS Sinclair", "HC Sinclair", sans-serif; font-size: 25px; line-height: 1; font-weight: 700; color: #fbfaf5; letter-spacing: 1px; }
|
||||
.stat .k { font-family: "HD2 Sans", "Microsoft YaHei", "Noto Sans SC", sans-serif; font-size: 11px; color: #8d8d85; margin-top: 7px; letter-spacing: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
||||
.camps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
|
||||
.campsec { margin-top: 16px; }
|
||||
.campsec:first-child { margin-top: 0; }
|
||||
.campsec-title { display: flex; align-items: center; gap: 7px; font-size: 15px; font-weight: 700; letter-spacing: 1px; margin-bottom: 10px; }
|
||||
.campsec-title .campsec-sub { margin-left: auto; font-size: 12px; color: #9a9a90; font-weight: 400; }
|
||||
/* 单卡(参考图样式,缩放到两列网格的紧凑 tile) */
|
||||
.camp { position: relative; display: flex; background: #0c0c0c; background-size: cover; background-position: center top; border: 1px solid #2a2a2a; border-radius: 14px; overflow: hidden; min-height: 300px; box-shadow: 0 8px 22px rgba(0,0,0,0.5); }
|
||||
.camp-veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,5,5,0.30) 0%, rgba(5,5,5,0.56) 46%, rgba(5,5,5,0.94) 100%); pointer-events: none; }
|
||||
.camp-rail { position: relative; z-index: 3; width: 42px; flex: none; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; padding: 12px 0 14px; gap: 9px; background: linear-gradient(180deg, #151515 0%, #0a0a0a 100%); border-right: 1px solid rgba(255,255,255,0.08); box-shadow: inset 3px 0 12px rgba(0,0,0,0.6); }
|
||||
.camp-rail::before { content: ""; position: absolute; left: 1px; top: 0; bottom: 0; width: 3px; background: linear-gradient(180deg, var(--rc), rgba(0,0,0,0)); }
|
||||
.rail-icon { display: flex; align-items: center; justify-content: center; width: 100%; height: 28px; margin-top: 4px; }
|
||||
.rail-icon .ic { width: 24px; height: 24px; }
|
||||
.rail-text { writing-mode: vertical-rl; letter-spacing: 3px; line-height: 1; font-size: 13px; font-weight: 700; color: #fbfaf5; opacity: 0.92; margin-top: 10px; text-shadow: 0 1px 4px rgba(0,0,0,0.8); }
|
||||
.rail-dots { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-top: auto; }
|
||||
.rail-dots i { width: 5px; height: 5px; border-radius: 50%; background: rgba(255,255,255,0.35); }
|
||||
.camp-body { position: relative; z-index: 2; flex: 1; min-width: 0; padding: 12px 12px 12px 11px; }
|
||||
.camp-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
|
||||
.camp-title { min-width: 0; }
|
||||
.camp .planet { font-family: "HD2 Planet", "HC Sinclair", "Microsoft YaHei", "Noto Sans SC", sans-serif; font-size: 19px; font-weight: 700; color: #fff; text-transform: uppercase; letter-spacing: 1px; text-shadow: 0 2px 6px rgba(0,0,0,0.9); line-height: 1.1; }
|
||||
.camp-faction { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; margin-top: 5px; text-shadow: 0 1px 4px rgba(0,0,0,0.9); }
|
||||
.camp-prog { flex: none; text-align: right; }
|
||||
.camp-pct { font-family: "FS Sinclair", "HC Sinclair", sans-serif; font-size: 22px; font-weight: 700; line-height: 1; color: #fff; text-shadow: 0 2px 6px rgba(0,0,0,0.9); }
|
||||
.camp-prog-label { font-size: 11px; color: #c9c9c0; margin-top: 4px; letter-spacing: 1px; text-shadow: 0 1px 4px rgba(0,0,0,0.9); }
|
||||
.segbar { display: flex; gap: 3px; height: 9px; margin: 12px 0 0; }
|
||||
.segbar i { flex: 1; background: rgba(255,255,255,0.10); border-radius: 2px; }
|
||||
.segbar i.on { background: var(--segc, #FFE710); box-shadow: 0 0 8px var(--segc); }
|
||||
.camp-remain { font-size: 12px; color: #d9d6c8; margin-top: 7px; text-shadow: 0 1px 4px rgba(0,0,0,0.9); }
|
||||
.camp-remain b { color: #fbfaf5; font-weight: 700; }
|
||||
.info-rows { margin-top: 11px; border-top: 1px solid rgba(255,255,255,0.08); }
|
||||
.irow { display: flex; align-items: center; gap: 7px; padding: 8px 2px; border-bottom: 1px solid rgba(255,255,255,0.06); }
|
||||
.irow-ic { flex: none; display: inline-flex; align-items: center; color: #b0b0a8; }
|
||||
.irow-label { flex: none; min-width: 52px; font-size: 11px; color: #9a9a90; letter-spacing: 1px; }
|
||||
.irow-val { flex: 1; text-align: right; font-size: 13px; font-weight: 700; color: #fbfaf5; }
|
||||
.maj { margin-top: 12px; border: 1px solid rgba(255,255,255,0.14); border-radius: 10px; padding: 10px 11px; background: rgba(10,10,10,0.55); }
|
||||
.maj-head { display: flex; align-items: center; justify-content: space-between; }
|
||||
.maj-title { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 700; color: #fbfaf5; }
|
||||
.maj-time { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: #9a9a90; }
|
||||
.maj-body { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; }
|
||||
.maj-desc { font-size: 12px; color: #c9c8bd; }
|
||||
.maj-pct { flex: none; font-size: 15px; font-weight: 700; }
|
||||
.segbar-s { height: 8px; margin: 9px 0 0; }
|
||||
.feat-row { display: flex; align-items: flex-start; gap: 8px; margin-top: 10px; }
|
||||
.feat-label { display: inline-flex; align-items: center; gap: 5px; flex: none; font-size: 13px; font-weight: 700; color: #fbfaf5; }
|
||||
.feat-tags { display: flex; flex-wrap: wrap; gap: 5px; }
|
||||
.feat-none { color: #7a7a70; font-size: 12px; }
|
||||
/* 战场特征/主动事件 徽章(复用 efx,尺寸放大适配单卡) */
|
||||
.efx { display: inline-flex; align-items: center; background: rgba(224,196,106,0.12); border: 1px solid; border-radius: 20px; padding: 1px 9px; }
|
||||
.feat-tags .efx { gap: 5px; padding: 4px 10px; font-size: 12px; font-weight: 700; }
|
||||
/* 民主空间站(DSS)增益标识:会动的星球,驻扎给该星球带来 buff;字体用思源黑体(HD2 Sans) */
|
||||
.dss { display: flex; align-items: center; gap: 6px; margin: 0 0 6px; padding: 6px 10px; background: linear-gradient(90deg, #6bb7ea28, #6bb7ea0c); border: 1px solid #6bb7ea55; border-radius: 8px; font-family: "HD2 Sans", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
|
||||
.dss-ic { display: inline-flex; flex: none; }
|
||||
.dss-tx { font-size: 13px; font-weight: 700; color: #6bb7ea; letter-spacing: 1px; }
|
||||
.dss-sub { font-size: 11px; color: #9fd0f5; margin-left: auto; text-align: right; }
|
||||
.env { display: inline-flex; align-items: center; gap: 4px; }
|
||||
.env .ic { margin-right: 3px; }
|
||||
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
|
||||
.chip { display: inline-flex; align-items: center; border: 1px solid; border-radius: 20px; padding: 6px 16px; font-size: 14px; font-weight: 700; background: #101010; letter-spacing: 1px; }
|
||||
.foot { text-align: center; font-size: 12px; color: #5a5a52; margin-top: 4px; }
|
||||
|
||||
body { background:#000; }
|
||||
/* 隐藏预览页外围 box 的标题,聚焦单卡本身 */
|
||||
#singlebox .box-title { display:none; }
|
||||
#singlebox .box { margin:0; padding:24px 26px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="card" style="width:760px;margin:16px auto;">
|
||||
<div id="singlebox">
|
||||
|
||||
<div class="box">
|
||||
<div class="box-title"><span class="dot"></span>进行中的战役</div>
|
||||
|
||||
<div class="campsec">
|
||||
<div class="campsec-title" style="color:#ff9900"><img class='ic' src='file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/img/assets/icons/faction-terminid.png' style='width:1.2em;height:1.2em;color:#ff9900;vertical-align:middle;'>终结族 · 1<span class="campsec-sub">玩家 5,399</span></div>
|
||||
<div class="camps">
|
||||
<div class="camp" style="background-image:url(file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/img/assets/planets/achernar-secundus.png);">
|
||||
<div class="camp-veil"></div>
|
||||
<div class="camp-rail" style="--rc:#6bb7ea">
|
||||
<span class="rail-icon"><img class='ic' src='file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/img/assets/icons/faction-super-earth.png' style='width:24px;height:24px;color:#fbfaf5;vertical-align:middle;'></span>
|
||||
<span class="rail-text">保卫战</span>
|
||||
<span class="rail-dots"><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<div class="camp-body">
|
||||
|
||||
<div class="camp-head">
|
||||
<div class="camp-title">
|
||||
<div class="planet">水委一次星</div>
|
||||
<div class="camp-faction" style="color:#6bb7ea"><img class='ic' src='file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/img/assets/icons/faction-super-earth.png' style='width:1.2em;height:1.2em;color:#6bb7ea;vertical-align:middle;'>超级地球 · 防守</div>
|
||||
</div>
|
||||
<div class="camp-prog">
|
||||
<div class="camp-pct">100%</div>
|
||||
<div class="camp-prog-label">防御进度</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='segbar ' style='--segc:#6bb7ea'><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i></div>
|
||||
<div class='camp-remain'>剩余时间:<b>3小时42分</b></div>
|
||||
<div class="info-rows"><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:1em;height:1em;color:#6bb7ea;vertical-align:middle;'><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9Z" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span><span class='irow-label'>所属星系</span><span class='irow-val'>博格斯分区</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:1em;height:1em;color:#6bb7ea;vertical-align:middle;'><path d="M12 2c2.5 0 4.7 2 4.7 4.6 0 1.6-.7 3-1.8 3.9 4.8 1.5 7.3 5 7.3 8.9v.6h-2.4v-.6c0-2.7-1.7-5.2-5-6.6.3.6.5 1.3.5 2 0 .5-.3.7-.7.4-.5-.3-1.2-.8-1.9-.8s-1.4.5-1.9.8c-.4.3-.7.1-.7-.4 0-.7.2-1.4.5-2-3.3 1.4-5 3.9-5 6.6v.6H3v-.6c0-3.9 2.5-7.4 7.3-8.9-1.1-.9-1.8-2.3-1.8-3.9C8.5 4 9.5 2 12 2Z" fill="currentColor"/></svg></span><span class='irow-label'>部署潜兵</span><span class='irow-val'>5,399</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:1em;height:1em;color:#6bb7ea;vertical-align:middle;'><path d="M3 19 9 7l4 7 3-4 5 9H3Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="9.5" cy="5.5" r="1.4" fill="currentColor"/></svg></span><span class='irow-label'>地形特征</span><span class='irow-val'>平原</span></div><div class='irow'><span class='irow-ic'><svg class='ic' viewBox='0 0 24 24' style='width:1em;height:1em;color:#6bb7ea;vertical-align:middle;'><path d="M7 18a4 4 0 0 1 0-8 5 5 0 0 1 9.6-1.5A4.5 4.5 0 0 1 17.5 18H7Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span><span class='irow-label'>环境事件</span><span class='irow-val'>无</span></div></div>
|
||||
|
||||
<div class="maj">
|
||||
<div class="maj-head">
|
||||
<span class="maj-title"><svg class='ic' viewBox='0 0 24 24' style='width:1em;height:1em;color:#ff9900;vertical-align:middle;'><circle cx="12" cy="12" r="6.5" fill="none" stroke="currentColor" stroke-width="1.6"/><path d="M12 1.5v4M12 18.5v4M1.5 12h4M18.5 12h4" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/></svg>主要战役:保卫战</span>
|
||||
<span class="maj-time"><svg class='ic' viewBox='0 0 24 24' style='width:1em;height:1em;color:#9a9a90;vertical-align:middle;'><circle cx="12" cy="12" r="8.5" fill="none" stroke="currentColor" stroke-width="1.6"/><path d="M12 7.5V12l3 2" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg>3小时42分</span>
|
||||
</div>
|
||||
<div class="maj-body">
|
||||
<span class="maj-desc">终结族正在进攻,超级地球军民正在保卫该星球</span>
|
||||
<span class="maj-pct" style="color:#ff9900">73%</span>
|
||||
</div>
|
||||
<div class='segbar segbar-s' style='--segc:#ff9900'><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i class='on'></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></div>
|
||||
</div>
|
||||
<div class='feat-row'><span class='feat-label'><svg class='ic' viewBox='0 0 24 24' style='width:1em;height:1em;color:#6bb7ea;vertical-align:middle;'><rect x="2.5" y="2.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="13.5" y="2.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="2.5" y="13.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="13.5" y="13.5" width="8" height="8" rx="1.2" fill="none" stroke="currentColor" stroke-width="1.4"/></svg>星球效果</span><span class='feat-tags'><span class='efx' style='background:#6bb7ea1f;border-color:#6bb7ea66;color:#6bb7ea'><img class='ic' src='file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/img/assets/icons/effect-factory-hub.png' style='width:1.2em;height:1.2em;color:#6bb7ea;vertical-align:middle;'> 工厂枢纽</span><span class='efx' style='background:#e0c46a1f;border-color:#e0c46a66;color:#e0c46a'><img class='ic' src='file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/img/assets/icons/effect-tcs-plus.png' style='width:1.2em;height:1.2em;color:#e0c46a;vertical-align:middle;'> 终结族遏制体系+</span><span class='efx' style='background:#ff99001f;border-color:#ff990066;color:#ff9900'><img class='ic' src='file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/img/assets/icons/effect-predator-strain.png' style='width:1.2em;height:1.2em;color:#ff9900;vertical-align:middle;'> 掠食变种</span><span class='efx' style='background:#6bb7ea1f;border-color:#6bb7ea66;color:#6bb7ea'><img class='ic' src='file:///D:/QQ%20Bot/HeXi/hexi/plugins/nonebot_plugin_helldivers_tools/img/assets/icons/effect-heavy-seaf.png' style='width:1.2em;height:1.2em;color:#6bb7ea;vertical-align:middle;'> 超级地球武装部队驻守</span></span></div>
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,17 @@
|
||||
from nonebot import get_plugin_config
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class Config(BaseModel):
|
||||
# 自托管 helldivers-2/api 的根地址;不填则使用公共社区 API
|
||||
hd2_api_base_url: str = "https://api.helldivers2.dev"
|
||||
# 请求的本地化语言。自托管实例默认配置支持 zh-Hans(简体)/ zh-Hant(繁体)
|
||||
hd2_api_language: str = "zh-Hans"
|
||||
# 数据缓存秒数。战况快照约几分钟更新一次,靠这个避免频繁打接口触发限流(5次/10秒)
|
||||
hd2_cache_ttl: int = 60
|
||||
# 请求头标识。公共/自托管都要求 X-Super-Client 和 X-Super-Contact 两个头同时存在(缺失返回 400)
|
||||
hd2_super_client: str = "hexi-bot.local"
|
||||
hd2_super_contact: str = "https://github.com/sansenhoshi/nonebot_plugin_helldivers_tools"
|
||||
|
||||
|
||||
config = get_plugin_config(Config)
|
||||
@@ -0,0 +1,800 @@
|
||||
[
|
||||
{
|
||||
"name": "AC-8 机炮",
|
||||
"path": "img/helldivers/AC-8 机炮.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"机炮"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "APW-1 反器材步枪",
|
||||
"path": "img/helldivers/APW-1 反器材步枪.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"反器材"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "ARC-3 电弧发射器",
|
||||
"path": "img/helldivers/ARC-3 电弧发射器.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"电弧发射器"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "AX-LAS-5 漫游车",
|
||||
"path": "img/helldivers/AX-LAS-5 漫游车.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"激光狗"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "AX·AR-23 护卫犬",
|
||||
"path": "img/helldivers/AX·AR-23 护卫犬.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"实弹狗",
|
||||
"机枪狗"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "AX·ARC-3 K-9",
|
||||
"path": "img/helldivers/AX·ARC-3 K-9.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"电狗"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "AX·FLAM-75 热狗",
|
||||
"path": "img/helldivers/AX·FLAM-75 热狗.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"火狗"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "AX·TX-13 腐息",
|
||||
"path": "img/helldivers/AX·TX-13 腐息.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"毒狗"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "A·AC-8 自动哨戒炮",
|
||||
"path": "img/helldivers/A·AC-8 自动哨戒炮.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"机炮炮台"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "A·ARC-3 特斯拉塔",
|
||||
"path": "img/helldivers/A·ARC-3 特斯拉塔.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"电塔"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "A·FLAM-40 火焰喷射哨戒炮",
|
||||
"path": "img/helldivers/A·FLAM-40 火焰喷射哨戒炮.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"喷火炮台"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "A·G-16 加特林哨戒炮",
|
||||
"path": "img/helldivers/A·G-16 加特林哨戒炮.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"加特林炮台"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "A·GM-17 瓦斯迫击哨戒炮",
|
||||
"path": "img/helldivers/A·GM-17 瓦斯迫击哨戒炮.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"毒迫"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "A·LAS-98 激光哨戒炮",
|
||||
"path": "img/helldivers/A·LAS-98 激光哨戒炮.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"激光炮台"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "A·M-12 迫击哨戒炮",
|
||||
"path": "img/helldivers/A·M-12 迫击哨戒炮.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"炮击炮"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "A·M-23 电磁冲击波迫击哨戒炮",
|
||||
"path": "img/helldivers/A·M-23 电磁冲击波迫击哨戒炮.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"电磁迫击炮"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "A·MG-43 哨戒机枪",
|
||||
"path": "img/helldivers/A·MG-43 哨戒机枪.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"小机枪炮塔"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "A·MLS-X 火箭哨戒炮",
|
||||
"path": "img/helldivers/A·MLS-X 火箭哨戒炮.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
""
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "B-1 补给背包",
|
||||
"path": "img/helldivers/B-1 补给背包.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"补包"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "B-100 便携式地狱火炸弹",
|
||||
"path": "img/helldivers/B-100 便携式地狱火炸弹.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"地狱火背包"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "B·FLAM-80 焚燃者",
|
||||
"path": "img/helldivers/B·FLAM-80 焚燃者.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"背包喷火"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "B·MD C4背包",
|
||||
"path": "img/helldivers/B·MD C4背包.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"C4背包"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "CQC-1 唯一真旗",
|
||||
"path": "img/helldivers/CQC-1 唯一真旗.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"唯一真旗"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "CQC-20 破门锤",
|
||||
"path": "img/helldivers/CQC-20 破门锤.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"锤子"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "CQC-9 除叶工具",
|
||||
"path": "img/helldivers/CQC-9 除叶工具.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"电锯"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "EAT-17 消耗性反坦克武器",
|
||||
"path": "img/helldivers/EAT-17 消耗性反坦克武器.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"次抛"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "EAT-411 荡平者",
|
||||
"path": "img/helldivers/EAT-411 荡平者.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"大通碟"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "EAT-700 消耗性凝固汽油弹",
|
||||
"path": "img/helldivers/EAT-700 消耗性凝固汽油弹.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"火次抛"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "EXO-45 爱国者外骨骼机甲",
|
||||
"path": "img/helldivers/EXO-45 爱国者外骨骼机甲.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"机枪机甲"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "EXO-49 解放者外骨骼机甲",
|
||||
"path": "img/helldivers/EXO-49 解放者外骨骼机甲.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"机炮机甲"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "EXO-51 伐木者",
|
||||
"path": "img/helldivers/EXO-51 伐木者.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"喷火机甲"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "EXO-55 突破",
|
||||
"path": "img/helldivers/EXO-55 突破.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"大盾机甲",
|
||||
"突破大人"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "E·AT-12 反坦克炮台",
|
||||
"path": "img/helldivers/E·AT-12 反坦克炮台.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"轮椅炮"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "E·GL-21 掷弹兵防卫墙",
|
||||
"path": "img/helldivers/E·GL-21 掷弹兵防卫墙.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"榴弹墙"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "E·MG-101 重机枪部署支架",
|
||||
"path": "img/helldivers/E·MG-101 重机枪部署支架.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"重机枪支架"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "FAF-14 飞矛",
|
||||
"path": "img/helldivers/FAF-14 飞矛.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"飞矛"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "FLAM-40 火焰喷射器",
|
||||
"path": "img/helldivers/FLAM-40 火焰喷射器.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"火焰喷射器"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "FX-12 防护罩生成中继器",
|
||||
"path": "img/helldivers/FX-12 防护罩生成中继器.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"大蛋盾"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "GL-21 榴弹发射器",
|
||||
"path": "img/helldivers/GL-21 榴弹发射器.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"榴弹发射器"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "GL-28 弹链式榴弹发射器",
|
||||
"path": "img/helldivers/GL-28 弹链式榴弹发射器.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"弹链榴弹"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "GL-52 缓和使者",
|
||||
"path": "img/helldivers/GL-52 缓和使者.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"电榴弹"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "GR-8 无后坐力炮",
|
||||
"path": "img/helldivers/GR-8 无后坐力炮.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"无后坐"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "LAS-98 激光大炮",
|
||||
"path": "img/helldivers/LAS-98 激光大炮.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"激光大炮"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "LAS-99 类星体加农炮",
|
||||
"path": "img/helldivers/LAS-99 类星体加农炮.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"类星体"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "LIFT-182 传送背包",
|
||||
"path": "img/helldivers/LIFT-182 传送背包.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"传包"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "LIFT-850 喷射背包",
|
||||
"path": "img/helldivers/LIFT-850 喷射背包.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"跳包"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "LIFT-860 悬浮背包",
|
||||
"path": "img/helldivers/LIFT-860 悬浮背包.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"悬浮背包"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "M-1000 重装机枪",
|
||||
"path": "img/helldivers/M-1000 重装机枪.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"弹链机枪"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "M-102 快速侦察载具",
|
||||
"path": "img/helldivers/M-102 快速侦察载具.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"FRV",
|
||||
"小车"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "M-105 盟友",
|
||||
"path": "img/helldivers/M-105 盟友.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"盟友"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "MD-17 反坦克地雷",
|
||||
"path": "img/helldivers/MD-17 反坦克地雷.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"反坦克地雷"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "MD-6 反步兵雷区",
|
||||
"path": "img/helldivers/MD-6 反步兵雷区.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"反步兵雷区"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "MD-8 毒气地雷",
|
||||
"path": "img/helldivers/MD-8 毒气地雷.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"毒气地雷",
|
||||
"阳光青提"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "MD-I4 燃烧地雷",
|
||||
"path": "img/helldivers/MD-I4 燃烧地雷.png",
|
||||
"type": "green",
|
||||
"alias": [
|
||||
"火地雷"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "MG-206 重机枪",
|
||||
"path": "img/helldivers/MG-206 重机枪.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"重机枪"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "MG-43 机枪",
|
||||
"path": "img/helldivers/MG-43 机枪.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"中机枪"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "MGX-42 子弹风暴",
|
||||
"path": "img/helldivers/MGX-42 子弹风暴.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"子弹风暴"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "MLS-4X 突击兵",
|
||||
"path": "img/helldivers/MLS-4X 突击兵.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"突击兵"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "MS-11 单兵导弹发射井",
|
||||
"path": "img/helldivers/MS-11 单兵导弹发射井.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"发射井"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "PLAS-45 纪元",
|
||||
"path": "img/helldivers/PLAS-45 纪元.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"纪元"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "RL-77 空爆火箭弹发射器",
|
||||
"path": "img/helldivers/RL-77 空爆火箭弹发射器.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"空爆"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "RS-422 磁轨炮",
|
||||
"path": "img/helldivers/RS-422 磁轨炮.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"磁轨",
|
||||
"磁小轨"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "S-11 矛枪",
|
||||
"path": "img/helldivers/S-11 矛枪.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"毒矛"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "SH-20 防弹护盾背包",
|
||||
"path": "img/helldivers/SH-20 防弹护盾背包.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"防弹盾"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "SH-32 防护罩生成包",
|
||||
"path": "img/helldivers/SH-32 防护罩生成包.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"蛋盾"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "SH-51 定向护盾",
|
||||
"path": "img/helldivers/SH-51 定向护盾.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"定向蛋盾"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "StA-X3 W.A.S.P.发射器",
|
||||
"path": "img/helldivers/StA-X3 W.A.S.P.发射器.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"小蜜蜂"
|
||||
],
|
||||
"backpack": 1
|
||||
},
|
||||
{
|
||||
"name": "TD-220 堡垒MK XVI",
|
||||
"path": "img/helldivers/TD-220 堡垒MK XVI.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"坦克"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "TX-41 灭菌器",
|
||||
"path": "img/helldivers/TX-41 灭菌器.png",
|
||||
"type": "blue",
|
||||
"alias": [
|
||||
"毒喷"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "轨道120MM高爆弹火力网",
|
||||
"path": "img/helldivers/轨道120MM高爆弹火力网.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"120"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "轨道380MM高爆弹火力网",
|
||||
"path": "img/helldivers/轨道380MM高爆弹火力网.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"380"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "轨道凝固汽油弹火力网",
|
||||
"path": "img/helldivers/轨道凝固汽油弹火力网.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"轨道火"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "轨道加特林火力网",
|
||||
"path": "img/helldivers/轨道加特林火力网.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"轨道加特林"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "轨道毒气攻击",
|
||||
"path": "img/helldivers/轨道毒气攻击.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"轨道毒"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "轨道游走火力网",
|
||||
"path": "img/helldivers/轨道游走火力网.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"轨道游走"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "轨道激光炮",
|
||||
"path": "img/helldivers/轨道激光炮.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"轨道激光"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "轨道炮攻击",
|
||||
"path": "img/helldivers/轨道炮攻击.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"轨道自瞄"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "轨道烟雾攻击",
|
||||
"path": "img/helldivers/轨道烟雾攻击.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"轨道烟"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "轨道电磁冲击波攻击",
|
||||
"path": "img/helldivers/轨道电磁冲击波攻击.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"轨道电磁"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "轨道空爆攻击",
|
||||
"path": "img/helldivers/轨道空爆攻击.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"轨道空爆"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "轨道精准攻击",
|
||||
"path": "img/helldivers/轨道精准攻击.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
""
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "飞鹰110MM火箭巢",
|
||||
"path": "img/helldivers/飞鹰110MM火箭巢.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"飞鹰110"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "飞鹰500KG炸弹",
|
||||
"path": "img/helldivers/飞鹰500KG炸弹.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"500",
|
||||
"飞鹰500"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "飞鹰凝固汽油弹空袭",
|
||||
"path": "img/helldivers/飞鹰凝固汽油弹空袭.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"飞鹰火"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "飞鹰机枪扫射",
|
||||
"path": "img/helldivers/飞鹰机枪扫射.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"飞鹰机枪"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "飞鹰烟雾攻击",
|
||||
"path": "img/helldivers/飞鹰烟雾攻击.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"飞鹰烟"
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "飞鹰空袭",
|
||||
"path": "img/helldivers/飞鹰空袭.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
""
|
||||
],
|
||||
"backpack": 0
|
||||
},
|
||||
{
|
||||
"name": "飞鹰集束炸弹",
|
||||
"path": "img/helldivers/飞鹰集束炸弹.png",
|
||||
"type": "red",
|
||||
"alias": [
|
||||
"飞鹰集束"
|
||||
],
|
||||
"backpack": 0
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,7 @@
|
||||
字体仅作为社区分享参考作用 侵权请联系
|
||||
如需字体授权请前往字体对应厂商进行联系
|
||||
|
||||
字体使用建议:
|
||||
简单字重原理介绍
|
||||
字重决定了画面中文字的视觉比重 字重越大越被容易注意
|
||||
即 文字越大字重越重 文字越细字重越小
|
||||
@@ -0,0 +1,567 @@
|
||||
{
|
||||
"biome": {
|
||||
"ACCESS DENIED": "拒绝访问",
|
||||
"Acidic Badlands": "酸性恶地",
|
||||
"Basic Swamp": "沼泽",
|
||||
"Black Hole": "黑洞",
|
||||
"Bleak Oasis": "衰败绿洲",
|
||||
"Boneyard": "骸骨之地",
|
||||
"Cyberstan Megafactory": "生化斯坦大型工厂",
|
||||
"Deadlands": "死寂之地",
|
||||
"Deciduous Autumn Forest": "秋季落叶林",
|
||||
"Deciduous Crimson Forest": "绯红落叶林",
|
||||
"Deciduous Forest": "落叶林",
|
||||
"Desert Cliffs": "沙漠悬壁",
|
||||
"Desert Dunes": "沙漠沙丘",
|
||||
"Desert Oasis": "沙漠绿洲",
|
||||
"Ethereal Jungle": "缥缈丛林",
|
||||
"Haunted Swamp": "幽祟沼泽",
|
||||
"Hive World": "虫窝世界",
|
||||
"Icy Glaciers": "冰封冰川",
|
||||
"Ionic Crimson": "离子绯红之地",
|
||||
"Ionic Jungle": "离子丛林",
|
||||
"Magma": "岩浆地带",
|
||||
"Moon": "月球",
|
||||
"Plains": "平原",
|
||||
"Rocky Canyons": "岩质峡谷",
|
||||
"Scorched Moor": "焦土荒原",
|
||||
"Super Earth": "超级地球",
|
||||
"Supercolony": "超级拓殖地",
|
||||
"Tien Kwan Special": "天关特域",
|
||||
"Tundra": "苔原",
|
||||
"Volcanic Jungle": "火山丛林"
|
||||
},
|
||||
"sector": {
|
||||
"AKIRA": "阿基拉分区",
|
||||
"ALSTRAD": "阿尔斯特拉德分区",
|
||||
"ALTUS": "阿尔特斯分区",
|
||||
"ANDROMEDA": "仙女座分区",
|
||||
"ARTURION": "阿图里昂分区",
|
||||
"BARNARD": "巴纳德分区",
|
||||
"BORGUS": "博格斯分区",
|
||||
"CANCRI": "康古利伊分区",
|
||||
"CANTOLUS": "坎托鲁斯分区",
|
||||
"CELESTE": "塞勒斯特分区",
|
||||
"DRACO": "天龙座分区",
|
||||
"FALSTAFF": "法尔斯塔夫分区",
|
||||
"FARSIGHT": "法尔赛特分区",
|
||||
"FERRIS": "费里斯分区",
|
||||
"GALLUX": "加卢克斯分区",
|
||||
"GELLERT": "盖勒特分区",
|
||||
"GOTHMAR": "戈特玛分区",
|
||||
"GUANG": "古安分区",
|
||||
"HANZO": "半藏分区",
|
||||
"HAWKING": "霍金分区",
|
||||
"HYDRA": "长蛇座分区",
|
||||
"IDUN": "伊顿分区",
|
||||
"IPTUS": "伊普都斯分区",
|
||||
"JIN XI": "锦栖分区",
|
||||
"KELVIN": "凯尔文分区",
|
||||
"KORPUS": "科普斯分区",
|
||||
"L'ESTRADE": "莱斯特拉德分区",
|
||||
"LACAILLE": "拉凯欧分区",
|
||||
"LEO": "狮子座分区",
|
||||
"MARSPIRA": "马斯皮拉分区",
|
||||
"MERIDIAN": "默里迪亚分区",
|
||||
"MIRIN": "米琳分区",
|
||||
"MORGON": "莫根分区",
|
||||
"NANOS": "纳诺斯分区",
|
||||
"OMEGA": "欧米茄分区",
|
||||
"ORION": "猎户座分区",
|
||||
"QUINTUS": "昆图斯分区",
|
||||
"RICTUS": "瑞克图斯分区",
|
||||
"RIGEL": "参宿七分区",
|
||||
"SAGAN": "萨根分区",
|
||||
"SALERIA": "萨勒莉亚分区",
|
||||
"SEVERIN": "塞弗林分区",
|
||||
"SOL": "太阳系",
|
||||
"STEN": "斯坦分区",
|
||||
"TALUS": "塔洛斯分区",
|
||||
"TANIS": "塔尼斯分区",
|
||||
"TARRAGON": "塔拉戈分区",
|
||||
"TBD": "TBD",
|
||||
"THESEUS": "忒修斯分区",
|
||||
"TRIGON": "特里贡分区",
|
||||
"UMLAUT": "乌姆劳特分区",
|
||||
"URSA": "大熊座分区",
|
||||
"VALDIS": "瓦尔迪斯分区",
|
||||
"XI TAURI": "金牛座分区",
|
||||
"XZAR": "兹亚尔分区",
|
||||
"YMIR": "土卫十九分区"
|
||||
},
|
||||
"hazard": {
|
||||
"Acid Storms": "酸雨风暴",
|
||||
"Blizzards": "暴风雪",
|
||||
"Extreme Cold": "极寒",
|
||||
"Fire Tornadoes": "烈焰龙卷",
|
||||
"Intense Heat": "极暑",
|
||||
"Ion Storms": "离子风暴",
|
||||
"Meteor Storms": "流星风暴",
|
||||
"Rainstorms": "暴雨",
|
||||
"Sandstorms": "沙暴",
|
||||
"Thick Fog": "浓雾",
|
||||
"Tremors": "地震",
|
||||
"Volcanic Activity": "火山活动"
|
||||
},
|
||||
"effect": {
|
||||
"1127": "飞鹰500KG炸弹",
|
||||
"1128": "飞鹰500KG炸弹",
|
||||
"1129": "防护罩生成包",
|
||||
"1130": "特斯拉塔",
|
||||
"1133": "迫击哨戒炮",
|
||||
"1137": "磁轨炮",
|
||||
"1139": "飞鹰凝固汽油弹空袭",
|
||||
"1142": "飞鹰500KG炸弹",
|
||||
"1143": "Mg-43 机枪",
|
||||
"1145": "轨道激光炮",
|
||||
"1147": "轨道电磁冲击波攻击",
|
||||
"1148": "爱国者外骨骼装甲",
|
||||
"1149": "喷射背包",
|
||||
"1150": "补给背包",
|
||||
"1152": "反器材步枪",
|
||||
"1153": "磁轨炮",
|
||||
"1154": "轨道炮攻击",
|
||||
"1155": "机炮",
|
||||
"1156": "飞鹰110MM火箭巢",
|
||||
"1160": "轨道电磁冲击波攻击",
|
||||
"1161": "飞鹰凝固汽油弹空袭",
|
||||
"1162": "爱国者外骨骼装甲",
|
||||
"1163": "飞鹰110MM火箭巢",
|
||||
"1165": "喷射背包",
|
||||
"1166": "飞鹰500KG炸弹",
|
||||
"1167": "火焰喷射器",
|
||||
"1168": "激光大炮",
|
||||
"1169": "消耗性反坦克武器",
|
||||
"1170": "空爆火箭弹发射器",
|
||||
"1171": "反坦克地雷",
|
||||
"1172": "轨道毒气攻击",
|
||||
"1173": "解放者外骨骼装甲",
|
||||
"1174": "迫击哨戒炮",
|
||||
"1175": "加特林哨戒炮",
|
||||
"1177": "黑洞",
|
||||
"1179": "机炮",
|
||||
"1181": "突击兵",
|
||||
"1184": "燃烧地雷",
|
||||
"1185": "反步兵雷区",
|
||||
"1186": "轻度阴霾笼罩",
|
||||
"1187": "阴霾",
|
||||
"1188": "重度阴霾笼罩",
|
||||
"1190": "无法抵达",
|
||||
"1193": "阴霾边界",
|
||||
"1194": "轨道凝固汽油弹火力网",
|
||||
"1195": "DSS建筑工地 - 第1阶段",
|
||||
"1196": "DSS物流中心",
|
||||
"1197": "异星昆虫学研究中心",
|
||||
"1198": "深部地幔铸造复合体",
|
||||
"1199": "DSS建筑工地 - 第2阶段",
|
||||
"1200": "特斯拉塔",
|
||||
"1202": "喷气旅",
|
||||
"1203": "喷气旅",
|
||||
"1204": "解放日",
|
||||
"1205": "DSS建筑工地 - 第3阶段",
|
||||
"1206": "终结族研究保护区",
|
||||
"1207": "重机枪部署支架",
|
||||
"1209": "飞鹰风暴",
|
||||
"1210": "轨道封锁",
|
||||
"1211": "星球轰炸",
|
||||
"1212": "飞鹰风暴 (Marker)",
|
||||
"1213": "轨道封锁 (Marker)",
|
||||
"1214": "轨道重火力支援",
|
||||
"1215": "轨道封锁",
|
||||
"1216": "飞鹰风暴",
|
||||
"1217": "民主空间站",
|
||||
"1222": "雨水覆盖",
|
||||
"1226": "飞矛",
|
||||
"1227": "Mg-43 机枪",
|
||||
"1228": "默里迪恩黑洞 (Old Map Marker)",
|
||||
"1229": "默里迪恩黑洞",
|
||||
"1230": "默里迪恩黑洞",
|
||||
"1231": "毒气地雷",
|
||||
"1232": "工厂枢纽",
|
||||
"1233": "W.A.S.P.发射器",
|
||||
"1234": "科学中心",
|
||||
"1235": "反坦克地雷",
|
||||
"1236": "公民监控和安全中心",
|
||||
"1237": "轨道380MM高爆弹火力网",
|
||||
"1238": "行动支持",
|
||||
"1239": "喷气旅孵化厂",
|
||||
"1240": "濒临毁灭",
|
||||
"1241": "碎裂星球",
|
||||
"1242": "移动行星",
|
||||
"1243": "掠食变种",
|
||||
"1244": "孢裂变种",
|
||||
"1245": "掠食变种",
|
||||
"1246": "战役封锁",
|
||||
"1247": "毒气地雷",
|
||||
"1248": "炽灼部队",
|
||||
"1249": "炽灼部队",
|
||||
"1252": "碎裂星球",
|
||||
"1254": "重机枪",
|
||||
"1256": "掷弹兵防卫墙",
|
||||
"1261": "外骨骼装甲储备",
|
||||
"1262": "外骨骼装甲储备",
|
||||
"1263": "盟友",
|
||||
"1267": "轨道毒气攻击",
|
||||
"1268": "负能量实验室",
|
||||
"1269": "大军",
|
||||
"1274": "盟友",
|
||||
"1276": "防护罩生成中继器",
|
||||
"1277": "轨道凝固汽油弹火力网",
|
||||
"1279": "快速侦察载具",
|
||||
"1280": "轨道烟雾攻击",
|
||||
"1281": "飞鹰烟雾攻击",
|
||||
"1282": "绝地潜兵训练基地",
|
||||
"1283": "移动工厂激增",
|
||||
"1284": "无后坐力炮",
|
||||
"1285": "穿刺虫暴动",
|
||||
"1286": "希望新城建造区",
|
||||
"1287": "希望新城",
|
||||
"1288": "孢裂食腐虫暴动",
|
||||
"1291": "志向新城",
|
||||
"1292": "盛盼新城",
|
||||
"1293": "强袭虫暴动",
|
||||
"1295": "第二代暴政公园",
|
||||
"1303": "爆裂虫族变种",
|
||||
"1304": "阿尔法哨站",
|
||||
"1306": "蟑龙",
|
||||
"1307": "霸王虫",
|
||||
"1308": "霸王虫",
|
||||
"1309": "蟑龙",
|
||||
"1310": "爆裂虫族变种",
|
||||
"1311": "虫窝世界",
|
||||
"1324": "超镁铁矿井",
|
||||
"1329": "解放日庆典",
|
||||
"1342": "异见监禁中心 (CECOD)",
|
||||
"1344": "潘多拉基地",
|
||||
"1352": "常规黑洞",
|
||||
"1353": "数据中心",
|
||||
"1355": "重甲敌军激增",
|
||||
"1357": "巨型者激增",
|
||||
"1359": "蹂躏者激增",
|
||||
"1360": "生化人",
|
||||
"1361": "生化人",
|
||||
"1373": "1级异界风暴",
|
||||
"1374": "2级异界风暴",
|
||||
"1375": "3级异界风暴",
|
||||
"1376": "寂域",
|
||||
"1377": "无脑群氓",
|
||||
"1378": "无脑群氓",
|
||||
"1379": "占领者",
|
||||
"1380": "占领者",
|
||||
"1386": "孢裂变种",
|
||||
"1387": "通信阵列",
|
||||
"1395": "TCS+",
|
||||
"1400": "SEAF驻守",
|
||||
"1401": "SEAF驻守",
|
||||
"1402": "窃票者",
|
||||
"1403": "窃票者",
|
||||
"1406": "寂域边界",
|
||||
"1407": "寂域通路",
|
||||
"1412": "异常地点",
|
||||
"1413": "光能入侵舰队",
|
||||
"1414": "光能入侵舰队"
|
||||
},
|
||||
"planet": {
|
||||
"ACAMAR IV": "天园六IV",
|
||||
"ACHERNAR SECUNDUS": "水委一次星",
|
||||
"ACHIRD III": "王良三III",
|
||||
"ACRAB XI": "房宿四XI",
|
||||
"ACRUX IX": "十字架二IX",
|
||||
"ACTIVE PLANETS": "ACTIVE PLANETS",
|
||||
"ACUBENS PRIME": "柳宿增三主星",
|
||||
"ADHARA": "弧矢七",
|
||||
"AERIS PASS": "AERIS PASS",
|
||||
"AESIR PASS": "亚萨关隘",
|
||||
"AFOYAY BAY": "艾福亚湾",
|
||||
"AIN-5": "毕宿一5",
|
||||
"ALAIRT III": "艾列尔特III",
|
||||
"ALAMAK VII": "天大将军一VII",
|
||||
"ALARAPH": "右执法",
|
||||
"ALATHFAR XI": "织女增三XI",
|
||||
"ALDERIDGE COVE": "阿尔德里奇湾",
|
||||
"ALTA V": "奥尔塔V",
|
||||
"ANDAR": "安达尔",
|
||||
"ANGEL'S VENTURE": "天使投资",
|
||||
"ARKTURUS": "阿克图勒斯",
|
||||
"ASPEROTH PRIME": "阿斯佩洛斯主星",
|
||||
"ATRAMA": "阿特拉玛",
|
||||
"AURORA BAY": "极光湾",
|
||||
"AWAITING MAJOR ORDER": "等待重要指令",
|
||||
"AZTERRA": "艾孜泰拉",
|
||||
"AZUR SECUNDUS": "艾热尔次星",
|
||||
"BALDRICK PRIME": "巴尔德里克主星",
|
||||
"BARABOS": "巴勒博斯",
|
||||
"BASHYR": "巴希尔",
|
||||
"BASQUINE VIII": "巴斯金VIII",
|
||||
"BEKVAM III": "贝克温III",
|
||||
"BELLATRIX": "参宿五",
|
||||
"BIG ROCK": "巨岩",
|
||||
"BLISTICA": "布里斯提卡",
|
||||
"BORE ROCK": "博尔岩",
|
||||
"BOREA": "博瑞亚",
|
||||
"BOTEIN": "天阴四",
|
||||
"BRILLIANCE": "璨光",
|
||||
"BRINK-2": "布林克2",
|
||||
"BUNDA SECUNDUS": "天垒城一次星",
|
||||
"CALYPSO": "卡利普索",
|
||||
"CANOPUS": "老人",
|
||||
"CAPH": "王良一",
|
||||
"CARAMOOR": "开勒莫尔",
|
||||
"CASTOR": "北河二",
|
||||
"CERBERUS IIIC": "刻耳柏洛斯IIIc",
|
||||
"CHARBAL-VII": "查巴尔VII",
|
||||
"CHARON PRIME": "卡戎主星",
|
||||
"CHOEPESSA IV": "科埃佩萨IV",
|
||||
"CHOOHE": "丘伊",
|
||||
"CHORT BAY": "雀特湾",
|
||||
"CIRRUS": "希勒斯",
|
||||
"CLAORELL": "可洛尔",
|
||||
"CLASA": "克拉萨",
|
||||
"CRIMSICA": "克里姆西卡",
|
||||
"CRUCIBLE": "熔炉",
|
||||
"CURIA": "居里亚",
|
||||
"CYBERSTAN": "生化斯坦",
|
||||
"DARIUS II": "大流士II",
|
||||
"DARROWSPORT": "达罗斯波特",
|
||||
"DEFEND": "保卫",
|
||||
"DEMIURG": "戴米尔基",
|
||||
"DENEB SECUNDUS": "天津四次星",
|
||||
"DIASPORA X": "大流散X",
|
||||
"DILUVIA": "迪卢维亚",
|
||||
"DILVUIA": "DILVUIA",
|
||||
"DOLPH": "多尔夫",
|
||||
"DRAUPNIR": "德罗普尼尔",
|
||||
"DUMA TYR": "杜马提尔",
|
||||
"DURGEN": "德尔根",
|
||||
"Defended Planets": "保卫行星",
|
||||
"EAST IRIDIUM TRADING BAY": "东铱贸易湾",
|
||||
"EFFLUVIA": "艾芙鲁维亚",
|
||||
"ELECTRA BAY": "昴宿一湾",
|
||||
"ELYSIAN MEADOWS": "埃律西昂草原",
|
||||
"EMERIA": "埃梅里亚",
|
||||
"EMORATH": "艾莫拉斯",
|
||||
"ENULIALE": "安努力亚",
|
||||
"EPSILON PHOENCIS VI": "艾普斯林芬赛斯VI",
|
||||
"ERATA PRIME": "艾拉特主星",
|
||||
"ERRATA PRIME": "ERRATA PRIME",
|
||||
"ERSON SANDS": "厄尔森桑兹",
|
||||
"ESKER": "艾斯克尔",
|
||||
"ESTANU": "伊斯塔努",
|
||||
"EUKORIA": "欧科里亚",
|
||||
"EUPHORIA III": "欧福利亚III",
|
||||
"FENMIRE": "范迈尔",
|
||||
"FENRIR III": "芬里尔III",
|
||||
"FORI PRIME": "佛里主星",
|
||||
"FORNSKOGUR II": "福恩斯科古尔II",
|
||||
"FORT JUSTICE": "正义堡",
|
||||
"FORT SANCTUARY": "庇护堡",
|
||||
"FORT UNION": "联合堡",
|
||||
"FREEDOM PEAK": "弗里敦峰",
|
||||
"FRONTERIA": "边陲",
|
||||
"FURY": "费里",
|
||||
"GACRUX": "十字架一",
|
||||
"GAELLIVARE": "耶利瓦勒",
|
||||
"GAR HAREN": "轧尔哈伦",
|
||||
"GATRIA": "盖尔崔亚",
|
||||
"GEMMA": "贯索四",
|
||||
"GEMSTONE BLUFFS": "宝石崖",
|
||||
"GENESIS PRIME": "创世主星",
|
||||
"GRAFMERE": "格拉夫米尔",
|
||||
"GRAND ERRANT": "大艾伦特",
|
||||
"GUNVALD": "古恩瓦尔德",
|
||||
"Galaxy Stats": "星系状况",
|
||||
"HADAR": "马腹一",
|
||||
"HADR": "HADR",
|
||||
"HAKA": "哈卡",
|
||||
"HALDUS": "海德斯",
|
||||
"HALIES PORT": "海利斯港",
|
||||
"HEETH": "希斯",
|
||||
"HELLMIRE": "海尔迈尔",
|
||||
"HERTHON SECUNDUS": "赫尔松次星",
|
||||
"HESOE PRIME": "海索主星",
|
||||
"HEZE BAY": "角宿二湾",
|
||||
"HORT": "哈尔特",
|
||||
"HYDROBIUS": "哈卓毕亚斯",
|
||||
"HYDROFALL PRIME": "水瀑主星",
|
||||
"IGLA": "伊格勒",
|
||||
"ILDUNA PRIME": "伊尔都纳主星",
|
||||
"IMBER": "因博尔",
|
||||
"INARI": "伊纳里",
|
||||
"INGMAR": "英格玛",
|
||||
"IRIDICA": "艾丽迪卡",
|
||||
"IRO": "伊罗",
|
||||
"IRULTA": "艾鲁尔塔",
|
||||
"IVIS": "艾维斯",
|
||||
"JULHEIM": "尤尔海姆",
|
||||
"K": "K",
|
||||
"KARLIA": "可利亚",
|
||||
"KEID": "九州殊口增七",
|
||||
"KELVINOR": "开尔文奥尔",
|
||||
"KERTH SECUNDUS": "克斯次星",
|
||||
"KHANDARK": "勘达尔克",
|
||||
"KHARST": "喀斯特",
|
||||
"KIRRIK": "基里克",
|
||||
"KLAKA 5": "克拉卡5",
|
||||
"KLEN DAHTH II": "克伦达斯II",
|
||||
"KNETH PORT": "克奈斯港",
|
||||
"KRAKABOS": "克拉克博斯",
|
||||
"KRAKATWO": "克拉克图",
|
||||
"KRAZ": "轸宿四",
|
||||
"KUMA": "天棓二",
|
||||
"KUPER": "库珀",
|
||||
"LASTOFE": "赖斯斗夫",
|
||||
"LENG SCUNDUS": "LENG SCUNDUS",
|
||||
"LENG SECUNDUS": "蓝恩次星",
|
||||
"LESATH": "尾宿八",
|
||||
"LIBERTY RIDGE": "解放岭",
|
||||
"LUXURIANT": "富源",
|
||||
"MAIA": "昴宿四",
|
||||
"MAJOR ORDER": "重要指令",
|
||||
"MALEVELON CREEK": "麦拉芬蒙河",
|
||||
"MANTES": "蒙特斯",
|
||||
"MARFARK": "玛尔法克",
|
||||
"MARRE IV": "马尔IV",
|
||||
"MARTALE": "玛尔特",
|
||||
"MARTYR'S BAY": "烈士湾",
|
||||
"MASTIA": "玛斯蒂亚",
|
||||
"MATAR BAY": "玛塔",
|
||||
"MAW": "深渊",
|
||||
"MEDALS": "MEDALS",
|
||||
"MEISSA": "觜宿一",
|
||||
"MEKBUDA": "井宿七",
|
||||
"MENKENT": "库楼三",
|
||||
"MERAK": "北斗二",
|
||||
"MERGA IV": "玄戈增二IV",
|
||||
"MERIDIA": "默里迪亚",
|
||||
"MIDASBURG": "弥达斯堡",
|
||||
"MINCHIR": "敏切尔",
|
||||
"MINTORIA": "敏托瑞亚",
|
||||
"MOG": "莫格",
|
||||
"MORADESH": "莫拉戴什",
|
||||
"MORDIA 9": "摩帝亚9",
|
||||
"MORIDA 9": "MORIDA 9",
|
||||
"MORT": "莫特",
|
||||
"MORTAX PRIME": "摩尔塔克斯主星",
|
||||
"MOX": "莫克斯",
|
||||
"MYRADESH": "米拉戴什",
|
||||
"MYRIUM": "梅里翁",
|
||||
"Major Order ends in:": "最高指令结束:",
|
||||
"NABATEA SECUNDUS": "那贝塔次星",
|
||||
"NAVI VII": "阁道二",
|
||||
"NEW HAVEN": "纽黑文",
|
||||
"NEW INSIGHT": "新悟",
|
||||
"NEW KIRUNA": "新基鲁纳",
|
||||
"NEW STOCKHOLM": "新斯德哥尔摩",
|
||||
"NIVEL 43": "尼维尔43",
|
||||
"NUBLARIA I": "努布拉里亚I",
|
||||
"OASIS": "绿洲",
|
||||
"OBARI": "欧巴里",
|
||||
"OKUL VI": "欧库VI",
|
||||
"OMICRON": "奥密克戎",
|
||||
"OSHAUNE": "欧绍恩",
|
||||
"OSLO STATION": "奥斯陆站",
|
||||
"OSUPSAM": "欧苏普森",
|
||||
"OUTPOST 32": "32号哨站",
|
||||
"OVERGOE PRIME": "欧维果主星",
|
||||
"PANDION-XXIV": "帕狄恩XXIV",
|
||||
"PARSH": "帕尔什",
|
||||
"PARTION": "帕尔晨",
|
||||
"PATHFINDER V": "开拓者V",
|
||||
"PEACOCK": "孔雀十一",
|
||||
"PENTA": "彭塔",
|
||||
"PHACT BAY": "丈人一湾",
|
||||
"PHERKAD SECUNDUS": "北极一次星",
|
||||
"PILEN V": "皮伦V",
|
||||
"PIONEER II": "先驱II",
|
||||
"POLARIS PRIME": "北极星主星",
|
||||
"POLLUX 31": "北河三31",
|
||||
"PRASA": "普拉萨",
|
||||
"PRIMORDIA": "普莱默迪亚",
|
||||
"PROPUS": "五诸侯三",
|
||||
"PROSPERITY FALLS": "繁荣瀑布",
|
||||
"PROVIDENCE": "普罗维登斯",
|
||||
"PÖPLI IX": "珀普利IX",
|
||||
"RAS ALGETHI": "帝座",
|
||||
"RASP": "拉斯普",
|
||||
"RATCH": "拉奇",
|
||||
"RD-4": "RD4",
|
||||
"REAF": "利夫",
|
||||
"REGNUS": "雷格努斯",
|
||||
"RIRGA BAY": "里尔加湾",
|
||||
"ROGUE 5": "罗格5",
|
||||
"SANGIS": "赤血",
|
||||
"SEASSE": "西斯",
|
||||
"SENGE 23": "新戈23",
|
||||
"SETIA": "赛提亚",
|
||||
"SEYSHEL BEACH": "塞舌尔海滩",
|
||||
"SHALLUS": "沙勒斯",
|
||||
"SHELT": "谢尔特",
|
||||
"SHETE": "赛特",
|
||||
"SIEMNOT": "席姆纳特",
|
||||
"SIRIUS": "天狼星",
|
||||
"SKAASH": "斯卡什",
|
||||
"SKAT BAY": "斯卡特湾",
|
||||
"SKITTER": "斯基特",
|
||||
"SLIF": "斯利夫",
|
||||
"SOCORRO III": "索科罗III",
|
||||
"SOLGHAST": "索尔加斯特",
|
||||
"SPHERION": "斯飞利昂",
|
||||
"STOR THA PRIME": "斯特萨主星",
|
||||
"STOUT": "斯图尔特",
|
||||
"SULFURA": "萨尔弗拉",
|
||||
"SUPER EARTH": "超级地球",
|
||||
"Stand by for further orders from Super Earth High Command": "等待超级地球最高指挥部的进一步指令",
|
||||
"TARSH": "塔尔什",
|
||||
"TERMADON": "特尔玛登",
|
||||
"TERREK": "泰雷克",
|
||||
"THE WEIR": "维尔",
|
||||
"TIBIT": "提比特",
|
||||
"TIEN KWAN": "天关",
|
||||
"TOTAL PLAYERS:": "参战潜兵:",
|
||||
"TRANDOR": "特兰道尔",
|
||||
"TROOST": "特鲁斯特",
|
||||
"TURING": "图灵",
|
||||
"UBANEA": "乌巴尼亚",
|
||||
"URSICA XI": "厄西卡XI",
|
||||
"USTOTU": "伍斯特图",
|
||||
"UVP ALPHA": "UVP阿尔法",
|
||||
"UVP BETA": "UVP贝塔",
|
||||
"UVP DELTA": "UVP德尔塔",
|
||||
"UVP GAMMA": "UVP伽马",
|
||||
"VALGAARD": "瓦尔加德",
|
||||
"VALMOX": "瓦尔莫克斯",
|
||||
"VANDALON IV": "万达隆IV",
|
||||
"VARYLIA 5": "瓦瑞拉亚5",
|
||||
"VEGA BAY": "织女一湾",
|
||||
"VEIL": "帷幕",
|
||||
"VELD": "维尔德",
|
||||
"VERNEN WELLS": "佛农井",
|
||||
"VINDEMITARIX PRIME": "文德米塔里克斯主星",
|
||||
"VIRIDIA PRIME": "维尔伊迪亚主星",
|
||||
"VOG-SOJOTH": "佛戈索约斯",
|
||||
"VOLTERRA": "沃尔泰拉",
|
||||
"WASAT": "天樽二",
|
||||
"WAYWARD": "逸泊",
|
||||
"WEZEN": "弧矢一",
|
||||
"WIDOW'S HARBOR": "寡妇港",
|
||||
"WILFORD STATION": "威尔福德站",
|
||||
"WRAITH": "幽灵",
|
||||
"X-45": "X45",
|
||||
"YED PRIOR": "天市右垣九",
|
||||
"ZAGON PRIME": "扎贡主星",
|
||||
"ZEA RUGOSIA": "泽亚鲁戈西亚",
|
||||
"ZEFIA": "赛飞亚",
|
||||
"ZEGEMA PARADISE": "泽格马乐土",
|
||||
"ZOSMA": "太微右垣五",
|
||||
"ZYGOS": "齐戈斯",
|
||||
"ZZANIAH PRIME": "藏尼亚主星"
|
||||
},
|
||||
"campaign_type": {
|
||||
"0": "解放战役",
|
||||
"1": "侦察战役",
|
||||
"2": "Story",
|
||||
"3": "Conquest",
|
||||
"4": "防御战",
|
||||
"5": "Deployment"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,567 @@
|
||||
{
|
||||
"biome": {
|
||||
"ACCESS DENIED": "拒绝访问",
|
||||
"Acidic Badlands": "酸性恶地",
|
||||
"Basic Swamp": "沼泽",
|
||||
"Black Hole": "黑洞",
|
||||
"Bleak Oasis": "衰败绿洲",
|
||||
"Boneyard": "骸骨之地",
|
||||
"Cyberstan Megafactory": "生化斯坦大型工厂",
|
||||
"Deadlands": "死寂之地",
|
||||
"Deciduous Autumn Forest": "秋季落叶林",
|
||||
"Deciduous Crimson Forest": "绯红落叶林",
|
||||
"Deciduous Forest": "落叶林",
|
||||
"Desert Cliffs": "沙漠悬壁",
|
||||
"Desert Dunes": "沙漠沙丘",
|
||||
"Desert Oasis": "沙漠绿洲",
|
||||
"Ethereal Jungle": "缥缈丛林",
|
||||
"Haunted Swamp": "幽祟沼泽",
|
||||
"Hive World": "虫窝世界",
|
||||
"Icy Glaciers": "冰封冰川",
|
||||
"Ionic Crimson": "离子绯红之地",
|
||||
"Ionic Jungle": "离子丛林",
|
||||
"Magma": "岩浆地带",
|
||||
"Moon": "月球",
|
||||
"Plains": "平原",
|
||||
"Rocky Canyons": "岩质峡谷",
|
||||
"Scorched Moor": "焦土荒原",
|
||||
"Super Earth": "超级地球",
|
||||
"Supercolony": "超级拓殖地",
|
||||
"Tien Kwan Special": "天关特域",
|
||||
"Tundra": "苔原",
|
||||
"Volcanic Jungle": "火山丛林"
|
||||
},
|
||||
"sector": {
|
||||
"AKIRA": "阿基拉分区",
|
||||
"ALSTRAD": "阿尔斯特拉德分区",
|
||||
"ALTUS": "阿尔特斯分区",
|
||||
"ANDROMEDA": "仙女座分区",
|
||||
"ARTURION": "阿图里昂分区",
|
||||
"BARNARD": "巴纳德分区",
|
||||
"BORGUS": "博格斯分区",
|
||||
"CANCRI": "康古利伊分区",
|
||||
"CANTOLUS": "坎托鲁斯分区",
|
||||
"CELESTE": "塞勒斯特分区",
|
||||
"DRACO": "天龙座分区",
|
||||
"FALSTAFF": "法尔斯塔夫分区",
|
||||
"FARSIGHT": "法尔赛特分区",
|
||||
"FERRIS": "费里斯分区",
|
||||
"GALLUX": "加卢克斯分区",
|
||||
"GELLERT": "盖勒特分区",
|
||||
"GOTHMAR": "戈特玛分区",
|
||||
"GUANG": "古安分区",
|
||||
"HANZO": "半藏分区",
|
||||
"HAWKING": "霍金分区",
|
||||
"HYDRA": "长蛇座分区",
|
||||
"IDUN": "伊顿分区",
|
||||
"IPTUS": "伊普都斯分区",
|
||||
"JIN XI": "锦栖分区",
|
||||
"KELVIN": "凯尔文分区",
|
||||
"KORPUS": "科普斯分区",
|
||||
"L'ESTRADE": "莱斯特拉德分区",
|
||||
"LACAILLE": "拉凯欧分区",
|
||||
"LEO": "狮子座分区",
|
||||
"MARSPIRA": "马斯皮拉分区",
|
||||
"MERIDIAN": "默里迪亚分区",
|
||||
"MIRIN": "米琳分区",
|
||||
"MORGON": "莫根分区",
|
||||
"NANOS": "纳诺斯分区",
|
||||
"OMEGA": "欧米茄分区",
|
||||
"ORION": "猎户座分区",
|
||||
"QUINTUS": "昆图斯分区",
|
||||
"RICTUS": "瑞克图斯分区",
|
||||
"RIGEL": "参宿七分区",
|
||||
"SAGAN": "萨根分区",
|
||||
"SALERIA": "萨勒莉亚分区",
|
||||
"SEVERIN": "塞弗林分区",
|
||||
"SOL": "太阳系",
|
||||
"STEN": "斯坦分区",
|
||||
"TALUS": "塔洛斯分区",
|
||||
"TANIS": "塔尼斯分区",
|
||||
"TARRAGON": "塔拉戈分区",
|
||||
"TBD": "TBD",
|
||||
"THESEUS": "忒修斯分区",
|
||||
"TRIGON": "特里贡分区",
|
||||
"UMLAUT": "乌姆劳特分区",
|
||||
"URSA": "大熊座分区",
|
||||
"VALDIS": "瓦尔迪斯分区",
|
||||
"XI TAURI": "金牛座分区",
|
||||
"XZAR": "兹亚尔分区",
|
||||
"YMIR": "土卫十九分区"
|
||||
},
|
||||
"hazard": {
|
||||
"Acid Storms": "酸雨风暴",
|
||||
"Blizzards": "暴风雪",
|
||||
"Extreme Cold": "极寒",
|
||||
"Fire Tornadoes": "烈焰龙卷",
|
||||
"Intense Heat": "极暑",
|
||||
"Ion Storms": "离子风暴",
|
||||
"Meteor Storms": "流星风暴",
|
||||
"Rainstorms": "暴雨",
|
||||
"Sandstorms": "沙暴",
|
||||
"Thick Fog": "浓雾",
|
||||
"Tremors": "地震",
|
||||
"Volcanic Activity": "火山活动"
|
||||
},
|
||||
"effect": {
|
||||
"1127": "飞鹰500KG炸弹",
|
||||
"1128": "飞鹰500KG炸弹",
|
||||
"1129": "防护罩生成包",
|
||||
"1130": "特斯拉塔",
|
||||
"1133": "迫击哨戒炮",
|
||||
"1137": "磁轨炮",
|
||||
"1139": "飞鹰凝固汽油弹空袭",
|
||||
"1142": "飞鹰500KG炸弹",
|
||||
"1143": "Mg-43 机枪",
|
||||
"1145": "轨道激光炮",
|
||||
"1147": "轨道电磁冲击波攻击",
|
||||
"1148": "爱国者外骨骼装甲",
|
||||
"1149": "喷射背包",
|
||||
"1150": "补给背包",
|
||||
"1152": "反器材步枪",
|
||||
"1153": "磁轨炮",
|
||||
"1154": "轨道炮攻击",
|
||||
"1155": "Ac-8 机炮",
|
||||
"1156": "飞鹰110MM火箭巢",
|
||||
"1160": "轨道电磁冲击波攻击",
|
||||
"1161": "飞鹰凝固汽油弹空袭",
|
||||
"1162": "爱国者外骨骼装甲",
|
||||
"1163": "飞鹰110MM火箭巢",
|
||||
"1165": "喷射背包",
|
||||
"1166": "飞鹰500KG炸弹",
|
||||
"1167": "火焰喷射器",
|
||||
"1168": "激光大炮",
|
||||
"1169": "消耗性反坦克武器",
|
||||
"1170": "空爆火箭弹发射器",
|
||||
"1171": "反坦克地雷",
|
||||
"1172": "轨道毒气攻击",
|
||||
"1173": "解放者外骨骼装甲",
|
||||
"1174": "迫击哨戒炮",
|
||||
"1175": "加特林哨戒炮",
|
||||
"1177": "黑洞",
|
||||
"1179": "机炮",
|
||||
"1181": "突击兵",
|
||||
"1184": "燃烧地雷",
|
||||
"1185": "反步兵雷区",
|
||||
"1186": "轻度阴霾笼罩",
|
||||
"1187": "阴霾",
|
||||
"1188": "重度阴霾笼罩",
|
||||
"1190": "无法抵达",
|
||||
"1193": "阴霾边界",
|
||||
"1194": "轨道凝固汽油弹火力网",
|
||||
"1195": "DSS建筑工地 - 第1阶段",
|
||||
"1196": "DSS物流中心",
|
||||
"1197": "异星昆虫学研究中心",
|
||||
"1198": "深部地幔铸造复合体",
|
||||
"1199": "DSS建筑工地 - 第2阶段",
|
||||
"1200": "特斯拉塔",
|
||||
"1202": "喷气旅",
|
||||
"1203": "喷气旅",
|
||||
"1204": "解放日",
|
||||
"1205": "DSS建筑工地 - 第3阶段",
|
||||
"1206": "终结族研究保护区",
|
||||
"1207": "重机枪部署支架",
|
||||
"1209": "飞鹰风暴",
|
||||
"1210": "轨道封锁",
|
||||
"1211": "星球轰炸",
|
||||
"1212": "飞鹰风暴 (Marker)",
|
||||
"1213": "轨道封锁 (Marker)",
|
||||
"1214": "轰炸解放推进",
|
||||
"1215": "轨道封锁",
|
||||
"1216": "飞鹰风暴",
|
||||
"1217": "民主空间站",
|
||||
"1222": "雨水覆盖",
|
||||
"1226": "飞矛",
|
||||
"1227": "Mg-43 机枪",
|
||||
"1228": "默里迪恩黑洞 (Old Map Marker)",
|
||||
"1229": "默里迪恩黑洞",
|
||||
"1230": "默里迪恩黑洞",
|
||||
"1231": "毒气地雷",
|
||||
"1232": "工厂枢纽",
|
||||
"1233": "W.A.S.P.发射器",
|
||||
"1234": "科学中心",
|
||||
"1235": "反坦克地雷",
|
||||
"1236": "公民监控和安全中心",
|
||||
"1237": "轨道380MM高爆弹火力网",
|
||||
"1238": "行动支持",
|
||||
"1239": "喷气旅孵化厂",
|
||||
"1240": "濒临毁灭",
|
||||
"1241": "碎裂星球",
|
||||
"1242": "移动行星",
|
||||
"1243": "掠食变种",
|
||||
"1244": "孢裂变种",
|
||||
"1245": "掠食变种",
|
||||
"1246": "战役封锁",
|
||||
"1247": "毒气地雷",
|
||||
"1248": "炽灼部队",
|
||||
"1249": "炽灼部队",
|
||||
"1252": "碎裂星球",
|
||||
"1254": "重机枪",
|
||||
"1256": "掷弹兵防卫墙",
|
||||
"1261": "外骨骼装甲储备",
|
||||
"1262": "外骨骼装甲储备",
|
||||
"1263": "盟友",
|
||||
"1267": "轨道毒气攻击",
|
||||
"1268": "负能量实验室",
|
||||
"1269": "大军",
|
||||
"1274": "盟友",
|
||||
"1276": "防护罩生成中继器",
|
||||
"1277": "轨道凝固汽油弹火力网",
|
||||
"1279": "快速侦察载具",
|
||||
"1280": "轨道烟雾攻击",
|
||||
"1281": "飞鹰烟雾攻击",
|
||||
"1282": "绝地潜兵训练基地",
|
||||
"1283": "移动工厂激增",
|
||||
"1284": "无后坐力炮",
|
||||
"1285": "穿刺虫暴动",
|
||||
"1286": "希望新城建造区",
|
||||
"1287": "希望新城",
|
||||
"1288": "孢裂食腐虫暴动",
|
||||
"1291": "志向新城",
|
||||
"1292": "盛盼新城",
|
||||
"1293": "强袭虫暴动",
|
||||
"1295": "第二代暴政公园",
|
||||
"1303": "爆裂虫族变种",
|
||||
"1304": "阿尔法哨站",
|
||||
"1306": "蟑龙",
|
||||
"1307": "霸王虫",
|
||||
"1308": "霸王虫",
|
||||
"1309": "蟑龙",
|
||||
"1310": "爆裂虫族变种",
|
||||
"1311": "虫窝世界",
|
||||
"1324": "超镁铁矿井",
|
||||
"1329": "解放日庆典",
|
||||
"1342": "异见监禁中心 (CECOD)",
|
||||
"1344": "潘多拉基地",
|
||||
"1352": "常规黑洞",
|
||||
"1353": "数据中心",
|
||||
"1355": "重甲敌军激增",
|
||||
"1357": "巨型者激增",
|
||||
"1359": "蹂躏者激增",
|
||||
"1360": "生化人",
|
||||
"1361": "生化人",
|
||||
"1373": "1级异界风暴",
|
||||
"1374": "2级异界风暴",
|
||||
"1375": "3级异界风暴",
|
||||
"1376": "寂域",
|
||||
"1377": "无脑群氓",
|
||||
"1378": "无脑群氓",
|
||||
"1379": "占领者",
|
||||
"1380": "占领者",
|
||||
"1386": "孢裂变种",
|
||||
"1387": "通信阵列",
|
||||
"1395": "终结族遏制体系+",
|
||||
"1400": "超级地球武装部队重兵驻守",
|
||||
"1401": "超级地球武装部队重兵驻守",
|
||||
"1402": "窃票者",
|
||||
"1403": "窃票者",
|
||||
"1406": "寂域边界",
|
||||
"1407": "寂域通路",
|
||||
"1412": "异常地点",
|
||||
"1413": "入侵舰队",
|
||||
"1414": "入侵舰队"
|
||||
},
|
||||
"planet": {
|
||||
"ACAMAR IV": "天园六IV",
|
||||
"ACHERNAR SECUNDUS": "水委一次星",
|
||||
"ACHIRD III": "王良三III",
|
||||
"ACRAB XI": "房宿四XI",
|
||||
"ACRUX IX": "十字架二IX",
|
||||
"ACTIVE PLANETS": "ACTIVE PLANETS",
|
||||
"ACUBENS PRIME": "柳宿增三主星",
|
||||
"ADHARA": "弧矢七",
|
||||
"AERIS PASS": "AERIS PASS",
|
||||
"AESIR PASS": "亚萨关隘",
|
||||
"AFOYAY BAY": "艾福亚湾",
|
||||
"AIN-5": "毕宿一5",
|
||||
"ALAIRT III": "艾列尔特III",
|
||||
"ALAMAK VII": "天大将军一VII",
|
||||
"ALARAPH": "右执法",
|
||||
"ALATHFAR XI": "织女增三XI",
|
||||
"ALDERIDGE COVE": "阿尔德里奇湾",
|
||||
"ALTA V": "奥尔塔V",
|
||||
"ANDAR": "安达尔",
|
||||
"ANGEL'S VENTURE": "天使投资",
|
||||
"ARKTURUS": "阿克图勒斯",
|
||||
"ASPEROTH PRIME": "阿斯佩洛斯主星",
|
||||
"ATRAMA": "阿特拉玛",
|
||||
"AURORA BAY": "极光湾",
|
||||
"AWAITING MAJOR ORDER": "等待重要指令",
|
||||
"AZTERRA": "艾孜泰拉",
|
||||
"AZUR SECUNDUS": "艾热尔次星",
|
||||
"BALDRICK PRIME": "巴尔德里克主星",
|
||||
"BARABOS": "巴勒博斯",
|
||||
"BASHYR": "巴希尔",
|
||||
"BASQUINE VIII": "巴斯金VIII",
|
||||
"BEKVAM III": "贝克温III",
|
||||
"BELLATRIX": "参宿五",
|
||||
"BIG ROCK": "巨岩",
|
||||
"BLISTICA": "布里斯提卡",
|
||||
"BORE ROCK": "博尔岩",
|
||||
"BOREA": "博瑞亚",
|
||||
"BOTEIN": "天阴四",
|
||||
"BRILLIANCE": "璨光",
|
||||
"BRINK-2": "布林克2",
|
||||
"BUNDA SECUNDUS": "天垒城一次星",
|
||||
"CALYPSO": "卡利普索",
|
||||
"CANOPUS": "老人",
|
||||
"CAPH": "王良一",
|
||||
"CARAMOOR": "开勒莫尔",
|
||||
"CASTOR": "北河二",
|
||||
"CERBERUS IIIC": "刻耳柏洛斯IIIc",
|
||||
"CHARBAL-VII": "查巴尔VII",
|
||||
"CHARON PRIME": "卡戎主星",
|
||||
"CHOEPESSA IV": "科埃佩萨IV",
|
||||
"CHOOHE": "丘伊",
|
||||
"CHORT BAY": "雀特湾",
|
||||
"CIRRUS": "希勒斯",
|
||||
"CLAORELL": "可洛尔",
|
||||
"CLASA": "克拉萨",
|
||||
"CRIMSICA": "克里姆西卡",
|
||||
"CRUCIBLE": "熔炉",
|
||||
"CURIA": "居里亚",
|
||||
"CYBERSTAN": "生化斯坦",
|
||||
"DARIUS II": "大流士II",
|
||||
"DARROWSPORT": "达罗斯波特",
|
||||
"DEFEND": "保卫",
|
||||
"DEMIURG": "戴米尔基",
|
||||
"DENEB SECUNDUS": "天津四次星",
|
||||
"DIASPORA X": "大流散X",
|
||||
"DILUVIA": "迪卢维亚",
|
||||
"DILVUIA": "DILVUIA",
|
||||
"DOLPH": "多尔夫",
|
||||
"DRAUPNIR": "德罗普尼尔",
|
||||
"DUMA TYR": "杜马提尔",
|
||||
"DURGEN": "德尔根",
|
||||
"Defended Planets": "保卫行星",
|
||||
"EAST IRIDIUM TRADING BAY": "东铱贸易湾",
|
||||
"EFFLUVIA": "艾芙鲁维亚",
|
||||
"ELECTRA BAY": "昴宿一湾",
|
||||
"ELYSIAN MEADOWS": "埃律西昂草原",
|
||||
"EMERIA": "埃梅里亚",
|
||||
"EMORATH": "艾莫拉斯",
|
||||
"ENULIALE": "安努力亚",
|
||||
"EPSILON PHOENCIS VI": "艾普斯林芬赛斯VI",
|
||||
"ERATA PRIME": "艾拉特主星",
|
||||
"ERRATA PRIME": "ERRATA PRIME",
|
||||
"ERSON SANDS": "厄尔森桑兹",
|
||||
"ESKER": "艾斯克尔",
|
||||
"ESTANU": "伊斯塔努",
|
||||
"EUKORIA": "欧科里亚",
|
||||
"EUPHORIA III": "欧福利亚III",
|
||||
"FENMIRE": "范迈尔",
|
||||
"FENRIR III": "芬里尔III",
|
||||
"FORI PRIME": "佛里主星",
|
||||
"FORNSKOGUR II": "福恩斯科古尔II",
|
||||
"FORT JUSTICE": "正义堡",
|
||||
"FORT SANCTUARY": "庇护堡",
|
||||
"FORT UNION": "联合堡",
|
||||
"FREEDOM PEAK": "弗里敦峰",
|
||||
"FRONTERIA": "边陲",
|
||||
"FURY": "费里",
|
||||
"GACRUX": "十字架一",
|
||||
"GAELLIVARE": "耶利瓦勒",
|
||||
"GAR HAREN": "轧尔哈伦",
|
||||
"GATRIA": "盖尔崔亚",
|
||||
"GEMMA": "贯索四",
|
||||
"GEMSTONE BLUFFS": "宝石崖",
|
||||
"GENESIS PRIME": "创世主星",
|
||||
"GRAFMERE": "格拉夫米尔",
|
||||
"GRAND ERRANT": "大艾伦特",
|
||||
"GUNVALD": "古恩瓦尔德",
|
||||
"Galaxy Stats": "星系状况",
|
||||
"HADAR": "马腹一",
|
||||
"HADR": "HADR",
|
||||
"HAKA": "哈卡",
|
||||
"HALDUS": "海德斯",
|
||||
"HALIES PORT": "海利斯港",
|
||||
"HEETH": "希斯",
|
||||
"HELLMIRE": "海尔迈尔",
|
||||
"HERTHON SECUNDUS": "赫尔松次星",
|
||||
"HESOE PRIME": "海索主星",
|
||||
"HEZE BAY": "角宿二湾",
|
||||
"HORT": "哈尔特",
|
||||
"HYDROBIUS": "哈卓毕亚斯",
|
||||
"HYDROFALL PRIME": "水瀑主星",
|
||||
"IGLA": "伊格勒",
|
||||
"ILDUNA PRIME": "伊尔都纳主星",
|
||||
"IMBER": "因博尔",
|
||||
"INARI": "伊纳里",
|
||||
"INGMAR": "英格玛",
|
||||
"IRIDICA": "艾丽迪卡",
|
||||
"IRO": "伊罗",
|
||||
"IRULTA": "艾鲁尔塔",
|
||||
"IVIS": "艾维斯",
|
||||
"JULHEIM": "尤尔海姆",
|
||||
"K": "K",
|
||||
"KARLIA": "可利亚",
|
||||
"KEID": "九州殊口增七",
|
||||
"KELVINOR": "开尔文奥尔",
|
||||
"KERTH SECUNDUS": "克斯次星",
|
||||
"KHANDARK": "勘达尔克",
|
||||
"KHARST": "喀斯特",
|
||||
"KIRRIK": "基里克",
|
||||
"KLAKA 5": "克拉卡5",
|
||||
"KLEN DAHTH II": "克伦达斯II",
|
||||
"KNETH PORT": "克奈斯港",
|
||||
"KRAKABOS": "克拉克博斯",
|
||||
"KRAKATWO": "克拉克图",
|
||||
"KRAZ": "轸宿四",
|
||||
"KUMA": "天棓二",
|
||||
"KUPER": "库珀",
|
||||
"LASTOFE": "赖斯斗夫",
|
||||
"LENG SCUNDUS": "LENG SCUNDUS",
|
||||
"LENG SECUNDUS": "蓝恩次星",
|
||||
"LESATH": "尾宿八",
|
||||
"LIBERTY RIDGE": "解放岭",
|
||||
"LUXURIANT": "富源",
|
||||
"MAIA": "昴宿四",
|
||||
"MAJOR ORDER": "重要指令",
|
||||
"MALEVELON CREEK": "麦拉芬蒙河",
|
||||
"MANTES": "蒙特斯",
|
||||
"MARFARK": "玛尔法克",
|
||||
"MARRE IV": "马尔IV",
|
||||
"MARTALE": "玛尔特",
|
||||
"MARTYR'S BAY": "烈士湾",
|
||||
"MASTIA": "玛斯蒂亚",
|
||||
"MATAR BAY": "玛塔",
|
||||
"MAW": "深渊",
|
||||
"MEDALS": "MEDALS",
|
||||
"MEISSA": "觜宿一",
|
||||
"MEKBUDA": "井宿七",
|
||||
"MENKENT": "库楼三",
|
||||
"MERAK": "北斗二",
|
||||
"MERGA IV": "玄戈增二IV",
|
||||
"MERIDIA": "默里迪亚",
|
||||
"MIDASBURG": "弥达斯堡",
|
||||
"MINCHIR": "敏切尔",
|
||||
"MINTORIA": "敏托瑞亚",
|
||||
"MOG": "莫格",
|
||||
"MORADESH": "莫拉戴什",
|
||||
"MORDIA 9": "摩帝亚9",
|
||||
"MORIDA 9": "MORIDA 9",
|
||||
"MORT": "莫特",
|
||||
"MORTAX PRIME": "摩尔塔克斯主星",
|
||||
"MOX": "莫克斯",
|
||||
"MYRADESH": "米拉戴什",
|
||||
"MYRIUM": "梅里翁",
|
||||
"Major Order ends in:": "最高指令结束:",
|
||||
"NABATEA SECUNDUS": "那贝塔次星",
|
||||
"NAVI VII": "阁道二",
|
||||
"NEW HAVEN": "纽黑文",
|
||||
"NEW INSIGHT": "新悟",
|
||||
"NEW KIRUNA": "新基鲁纳",
|
||||
"NEW STOCKHOLM": "新斯德哥尔摩",
|
||||
"NIVEL 43": "尼维尔43",
|
||||
"NUBLARIA I": "努布拉里亚I",
|
||||
"OASIS": "绿洲",
|
||||
"OBARI": "欧巴里",
|
||||
"OKUL VI": "欧库VI",
|
||||
"OMICRON": "奥密克戎",
|
||||
"OSHAUNE": "欧绍恩",
|
||||
"OSLO STATION": "奥斯陆站",
|
||||
"OSUPSAM": "欧苏普森",
|
||||
"OUTPOST 32": "32号哨站",
|
||||
"OVERGOE PRIME": "欧维果主星",
|
||||
"PANDION-XXIV": "帕狄恩XXIV",
|
||||
"PARSH": "帕尔什",
|
||||
"PARTION": "帕尔晨",
|
||||
"PATHFINDER V": "开拓者V",
|
||||
"PEACOCK": "孔雀十一",
|
||||
"PENTA": "彭塔",
|
||||
"PHACT BAY": "丈人一湾",
|
||||
"PHERKAD SECUNDUS": "北极一次星",
|
||||
"PILEN V": "皮伦V",
|
||||
"PIONEER II": "先驱II",
|
||||
"POLARIS PRIME": "北极星主星",
|
||||
"POLLUX 31": "北河三31",
|
||||
"PRASA": "普拉萨",
|
||||
"PRIMORDIA": "普莱默迪亚",
|
||||
"PROPUS": "五诸侯三",
|
||||
"PROSPERITY FALLS": "繁荣瀑布",
|
||||
"PROVIDENCE": "普罗维登斯",
|
||||
"PÖPLI IX": "珀普利IX",
|
||||
"RAS ALGETHI": "帝座",
|
||||
"RASP": "拉斯普",
|
||||
"RATCH": "拉奇",
|
||||
"RD-4": "RD4",
|
||||
"REAF": "利夫",
|
||||
"REGNUS": "雷格努斯",
|
||||
"RIRGA BAY": "里尔加湾",
|
||||
"ROGUE 5": "罗格5",
|
||||
"SANGIS": "赤血",
|
||||
"SEASSE": "西斯",
|
||||
"SENGE 23": "新戈23",
|
||||
"SETIA": "赛提亚",
|
||||
"SEYSHEL BEACH": "塞舌尔海滩",
|
||||
"SHALLUS": "沙勒斯",
|
||||
"SHELT": "谢尔特",
|
||||
"SHETE": "赛特",
|
||||
"SIEMNOT": "席姆纳特",
|
||||
"SIRIUS": "天狼星",
|
||||
"SKAASH": "斯卡什",
|
||||
"SKAT BAY": "斯卡特湾",
|
||||
"SKITTER": "斯基特",
|
||||
"SLIF": "斯利夫",
|
||||
"SOCORRO III": "索科罗III",
|
||||
"SOLGHAST": "索尔加斯特",
|
||||
"SPHERION": "斯飞利昂",
|
||||
"STOR THA PRIME": "斯特萨主星",
|
||||
"STOUT": "斯图尔特",
|
||||
"SULFURA": "萨尔弗拉",
|
||||
"SUPER EARTH": "超级地球",
|
||||
"Stand by for further orders from Super Earth High Command": "等待超级地球最高指挥部的进一步指令",
|
||||
"TARSH": "塔尔什",
|
||||
"TERMADON": "特尔玛登",
|
||||
"TERREK": "泰雷克",
|
||||
"THE WEIR": "维尔",
|
||||
"TIBIT": "提比特",
|
||||
"TIEN KWAN": "天关",
|
||||
"TOTAL PLAYERS:": "参战潜兵:",
|
||||
"TRANDOR": "特兰道尔",
|
||||
"TROOST": "特鲁斯特",
|
||||
"TURING": "图灵",
|
||||
"UBANEA": "乌巴尼亚",
|
||||
"URSICA XI": "厄西卡XI",
|
||||
"USTOTU": "伍斯特图",
|
||||
"UVP ALPHA": "UVP阿尔法",
|
||||
"UVP BETA": "UVP贝塔",
|
||||
"UVP DELTA": "UVP德尔塔",
|
||||
"UVP GAMMA": "UVP伽马",
|
||||
"VALGAARD": "瓦尔加德",
|
||||
"VALMOX": "瓦尔莫克斯",
|
||||
"VANDALON IV": "万达隆IV",
|
||||
"VARYLIA 5": "瓦瑞拉亚5",
|
||||
"VEGA BAY": "织女一湾",
|
||||
"VEIL": "帷幕",
|
||||
"VELD": "维尔德",
|
||||
"VERNEN WELLS": "佛农井",
|
||||
"VINDEMITARIX PRIME": "文德米塔里克斯主星",
|
||||
"VIRIDIA PRIME": "维尔伊迪亚主星",
|
||||
"VOG-SOJOTH": "佛戈索约斯",
|
||||
"VOLTERRA": "沃尔泰拉",
|
||||
"WASAT": "天樽二",
|
||||
"WAYWARD": "逸泊",
|
||||
"WEZEN": "弧矢一",
|
||||
"WIDOW'S HARBOR": "寡妇港",
|
||||
"WILFORD STATION": "威尔福德站",
|
||||
"WRAITH": "幽灵",
|
||||
"X-45": "X45",
|
||||
"YED PRIOR": "天市右垣九",
|
||||
"ZAGON PRIME": "扎贡主星",
|
||||
"ZEA RUGOSIA": "泽亚鲁戈西亚",
|
||||
"ZEFIA": "赛飞亚",
|
||||
"ZEGEMA PARADISE": "泽格马乐土",
|
||||
"ZOSMA": "太微右垣五",
|
||||
"ZYGOS": "齐戈斯",
|
||||
"ZZANIAH PRIME": "藏尼亚主星"
|
||||
},
|
||||
"campaign_type": {
|
||||
"0": "解放战役",
|
||||
"1": "侦察战役",
|
||||
"2": "Story",
|
||||
"3": "Conquest",
|
||||
"4": "防御战",
|
||||
"5": "Deployment"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,782 @@
|
||||
{
|
||||
"1127": {
|
||||
"galacticEffectId": 1127,
|
||||
"name": "ARSENAL AUGMENTATION: EAGLE 500KG BOMB",
|
||||
"description": "High Command has authorized the temporary addition of the Eagle 500kg Bomb Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1128": {
|
||||
"galacticEffectId": 1128,
|
||||
"name": "ARSENAL AUGMENTATION: EAGLE 500KG BOMB",
|
||||
"description": "High Command has authorized the temporary addition of the Eagle 500kg Bomb Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1129": {
|
||||
"galacticEffectId": 1129,
|
||||
"name": "ARSENAL AUGMENTATION: SH-32 SHIELD GENERATOR PACK",
|
||||
"description": "High Command has authorized the temporary addition of the SH-32 Shield Generator Pack Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1130": {
|
||||
"galacticEffectId": 1130,
|
||||
"name": "ARSENAL AUGMENTATION: A/ARC-3 TESLA TOWER",
|
||||
"description": "High Command has authorized the temporary addition of the A/ARC-3 Tesla Tower Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1133": {
|
||||
"galacticEffectId": 1133,
|
||||
"name": "ARSENAL AUGMENTATION: A/M-12 MORTAR SENTRY",
|
||||
"description": "High Command has authorized the temporary addition of the A/M-12 Mortar Sentry Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1137": {
|
||||
"galacticEffectId": 1137,
|
||||
"name": "ARSENAL AUGMENTATION: RS-422 RAILGUN",
|
||||
"description": "High Command has authorized the temporary addition of the RS-422 Railgun Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1139": {
|
||||
"galacticEffectId": 1139,
|
||||
"name": "ARSENAL AUGMENTATION: EAGLE NAPALM AIRSTRIKE",
|
||||
"description": "High Command has authorized the temporary addition of the Eagle Napalm Airstrike Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1142": {
|
||||
"galacticEffectId": 1142,
|
||||
"name": "ARSENAL AUGMENTATION: EAGLE 500KG BOMB",
|
||||
"description": "High Command has authorized the temporary addition of the Eagle 500kg Bomb Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1143": {
|
||||
"galacticEffectId": 1143,
|
||||
"name": "ARSENAL AUGMENTATION: MG-43 MACHINE GUN",
|
||||
"description": "High Command has authorized the temporary addition of the MG-43 Machine Gun Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1145": {
|
||||
"galacticEffectId": 1145,
|
||||
"name": "ARSENAL AUGMENTATION: ORBITAL LASER",
|
||||
"description": "High Command has authorized the temporary addition of the Orbital Laser Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1147": {
|
||||
"galacticEffectId": 1147,
|
||||
"name": "ARSENAL AUGMENTATION: ORBITAL EMS STRIKE",
|
||||
"description": "High Command has authorized the temporary addition of the Orbital EMS Strike Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1148": {
|
||||
"galacticEffectId": 1148,
|
||||
"name": "ARSENAL AUGMENTATION: EXO-45 PATRIOT EXOSUIT",
|
||||
"description": "High Command has authorized the temporary addition of the EXO-45 Patriot Exosuit Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1149": {
|
||||
"galacticEffectId": 1149,
|
||||
"name": "ARSENAL AUGMENTATION: LIFT-850 JUMP PACK",
|
||||
"description": "High Command has authorized the temporary addition of the LIFT-850 Jump Pack Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1150": {
|
||||
"galacticEffectId": 1150,
|
||||
"name": "ARSENAL AUGMENTATION: B-1 SUPPLY PACK",
|
||||
"description": "High Command has authorized the temporary addition of the B-1 Supply Pack Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1152": {
|
||||
"galacticEffectId": 1152,
|
||||
"name": "ARSENAL AUGMENTATION: APW-1 ANTI-MATERIEL RIFLE",
|
||||
"description": "High Command has authorized the temporary addition of the APW-1 Anti-Materiel Rifle Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1153": {
|
||||
"galacticEffectId": 1153,
|
||||
"name": "ARSENAL AUGMENTATION: RS-422 RAILGUN",
|
||||
"description": "High Command has authorized the temporary addition of the RS-422 Railgun Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1154": {
|
||||
"galacticEffectId": 1154,
|
||||
"name": "ARSENAL AUGMENTATION: ORBITAL RAILCANNON STRIKE",
|
||||
"description": "High Command has authorized the temporary addition of the Orbital Railcannon Strike Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1155": {
|
||||
"galacticEffectId": 1155,
|
||||
"name": "ARSENAL AUGMENTATION: AC-8 AUTOCANNON",
|
||||
"description": "High Command has authorized the temporary addition of the AC-8 Autocannon Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1156": {
|
||||
"galacticEffectId": 1156,
|
||||
"name": "ARSENAL AUGMENTATION: EAGLE 110MM ROCKET PODS",
|
||||
"description": "High Command has authorized the temporary addition of the Eagle 110mm Rocket Pods Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1160": {
|
||||
"galacticEffectId": 1160,
|
||||
"name": "ARSENAL AUGMENTATION: ORBITAL EMS STRIKE",
|
||||
"description": "High Command has authorized the temporary addition of the Orbital EMS Strike Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1161": {
|
||||
"galacticEffectId": 1161,
|
||||
"name": "ARSENAL AUGMENTATION: EAGLE NAPALM AIRSTRIKE",
|
||||
"description": "High Command has authorized the temporary addition of the Eagle Napalm Airstrike Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1162": {
|
||||
"galacticEffectId": 1162,
|
||||
"name": "ARSENAL AUGMENTATION: EXO-45 PATRIOT EXOSUIT",
|
||||
"description": "High Command has authorized the temporary addition of the EXO-45 Patriot Exosuit Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1163": {
|
||||
"galacticEffectId": 1163,
|
||||
"name": "ARSENAL AUGMENTATION: EAGLE 110MM ROCKET PODS",
|
||||
"description": "High Command has authorized the temporary addition of the Eagle 110mm Rocket Pods Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1165": {
|
||||
"galacticEffectId": 1165,
|
||||
"name": "ARSENAL AUGMENTATION: LIFT-850 JUMP PACK",
|
||||
"description": "High Command has authorized the temporary addition of the LIFT-850 Jump Pack Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1166": {
|
||||
"galacticEffectId": 1166,
|
||||
"name": "ARSENAL AUGMENTATION: EAGLE 500KG BOMB",
|
||||
"description": "High Command has authorized the temporary addition of the Eagle 500kg Bomb Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1167": {
|
||||
"galacticEffectId": 1167,
|
||||
"name": "ARSENAL AUGMENTATION: FLAM-40 FLAMETHROWER",
|
||||
"description": "High Command has authorized the temporary addition of the FLAM-40 Flamethrower Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1168": {
|
||||
"galacticEffectId": 1168,
|
||||
"name": "ARSENAL AUGMENTATION: LAS-98 LASER CANNON",
|
||||
"description": "High Command has authorized the temporary addition of the LAS-98 Laser Cannon Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1169": {
|
||||
"galacticEffectId": 1169,
|
||||
"name": "ARSENAL AUGMENTATION: EAT-17 EXPENDABLE ANTI-TANK",
|
||||
"description": "High Command has authorized the temporary addition of the EAT-17 Expendable Anti-Tank Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1170": {
|
||||
"galacticEffectId": 1170,
|
||||
"name": "ARSENAL AUGMENTATION: RL-77 AIRBURST ROCKET LAUNCHER",
|
||||
"description": "High Command has authorized the temporary addition of the RL-77 Airburst Rocket Launcher Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1171": {
|
||||
"galacticEffectId": 1171,
|
||||
"name": "ARSENAL AUGMENTATION: MD-17 ANTI-TANK MINES",
|
||||
"description": "High Command has authorized the temporary addition of the MD-17 Anti-Tank Mines Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1172": {
|
||||
"galacticEffectId": 1172,
|
||||
"name": "ARSENAL AUGMENTATION: ORBITAL GAS STRIKE",
|
||||
"description": "High Command has authorized the temporary addition of the Orbital Gas Strike Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1173": {
|
||||
"galacticEffectId": 1173,
|
||||
"name": "ARSENAL AUGMENTATION: EXO-49 EMANCIPATOR EXOSUIT",
|
||||
"description": "High Command has authorized the temporary addition of the EXO-49 Emancipator Exosuit Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1174": {
|
||||
"galacticEffectId": 1174,
|
||||
"name": "ARSENAL AUGMENTATION: A/M-12 MORTAR SENTRY",
|
||||
"description": "High Command has authorized the temporary addition of the A/M-12 Mortar Sentry Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1175": {
|
||||
"galacticEffectId": 1175,
|
||||
"name": "ARSENAL AUGMENTATION: A/G-16 GATLING SENTRY",
|
||||
"description": "High Command has authorized the temporary addition of the A/G-16 Gatling Sentry Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1177": {
|
||||
"galacticEffectId": 1177,
|
||||
"name": "Black Hole",
|
||||
"description": "This planet has been turned into a black hole."
|
||||
},
|
||||
"1179": {
|
||||
"galacticEffectId": 1179,
|
||||
"name": "ARSENAL AUGMENTATION: AC-8 AUTOCANNON",
|
||||
"description": "High Command has authorized the temporary addition of the AC-8 Autocannon Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1181": {
|
||||
"galacticEffectId": 1181,
|
||||
"name": "ARSENAL AUGMENTATION: MLS-4X COMMANDO",
|
||||
"description": "High Command has authorized the temporary addition of the MLS-4X Commando Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1184": {
|
||||
"galacticEffectId": 1184,
|
||||
"name": "ARSENAL AUGMENTATION: MD-I4 INCENDIARY MINES",
|
||||
"description": "High Command has authorized the temporary addition of the MD-I4 Incendiary Mines Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1185": {
|
||||
"galacticEffectId": 1185,
|
||||
"name": "ARSENAL AUGMENTATION: MD-6 ANTI-PERSONNEL MINEFIELD",
|
||||
"description": "High Command has authorized the temporary addition of the MD-6 Anti-Personnel Minefield Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1186": {
|
||||
"galacticEffectId": 1186,
|
||||
"name": "Light Gloom",
|
||||
"description": "This world is lightly obscured by a gloom cloud."
|
||||
},
|
||||
"1187": {
|
||||
"galacticEffectId": 1187,
|
||||
"name": "Gloom",
|
||||
"description": "A gloom cloud enveloped this world."
|
||||
},
|
||||
"1188": {
|
||||
"galacticEffectId": 1188,
|
||||
"name": "Dense Gloom",
|
||||
"description": "A thick gloom cloud obscures this world from view."
|
||||
},
|
||||
"1190": {
|
||||
"galacticEffectId": 1190,
|
||||
"name": "Unreachable",
|
||||
"description": "Our sensors can no longer monitor this planet."
|
||||
},
|
||||
"1193": {
|
||||
"galacticEffectId": 1193,
|
||||
"name": "Gloom Border",
|
||||
"description": "This world is on the border of the interstellar wall of gloom."
|
||||
},
|
||||
"1194": {
|
||||
"galacticEffectId": 1194,
|
||||
"name": "ARSENAL AUGMENTATION: ORBITAL NAPALM BARRAGE",
|
||||
"description": "High Command has authorized the temporary addition of the Orbital Napalm Barrage Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1195": {
|
||||
"galacticEffectId": 1195,
|
||||
"name": "DSS Construction Site- Phase 1",
|
||||
"description": "Construction has began on the Democracy Space Station. The local populace is honored to host thousands of construction crews for this historic event."
|
||||
},
|
||||
"1196": {
|
||||
"galacticEffectId": 1196,
|
||||
"name": "DSS Logistics Hub",
|
||||
"description": "Parts for the Democracy Space Station are prefabricated all over the Galaxy, then shipped here to await assembly."
|
||||
},
|
||||
"1197": {
|
||||
"galacticEffectId": 1197,
|
||||
"name": "Xenoentomology Center",
|
||||
"description": "Those who study Terminid behavior, ecology and E-710 potential gather here for cross-disciplinary research."
|
||||
},
|
||||
"1198": {
|
||||
"galacticEffectId": 1198,
|
||||
"name": "Deep Mantle Forge Complex",
|
||||
"description": "The smelters and refineries on this planet turn crude materials into usable hardware."
|
||||
},
|
||||
"1199": {
|
||||
"galacticEffectId": 1199,
|
||||
"name": "DSS Construction Site- Phase 2",
|
||||
"description": "Democracy Space Station construction is well underway. The local economy is flourishing as the planet's populace has centupled, and all the Galaxy can feel their democratic fervor."
|
||||
},
|
||||
"1200": {
|
||||
"galacticEffectId": 1200,
|
||||
"name": "ARSENAL AUGMENTATION: A/ARC-3 TESLA TOWER",
|
||||
"description": "High Command has authorized the temporary addition of the A/ARC-3 Tesla Tower Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1202": {
|
||||
"galacticEffectId": 1202,
|
||||
"name": "THE JET BRIGADE (Enemies)",
|
||||
"description": "The Automatons have deployed a new series of specialized models on this planet. These upgraded bots utilize stolen Jump Pack technology, heartlessly pillaged from the bodies of fallen Helldivers and reverse-engineered into something nearly unrecognizeable."
|
||||
},
|
||||
"1203": {
|
||||
"galacticEffectId": 1203,
|
||||
"name": "THE JET BRIGADE",
|
||||
"description": "The Automatons have deployed a new series of specialized models on this planet. These upgraded bots utilize stolen Jump Pack technology, heartlessly pillaged from the bodies of fallen Helldivers and reverse-engineered into something nearly unrecognizeable."
|
||||
},
|
||||
"1204": {
|
||||
"galacticEffectId": 1204,
|
||||
"name": "LIBERTY DAY",
|
||||
"description": "This planet is celebrating Liberty Day."
|
||||
},
|
||||
"1205": {
|
||||
"galacticEffectId": 1205,
|
||||
"name": "DSS CONSTRUCTION SITE - PHASE 3",
|
||||
"description": "Construction of the Democracy Space Station is nearing completion. This project, which has employed millions, will soon take its place among the greatest achievements of Democracy."
|
||||
},
|
||||
"1206": {
|
||||
"galacticEffectId": 1206,
|
||||
"name": "TERMINID RESEARCH PRESERVE",
|
||||
"description": "Terminids are held safely within massive compounts on this planet for study and E-710 extraction."
|
||||
},
|
||||
"1207": {
|
||||
"galacticEffectId": 1207,
|
||||
"name": "ARSENAL AUGMENTATION: E/MG-101 HMG EMPLACEMENT",
|
||||
"description": "High Command has authorized the temporary addition of the E/MG-101 HMG Emplacement Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1209": {
|
||||
"galacticEffectId": 1209,
|
||||
"name": "EAGLE STORM",
|
||||
"description": "The DSS deploys <i=1>Eagle Strafing Runs</i> during missions."
|
||||
},
|
||||
"1210": {
|
||||
"galacticEffectId": 1210,
|
||||
"name": "ORBITAL BLOCKADE",
|
||||
"description": "<i=1>Hellpod Space Optimization</i> Booster is automatically active for all missions."
|
||||
},
|
||||
"1211": {
|
||||
"galacticEffectId": 1211,
|
||||
"name": "PLANETARY BOMBARDMENT",
|
||||
"description": "The DSS fires nonstop orbital bombardments from its suite of 77 PRESIDENTIAL-Class Cannons, providing planetwide artillery support and accelerating liberation efforts. Temporarily, also increases Reinforcement Budget by +1 per squad member and augments all loadouts with FX-12 Shield Generator Relay Stratagem."
|
||||
},
|
||||
"1212": {
|
||||
"galacticEffectId": 1212,
|
||||
"name": "EAGLE STORM (Marker)",
|
||||
"description": "Map marker for the Eagle Storm effect."
|
||||
},
|
||||
"1213": {
|
||||
"galacticEffectId": 1213,
|
||||
"name": "ORBITAL BLOCKADE (Marker)",
|
||||
"description": "Map marker for the Orbital Blockade effect."
|
||||
},
|
||||
"1214": {
|
||||
"galacticEffectId": 1214,
|
||||
"name": "BOMBARDMENT LIBERATION BOOST",
|
||||
"description": "Progress in Liberation Campaigns is accelerated by 150%."
|
||||
},
|
||||
"1215": {
|
||||
"galacticEffectId": 1215,
|
||||
"name": "ORBITAL BLOCKADE",
|
||||
"description": "<i=1>Defense Campaigns</i> cannot originate from this planet."
|
||||
},
|
||||
"1216": {
|
||||
"galacticEffectId": 1216,
|
||||
"name": "EAGLE STORM",
|
||||
"description": "Enemy progress in <i=1>Defense Campaigns</i> is slowed."
|
||||
},
|
||||
"1217": {
|
||||
"galacticEffectId": 1217,
|
||||
"name": "DEMOCRACY SPACE STATION",
|
||||
"description": "A Helldiver-operated weapon of mass liberation. Paid for with the blood of soldiers and the credits of taxpayers, this technological marvel is Democracy made manifest."
|
||||
},
|
||||
"1222": {
|
||||
"galacticEffectId": 1222,
|
||||
"name": "Regen Override",
|
||||
"description": "Regen Rate is set to a fixed 10000 per hour."
|
||||
},
|
||||
"1226": {
|
||||
"galacticEffectId": 1226,
|
||||
"name": "ARSENAL AUGMENTATION: FAF-14 SPEAR",
|
||||
"description": "High Command has authorized the temporary addition of the FAF-14 Spear Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1227": {
|
||||
"galacticEffectId": 1227,
|
||||
"name": "ARSENAL AUGMENTATION: MG-43 MACHINE GUN",
|
||||
"description": "High Command has authorized the temporary addition of the MG-43 Machine Gun Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1228": {
|
||||
"galacticEffectId": 1228,
|
||||
"name": "MERIDIAN BLACK HOLE (old map marker)",
|
||||
"description": "The prosperous Meridia was corrupted into a Terminid Supercolony, necessitating its destruction using the mysterious Dark Fluid. This galactic scar is all that remains."
|
||||
},
|
||||
"1229": {
|
||||
"galacticEffectId": 1229,
|
||||
"name": "MERIDIAN BLACK HOLE",
|
||||
"description": "The prosperous Meridia was corrupted into a Terminid Supercolony, necessitating its destruction using the mysterious Dark Fluid. This galactic scar is all that remains."
|
||||
},
|
||||
"1230": {
|
||||
"galacticEffectId": 1230,
|
||||
"name": "MERIDIAN BLACK HOLE",
|
||||
"description": "The prosperous Meridia was corrupted into a Terminid Supercolony, necessitating its destruction using the mysterious Dark Fluid. This galactic scar is all that remains. Advisory: volatile spacetime fluctuations currently prohibit FTL travel to the Meridian Black Hole."
|
||||
},
|
||||
"1231": {
|
||||
"galacticEffectId": 1231,
|
||||
"name": "ARSENAL AUGMENTATION: MD-8 GAS MINES",
|
||||
"description": "High Command has authorized the temporary addition of the MD-8 Gas Mines Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1232": {
|
||||
"galacticEffectId": 1232,
|
||||
"name": "FACTORY HUB",
|
||||
"description": "The hard workers on this planet produce goods vital to the war effort, as well as to the prosperity of Super Earth."
|
||||
},
|
||||
"1233": {
|
||||
"galacticEffectId": 1233,
|
||||
"name": "ARSENAL AUGMENTATION: STA-X3 W.A.S.P. LAUNCHER",
|
||||
"description": "High Command has authorized the temporary addition of the StA-X3 W.A.S.P. Launcher Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1234": {
|
||||
"galacticEffectId": 1234,
|
||||
"name": "CENTER OF SCIENCE",
|
||||
"description": "On this planet, the Ministry of Science's best and brightest work on their next breakthrough."
|
||||
},
|
||||
"1235": {
|
||||
"galacticEffectId": 1235,
|
||||
"name": "ARSENAL AUGMENTATION: MD-17 ANTI-TANK MINES",
|
||||
"description": "High Command has authorized the temporary addition of the MD-17 Anti-Tank Mines Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1236": {
|
||||
"galacticEffectId": 1236,
|
||||
"name": "CENTER FOR CIVILIAN SURVEILLANCE AND SAFETY",
|
||||
"description": "The Ministry of Truth analyzes citizens' activity, speech, data, DNA, RNA, and neural topology here."
|
||||
},
|
||||
"1237": {
|
||||
"galacticEffectId": 1237,
|
||||
"name": "ARSENAL AUGMENTATION: ORBITAL 380MM HE BARRAGE",
|
||||
"description": "High Command has authorized the temporary addition of the Orbital 380mm HE Barrage Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1238": {
|
||||
"galacticEffectId": 1238,
|
||||
"name": "OPERATIONAL SUPPORT",
|
||||
"description": "The presence of the DSS near this planet provides a slight boost to <i=1>Liberation Campaign</i> progress."
|
||||
},
|
||||
"1239": {
|
||||
"galacticEffectId": 1239,
|
||||
"name": "JET BRIGADE FACTORIES",
|
||||
"description": "Vertically enhanced Jet Brigade soldiers are produced here."
|
||||
},
|
||||
"1240": {
|
||||
"galacticEffectId": 1240,
|
||||
"name": "VERGE OF DESTRUCTION",
|
||||
"description": "This planet is under threat of destruction."
|
||||
},
|
||||
"1241": {
|
||||
"galacticEffectId": 1241,
|
||||
"name": "FRACTURED PLANET",
|
||||
"description": "All that remains of a planet torn apart by the Meridian singularity. A solemn reminder of the desolation Tyranny leaves in its wake."
|
||||
},
|
||||
"1242": {
|
||||
"galacticEffectId": 1242,
|
||||
"name": "MOVING PLANET",
|
||||
"description": "This planet is moving and is estimated to impact Super Earth."
|
||||
},
|
||||
"1243": {
|
||||
"galacticEffectId": 1243,
|
||||
"name": "PREDATOR STRAIN (Enemies)",
|
||||
"description": "A Gloom-enhanced strain of Terminids has been reported on this planet. SEAF patrols have been lured into ambushes, and picked off by unseen assailants. Every ounce of a Helldiver's superior senses will be required to hunt down this dangerous threat."
|
||||
},
|
||||
"1244": {
|
||||
"galacticEffectId": 1244,
|
||||
"name": "Spore Burst Strain (Enemies)",
|
||||
"description": "A Gloom-enhanced strain of Terminids has been reported on this planet. They can explode into spores."
|
||||
},
|
||||
"1245": {
|
||||
"galacticEffectId": 1245,
|
||||
"name": "PREDATOR STRAIN",
|
||||
"description": "A Gloom-enhanced strain of Terminids has been reported on this planet. SEAF patrols have been lured into ambushes, and picked off by unseen assailants. Every ounce of a Helldiver's superior senses will be required to hunt down this dangerous threat."
|
||||
},
|
||||
"1246": {
|
||||
"galacticEffectId": 1246,
|
||||
"name": "CAMPAIGN BLOCKER",
|
||||
"description": "Campaigns cannot be launched."
|
||||
},
|
||||
"1247": {
|
||||
"galacticEffectId": 1247,
|
||||
"name": "ARSENAL AUGMENTATION: MD-8 GAS MINES",
|
||||
"description": "High Command has authorized the temporary addition of the MD-8 Gas Mines Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1248": {
|
||||
"galacticEffectId": 1248,
|
||||
"name": "THE INCINERATION CORPS (Enemies)",
|
||||
"description": "An Automaton unit equipped with flame throwers and incendiary ammunition is active on this planet. These wanton arsonists will not rest until they have razed all that humankind holds dear."
|
||||
},
|
||||
"1249": {
|
||||
"galacticEffectId": 1249,
|
||||
"name": "THE INCINERATION CORPS",
|
||||
"description": "An Automaton unit equipped with flame throwers and incendiary ammunition is active on this planet. These wanton arsonists will not rest until they have razed all that humankind holds dear."
|
||||
},
|
||||
"1252": {
|
||||
"galacticEffectId": 1252,
|
||||
"name": "FRACTURED PLANET",
|
||||
"description": "All that remains of a planet torn apart by the Meridian singularity. A solemn reminder of the desolation Tyranny leaves in its wake."
|
||||
},
|
||||
"1254": {
|
||||
"galacticEffectId": 1254,
|
||||
"name": "ARSENAL AUGMENTATION: MG-206 HEAVY MACHINE GUN",
|
||||
"description": "High Command has authorized the temporary addition of the MG-206 Heavy Machine Gun Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1256": {
|
||||
"galacticEffectId": 1256,
|
||||
"name": "ARSENAL AUGMENTATION: E/GL-21 GRENADIER BATTLEMENT",
|
||||
"description": "High Command has authorized the temporary addition of the E/GL-21 Grenadier Battlement Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1261": {
|
||||
"galacticEffectId": 1261,
|
||||
"name": "EXOSUIT RESERVES",
|
||||
"description": "The presence of the DSS near this planet provides a -35% cooldown reduction to the EXO-45 Patriot Exosuit stratagem."
|
||||
},
|
||||
"1262": {
|
||||
"galacticEffectId": 1262,
|
||||
"name": "EXOSUIT RESERVES",
|
||||
"description": "The presence of the DSS near this planet provides a -35% cooldown reduction to the EXO-49 Emancipator Exosuit stratagem."
|
||||
},
|
||||
"1263": {
|
||||
"galacticEffectId": 1263,
|
||||
"name": "ARSENAL AUGMENTATION: M-105 STALWART",
|
||||
"description": "High Command has authorized the temporary addition of the M-105 Stalwart Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1267": {
|
||||
"galacticEffectId": 1267,
|
||||
"name": "ARSENAL AUGMENTATION: ORBITAL GAS STRIKE",
|
||||
"description": "High Command has authorized the temporary addition of the Orbital Gas Strike Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1268": {
|
||||
"galacticEffectId": 1268,
|
||||
"name": "NEGATIVE ENERGY LABORATORY",
|
||||
"description": "Scientists without fear of implosion or spaghettification study negative energy here."
|
||||
},
|
||||
"1269": {
|
||||
"galacticEffectId": 1269,
|
||||
"name": "The Great Host",
|
||||
"description": "The Illuminate invasion fleet, constructed in secret behind the veil of the Meridian Wormhole. It is headed for Super Earth itself."
|
||||
},
|
||||
"1274": {
|
||||
"galacticEffectId": 1274,
|
||||
"name": "ARSENAL AUGMENTATION: M-105 STALWART",
|
||||
"description": "High Command has authorized the temporary addition of the M-105 Stalwart Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1276": {
|
||||
"galacticEffectId": 1276,
|
||||
"name": "ARSENAL AUGMENTATION: FX-12 SHIELD GENERATOR RELAY",
|
||||
"description": "High Command has authorized the temporary addition of the FX-12 Shield Generator Relay Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1277": {
|
||||
"galacticEffectId": 1277,
|
||||
"name": "ARSENAL AUGMENTATION: ORBITAL NAPALM BARRAGE",
|
||||
"description": "High Command has authorized the temporary addition of the Orbital Napalm Barrage Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1279": {
|
||||
"galacticEffectId": 1279,
|
||||
"name": "ARSENAL AUGMENTATION: M-102 FAST RECONNAISSANCE VEHICLE",
|
||||
"description": "High Command has authorized the temporary addition of the M-102 Fast Reconnaissance Vehicle Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1280": {
|
||||
"galacticEffectId": 1280,
|
||||
"name": "ARSENAL AUGMENTATION: ORBITAL SMOKE STRIKE",
|
||||
"description": "High Command has authorized the temporary addition of the Orbital Smoke Strike Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1281": {
|
||||
"galacticEffectId": 1281,
|
||||
"name": "ARSENAL AUGMENTATION: EAGLE SMOKE STRIKE",
|
||||
"description": "High Command has authorized the temporary addition of the Eagle Smoke Strike Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1282": {
|
||||
"galacticEffectId": 1282,
|
||||
"name": "HELLDIVER TRAINING FACILITIES",
|
||||
"description": "Here, the best of the best go through the rigorous Helldiver training that will earn them their capes."
|
||||
},
|
||||
"1283": {
|
||||
"galacticEffectId": 1283,
|
||||
"name": "FACTORY STRIDER SURGE",
|
||||
"description": "Significantly higher Factory Strider numbers have been observed on this planet."
|
||||
},
|
||||
"1284": {
|
||||
"galacticEffectId": 1284,
|
||||
"name": "ARSENAL AUGMENTATION: GR-8 RECOILLESS RIFLE",
|
||||
"description": "High Command has authorized the temporary addition of the GR-8 Recoilless Rifle Stratagem to all Helldiver loadouts."
|
||||
},
|
||||
"1285": {
|
||||
"galacticEffectId": 1285,
|
||||
"name": "IMPALER RAMPAGE",
|
||||
"description": "Significantly higher Impaler numbers have been observed on this planet."
|
||||
},
|
||||
"1286": {
|
||||
"galacticEffectId": 1286,
|
||||
"name": "NEW HOPE CONSTRUCTION SITE",
|
||||
"description": "One of 3 Maximum Security Cities is under construction here."
|
||||
},
|
||||
"1287": {
|
||||
"galacticEffectId": 1287,
|
||||
"name": "NEW HOPE CITY",
|
||||
"description": "The flagship Maximum Security City. Impregnable to Tyranny; the future of the Federation."
|
||||
},
|
||||
"1288": {
|
||||
"galacticEffectId": 1288,
|
||||
"name": "SPORE BURST SCAVENGER RAMPAGE",
|
||||
"description": "Significantly increased levels of Spore Burst Scavengers have been reported on this planet."
|
||||
},
|
||||
"1291": {
|
||||
"galacticEffectId": 1291,
|
||||
"name": "NEW ASPIRATION CITY",
|
||||
"description": "One of 3 Maximum Security Cities. Impregnable to Tyranny; the future of the Federation."
|
||||
},
|
||||
"1292": {
|
||||
"galacticEffectId": 1292,
|
||||
"name": "NEW YEARNING CITY",
|
||||
"description": "One of 3 Maximum Security Cities. Impregnable to Tyranny; the future of the Federation."
|
||||
},
|
||||
"1293": {
|
||||
"galacticEffectId": 1293,
|
||||
"name": "CHARGER RAMPAGE",
|
||||
"description": "Significantly increased levels of Chargers have been reported on this planet."
|
||||
},
|
||||
"1295": {
|
||||
"galacticEffectId": 1295,
|
||||
"name": "TYRANNY PARK 2",
|
||||
"description": "The extensive Terminid enclosures here allow scientists to study Terminid behavior, and civilians to take pictures with Brood Commanders."
|
||||
},
|
||||
"1303": {
|
||||
"galacticEffectId": 1303,
|
||||
"name": "RUPTURE STRAIN (ENEMIES)",
|
||||
"description": "A deadly strain of ground-bursting Terminids is present on this planet."
|
||||
},
|
||||
"1304": {
|
||||
"galacticEffectId": 1304,
|
||||
"name": "OUTPOST ALPHA",
|
||||
"description": "The first manned site established in Gloom-infested space."
|
||||
},
|
||||
"1306": {
|
||||
"galacticEffectId": 1306,
|
||||
"name": "DRAGONROACHES (Enemies)",
|
||||
"description": "Terminid Dragonroaches menace the skies of this planet."
|
||||
},
|
||||
"1307": {
|
||||
"galacticEffectId": 1307,
|
||||
"name": "HIVE LORDS (Enemies)",
|
||||
"description": "Terminid Hive Lords have been detected on this planet."
|
||||
},
|
||||
"1308": {
|
||||
"galacticEffectId": 1308,
|
||||
"name": "HIVE LORDS",
|
||||
"description": "Terminid Hive Lords have been detected on this planet."
|
||||
},
|
||||
"1309": {
|
||||
"galacticEffectId": 1309,
|
||||
"name": "DRAGONROACHES",
|
||||
"description": "Terminid Dragonroaches menace the skies of this planet."
|
||||
},
|
||||
"1310": {
|
||||
"galacticEffectId": 1310,
|
||||
"name": "RUPTURE STRAIN",
|
||||
"description": "A deadly strain of ground-bursting Terminids is present on this planet."
|
||||
},
|
||||
"1311": {
|
||||
"galacticEffectId": 1311,
|
||||
"name": "HIVE WORLD",
|
||||
"description": "This planet has been completely infested by the Terminids, transformed inside and out into a hive of Tyranny. It is a source of Gloom spores."
|
||||
},
|
||||
"1324": {
|
||||
"galacticEffectId": 1324,
|
||||
"name": "ULTRAMAFIC MINE",
|
||||
"description": "A mine extracting platinum from deep-seated deposits of igneous rock."
|
||||
},
|
||||
"1329": {
|
||||
"galacticEffectId": 1329,
|
||||
"name": "LIBERTY DAY CELEBRATION",
|
||||
"description": "Super Earth, our home, is the center of Liberty Day Festivities. Together, all citizens can watch on television the annual Defense Parade, the Justice Executions, and of course, the Freedom Fireworks. \n\nOn this special day, Helldivers are encouraged to visit Super Earth and watch this year's fireworks from their Super Destroyers."
|
||||
},
|
||||
"1342": {
|
||||
"galacticEffectId": 1342,
|
||||
"name": "CENTER FOR THE CONFINEMENT OF DISSIDENCE (CECOD)",
|
||||
"description": "This planet-wide ultra-high-security facility provides ample space for the secure confinement of terrorist dissidents until they are fully rehabilitated and re-educated."
|
||||
},
|
||||
"1344": {
|
||||
"galacticEffectId": 1344,
|
||||
"name": "PANDORA BASE",
|
||||
"description": "The top-secret site where augmentations to the DSS are constructed."
|
||||
},
|
||||
"1352": {
|
||||
"galacticEffectId": 1352,
|
||||
"name": "CONVENTIONAL BLACK HOLE",
|
||||
"description": "This former planet is now nothing but a normal, stable black hole."
|
||||
},
|
||||
"1353": {
|
||||
"galacticEffectId": 1353,
|
||||
"name": "DATA CENTER",
|
||||
"description": "The Automatons store large amounts of encrypted information here."
|
||||
},
|
||||
"1355": {
|
||||
"galacticEffectId": 1355,
|
||||
"name": "HEAVY ARMOR SURGE",
|
||||
"description": "Prepare to counter high numbers of heavily armored enemies."
|
||||
},
|
||||
"1357": {
|
||||
"galacticEffectId": 1357,
|
||||
"name": "HULK SURGE",
|
||||
"description": "High numbers of enemy Hulks have been reported on this planet. Prepare to counter heavily armored enemies."
|
||||
},
|
||||
"1359": {
|
||||
"galacticEffectId": 1359,
|
||||
"name": "DEVASTATOR SURGE",
|
||||
"description": "The Automatons have deployed high numbers of Devastators to this planet."
|
||||
},
|
||||
"1360": {
|
||||
"description": "Cyborgs are deployed to the battlefield of this planet, leading their Automaton armies.",
|
||||
"galacticEffectId": 1360,
|
||||
"name": "CYBORGS (Enemies)"
|
||||
},
|
||||
"1361": {
|
||||
"description": "Cyborgs are deployed to the battlefield of this planet, leading their Automaton armies.",
|
||||
"galacticEffectId": 1361,
|
||||
"name": "CYBORGS"
|
||||
},
|
||||
"1373": {
|
||||
"galacticEffectId": 1373,
|
||||
"name": "CLASS 1 EXOSTORM",
|
||||
"description": "Isolated Exostorm pockets are materializing across the planet and rapidly gaining momentum."
|
||||
},
|
||||
"1374": {
|
||||
"galacticEffectId": 1374,
|
||||
"name": "CLASS 2 EXOSTORM",
|
||||
"description": "Exostorm fronts are coalescing into a dense system that threatens to engulf the entire planet."
|
||||
},
|
||||
"1375": {
|
||||
"galacticEffectId": 1375,
|
||||
"name": "CLASS 3 EXOSTORM",
|
||||
"description": "The Exostorm has reached critical mass, enveloping the planet in an ominous tempest that defies atmospheric physics."
|
||||
},
|
||||
"1376": {
|
||||
"galacticEffectId": 1376,
|
||||
"name": "The Void",
|
||||
"description": "This world is enveloped by The Void."
|
||||
},
|
||||
"1377": {
|
||||
"galacticEffectId": 1377,
|
||||
"name": "MINDLESS MASSES (Enemies)",
|
||||
"description": "The Illuminate are converting large numbers of Super Earth citizens into Voteless-type enemies on this planet. Prepare to face a twisted, indoctrinated horde."
|
||||
},
|
||||
"1378": {
|
||||
"galacticEffectId": 1378,
|
||||
"name": "MINDLESS MASSES",
|
||||
"description": "The Illuminate are converting large numbers of Super Earth citizens into Voteless-type enemies on this planet. Prepare to face a twisted, indoctrinated horde."
|
||||
},
|
||||
"1379": {
|
||||
"galacticEffectId": 1379,
|
||||
"name": "APPROPRIATORS",
|
||||
"description": "The Illuminate are deploying only their own kind to this planet, a clear indication of the operation's importance and/or xenophobic nature. Prepare to face foot soldiers, drones, and piloted mechanical constructs."
|
||||
},
|
||||
"1380": {
|
||||
"galacticEffectId": 1380,
|
||||
"name": "APPROPRIATORS (Enemies)",
|
||||
"description": "The Illuminate are deploying only their own kind to this planet, a clear indication of the operation's importance and/or xenophobic nature. Prepare to face foot soldiers, drones, and piloted mechanical constructs."
|
||||
},
|
||||
"1386": {
|
||||
"galacticEffectId": 1386,
|
||||
"name": "SPORE BURST STRAIN",
|
||||
"description": "A mutation causes Terminids on this planet to generate excess hormonal spores, which drive other similarly mutated Terminids into a frenzy. Prepare to face enemies that bolster each others' speed."
|
||||
},
|
||||
"1387": {
|
||||
"galacticEffectId": 1387,
|
||||
"name": "COMMUNICATIONS ARRAY",
|
||||
"description": "The relay towers on this planet are important to Automaton communications."
|
||||
},
|
||||
"1395": {
|
||||
"galacticEffectId": 1395,
|
||||
"name": "TERMINID CONTROL SYSTEM+",
|
||||
"description": "On this planet, a network of Termicide-dispensing towers repels Terminids emerging from the Gloom."
|
||||
},
|
||||
"1400": {
|
||||
"galacticEffectId": 1400,
|
||||
"name": "Heavy SEAF Presence",
|
||||
"description": "Conventional SEAF forces are heavily deployed across this planet, and may directly support Helldiver missions."
|
||||
},
|
||||
"1401": {
|
||||
"galacticEffectId": 1401,
|
||||
"name": "Heavy SEAF Presence (Enemies)",
|
||||
"description": "Conventional SEAF forces are heavily deployed across this planet, and may directly support Helldiver missions."
|
||||
},
|
||||
"1402": {
|
||||
"galacticEffectId": 1402,
|
||||
"name": "VOTE SNATCHERS (Enemies)",
|
||||
"description": "The Illuminate have unleashed the next wave of their democratically voided thralls on this planet. Expect violent voter suppression tactics."
|
||||
},
|
||||
"1403": {
|
||||
"galacticEffectId": 1403,
|
||||
"name": "VOTE SNATCHERS",
|
||||
"description": "The Illuminate have unleashed the next wave of their democratically voided thralls on this planet. Expect violent voter suppression tactics."
|
||||
},
|
||||
"1406": {
|
||||
"galacticEffectId": 1406,
|
||||
"name": "SIDEBOARD VOID",
|
||||
"description": "This planet is within a SIDEBOARD area, specifically SIDEBOARD VOID"
|
||||
},
|
||||
"1407": {
|
||||
"galacticEffectId": 1407,
|
||||
"name": "VOID GATEWAY",
|
||||
"description": "This planet serves as a connective point between this galaxy and the Void, allowing travel between the two spaces."
|
||||
},
|
||||
"1412": {
|
||||
"galacticEffectId": 1412,
|
||||
"name": "ANOMALY LOCATION",
|
||||
"description": "All readings, or the notable lack thereof, indicate that the source of the Void anomaly is located here. All effort must go to enabling FTL travel to these coordinates."
|
||||
},
|
||||
"1413": {
|
||||
"galacticEffectId": 1413,
|
||||
"name": "INVASION FLEET (Enemies)",
|
||||
"description": "The main invasion fleet of the Illuminate, from arrogant Overseers to throngs of brainwashed Super Earth civilians, are present on this planet. Exterminate on sight or else risk violent resistance, or worse, treasonous propaganda."
|
||||
},
|
||||
"1414": {
|
||||
"galacticEffectId": 1414,
|
||||
"name": "INVASION FLEET",
|
||||
"description": "The main invasion fleet of the Illuminate, from arrogant Overseers to throngs of brainwashed Super Earth civilians, are present on this planet. Exterminate on sight or else risk violent resistance, or worse, treasonous propaganda."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,531 @@
|
||||
{
|
||||
"ACTIVE PLANETS": "活跃行星",
|
||||
"AWAITING MAJOR ORDER": "等待重要指令",
|
||||
"TOTAL PLAYERS:": "玩家总数:",
|
||||
"Stand by for further orders from Super Earth High Command": "等待超级地球最高指挥部下发重要指令",
|
||||
"Major Order ends in:": "重要指令结束时间:",
|
||||
"MAJOR ORDER": "重要指令",
|
||||
"Defended Planets": "防守星球",
|
||||
"MEDALS": "奖章",
|
||||
"DEFEND": "防守",
|
||||
"Galaxy Stats": "星系状态",
|
||||
"Oshaune": "欧绍恩",
|
||||
"Martale": "玛尔特",
|
||||
"Hellmire": "海尔迈尔",
|
||||
"Matar Bay": "玛塔",
|
||||
"Penta": "彭塔",
|
||||
"Estanu": "伊斯塔努",
|
||||
"Choohe": "丘伊",
|
||||
"Chort Bay": "雀特湾",
|
||||
"Fori Prime": "佛里主星",
|
||||
"Super Earth": "超级地球",
|
||||
"Marfark": "玛尔法克",
|
||||
"Crimsica": "克里姆西卡",
|
||||
"Menkent": "库楼三",
|
||||
"Lesath": "尾宿八",
|
||||
"Vernen Wells": "佛农井",
|
||||
"Nivel 43": "尼维尔43",
|
||||
"Durgen": "德尔根",
|
||||
"Tibit": "提比特",
|
||||
"Draupnir": "德罗普尼尔",
|
||||
"Malevelon Creek": "麦拉芬蒙河",
|
||||
"Maia": "昂宿四",
|
||||
"Fenrir III": "芬里尔III",
|
||||
"Errata Prime": "艾拉特主星",
|
||||
"Troost": "特鲁斯特",
|
||||
"Ustotu": "伍斯特图",
|
||||
"Turing": "图灵",
|
||||
"Angel's Venture": "天使投资",
|
||||
"Ingmar": "英格玛",
|
||||
"Tien Kwan": "天关",
|
||||
"Ubanea": "乌巴尼亚",
|
||||
"Vandalon IV": "万达隆IV",
|
||||
"Meridia": "默里迪亚",
|
||||
"Veld": "维尔德",
|
||||
"Mantes": "蒙特斯",
|
||||
"Klen Dahth II": "克伦达斯II",
|
||||
"Pathfinder V": "开拓者V",
|
||||
"Widow's Harbor": "寡妇港",
|
||||
"New Haven": "纽黑文",
|
||||
"Pilen V": "皮伦V",
|
||||
"Hydrofall Prime": "水瀑主星",
|
||||
"Zea Rugosia": "泽亚鲁戈西亚",
|
||||
"Darrowsport": "达罗斯波特",
|
||||
"Fornskogur II": "福恩斯科古尔",
|
||||
"Midasburg": "弥达斯堡",
|
||||
"Cerberus IIIc": "刻耳帕洛斯IIIc",
|
||||
"Prosperity Falls": "繁荣瀑布",
|
||||
"Okul VI": "欧库VI",
|
||||
"Martyr's Bay": "烈士湾",
|
||||
"Freedom Peak": "弗里敦峰",
|
||||
"Fort Union": "联合堡",
|
||||
"Kelvinor": "开尔文奥尔",
|
||||
"Wraith": "幽灵",
|
||||
"Igla": "伊格勒",
|
||||
"New Kiruna": "新基鲁纳",
|
||||
"Fort Justice": "正义堡",
|
||||
"Zegema Paradise": "泽格马乐土",
|
||||
"Providence": "普罗维登斯",
|
||||
"Primordia": "普莱默迪亚",
|
||||
"Sulfura": "萨尔弗拉",
|
||||
"Nublaria I": "努布拉里亚I",
|
||||
"Krakatwo": "克拉克图",
|
||||
"Volterra": "沃尔泰拉",
|
||||
"Crucible": "熔炉",
|
||||
"Veil": "帷幕",
|
||||
"Marre IV": "马尔IV",
|
||||
"Fort Sanctuary": "庇护堡",
|
||||
"Seyshel Beach": "塞舌尔海滩",
|
||||
"Effluvia": "艾芙鲁维亚",
|
||||
"Solghast": "索尔加斯特",
|
||||
"Dilvuia": "迪卢维亚",
|
||||
"Viridia Prime": "维尔伊迪主星",
|
||||
"Obari": "欧巴里",
|
||||
"Myradesh": "米拉戴什",
|
||||
"Atrama": "阿特拉玛",
|
||||
"Emeria": "埃梅里亚",
|
||||
"Barabos": "巴勒博斯",
|
||||
"Fenmire": "范迈尔",
|
||||
"Mastia": "玛斯蒂亚",
|
||||
"Shallus": "沙勒斯",
|
||||
"Krakabos": "克拉克博斯",
|
||||
"Iridica": "艾丽迪卡",
|
||||
"Azterra": "艾孜泰拉",
|
||||
"Azur Secundus": "艾热尔次星",
|
||||
"Ivis": "艾维斯",
|
||||
"Slif": "斯利夫",
|
||||
"Caramoor": "开勒莫尔",
|
||||
"Kharst": "喀斯特",
|
||||
"Eukoria": "欧科里亚",
|
||||
"Myrium": "梅里翁",
|
||||
"Kerth Secundus": "克斯次星",
|
||||
"Parsh": "帕尔什",
|
||||
"Reaf": "利夫",
|
||||
"Irulta": "艾鲁尔塔",
|
||||
"Emorath": "艾莫拉斯",
|
||||
"Ilduna Prime": "伊尔都纳主星",
|
||||
"Maw": "深渊",
|
||||
"Borea": "博瑞亚",
|
||||
"Curia": "居里亚",
|
||||
"Tarsh": "塔尔什",
|
||||
"Shelt": "谢尔特",
|
||||
"Imber": "因博尔",
|
||||
"Blistica": "布里斯提卡",
|
||||
"Ratch": "拉奇",
|
||||
"Julheim": "尤尔海姆",
|
||||
"Valgaard": "瓦尔加德",
|
||||
"Arkturus": "阿克图勒斯",
|
||||
"Esker": "艾斯克尔",
|
||||
"Terrek": "泰雷克",
|
||||
"Cirrus": "希勒斯",
|
||||
"Heeth": "希斯",
|
||||
"Alta V": "奥尔塔V",
|
||||
"Ursica XI": "厄西卡XI",
|
||||
"Inari": "伊纳里",
|
||||
"Skaash": "斯卡什",
|
||||
"Moradesh": "莫拉戴什",
|
||||
"Rasp": "拉斯普",
|
||||
"Bashyr": "巴希尔",
|
||||
"Regnus": "雷格努斯",
|
||||
"Mog": "莫格",
|
||||
"Valmox": "瓦尔莫克斯",
|
||||
"Iro": "伊罗",
|
||||
"Grafmere": "格拉夫米尔",
|
||||
"New Stockholm": "新斯德哥尔摩",
|
||||
"Oasis": "绿洲",
|
||||
"Genesis Prime": "创世主星",
|
||||
"Outpost 32": "32号哨站",
|
||||
"Calypso": "卡利普索",
|
||||
"Elysian Meadows": "埃律西昂草原",
|
||||
"Alderidge Cove": "阿尔德里奇湾",
|
||||
"Trandor": "特兰道尔",
|
||||
"East Iridium Trading Bay": "东铱贸易湾",
|
||||
"Liberty Ridge": "解放岭",
|
||||
"Baldrick Prime": "巴尔德里克主星",
|
||||
"The Weir": "维尔",
|
||||
"Kuper": "库珀",
|
||||
"Oslo Station": "奥斯陆站",
|
||||
"Pöpli IX": "珀普利IX",
|
||||
"Gunvald": "古恩瓦尔德",
|
||||
"Dolph": "多尔夫",
|
||||
"Bekvam III": "贝克温III",
|
||||
"Duma Tyr": "杜马提尔",
|
||||
"Aeris Pass": "亚萨关隘",
|
||||
"Aurora Bay": "极光湾",
|
||||
"Gaellivare": "耶利瓦勒",
|
||||
"Vog-Sojoth": "佛戈索约斯",
|
||||
"Kirrik": "基里克",
|
||||
"Mortax Prime": "摩尔塔克斯主星",
|
||||
"Wilford Station": "威尔福德站",
|
||||
"Pioneer II": "先驱II",
|
||||
"Erson Sands": "厄尔森桑兹",
|
||||
"Socorro III": "索科罗III",
|
||||
"Bore Rock": "博尔岩",
|
||||
"Darius II": "大流士II",
|
||||
"Acamar IV": "天园六IV",
|
||||
"Achernar Secundus": "水委一次星",
|
||||
"Achird III": "王良三III",
|
||||
"Acrab XI": "房宿四XI",
|
||||
"Acrux IX": "十字架二IX",
|
||||
"Acubens Prime": "柳宿增三主星",
|
||||
"Adhara": "弧矢七",
|
||||
"Afoyay Bay": "艾福亚湾",
|
||||
"Alairt III": "艾列尔特III",
|
||||
"Alamak VII": "天大将军——VII",
|
||||
"Alaraph": "右执法",
|
||||
"Alathfar XI": "织女增三XI",
|
||||
"Andar": "安达尔",
|
||||
"Asperoth Prime": "阿斯佩洛斯主星",
|
||||
"Bellatrix": "参宿五",
|
||||
"Botein": "天阴四",
|
||||
"Osupsam": "欧苏普森",
|
||||
"Brink-2": "布林克2",
|
||||
"Bunda Secundus": "天垒城一次星",
|
||||
"Canopus": "老人",
|
||||
"Caph": "王良一",
|
||||
"Castor": "北河二",
|
||||
"Mort": "莫特",
|
||||
"Charbal-VII": "查巴尔VII",
|
||||
"Charon Prime": "卡戎主星",
|
||||
"Choepessa IV": "科埃佩萨IV",
|
||||
"Claorell": "可洛尔",
|
||||
"Clasa": "克拉萨",
|
||||
"Demiurg": "戴米尔基",
|
||||
"Deneb Secundus": "天津四次星",
|
||||
"Electra Bay": "昂宿一湾",
|
||||
"Enuliale": "安努力亚",
|
||||
"Epsilon Phoencis VI": "艾普斯林芬赛斯VI",
|
||||
"Gacrux": "十字架一",
|
||||
"Gar Haren": "轧尔哈伦",
|
||||
"Gatria": "盖尔崔亚",
|
||||
"Gemma": "贯索四",
|
||||
"Grand Errant": "大艾伦特",
|
||||
"Hadr": "马腹一",
|
||||
"Haka": "哈卡",
|
||||
"Haldus": "海德斯",
|
||||
"Halies Port": "海利斯港",
|
||||
"Herthon Secundus": "赫尔松次主星",
|
||||
"Hesoe Prime": "海索主星",
|
||||
"Heze Bay": "角宿二湾",
|
||||
"Hort": "霍尔特",
|
||||
"Hydrobius": "海德罗毕亚斯",
|
||||
"Karlia": "卡利亚",
|
||||
"Keid": "九州殊口增七",
|
||||
"Khandark": "勘达尔克",
|
||||
"Klaka 5": "克拉卡5",
|
||||
"Kneth Port": "克奈斯港",
|
||||
"Kraz": "轸宿四",
|
||||
"Kuma": "天棓二",
|
||||
"Lastofe": "赖斯斗夫",
|
||||
"Leng Scundus": "蓝恩次星",
|
||||
"Meissa": "觜宿一",
|
||||
"Mekbuda": "井宿七",
|
||||
"Merak": "北斗二",
|
||||
"Merga IV": "玄戈增二IV",
|
||||
"Minchir": "敏切尔",
|
||||
"Mintoria": "敏托瑞亚",
|
||||
"Morida 9": "摩帝亚9",
|
||||
"Nabatea Secundus": "那贝塔次星",
|
||||
"Navi VII": "阁道二",
|
||||
"Overgoe Prime": "欧维果主星",
|
||||
"Pandion-XXIV": "帕狄恩XXIV",
|
||||
"Partion": "帕尔晨",
|
||||
"Peacock": "孔雀十一",
|
||||
"Phact Bay": "丈人一湾",
|
||||
"Pherkad Secundus": "北极一次星",
|
||||
"Polaris Prime": "北极星主星",
|
||||
"Pollux 31": "北河三31",
|
||||
"Prasa": "普拉萨",
|
||||
"Propus": "五诸侯三",
|
||||
"Ras Algethi": "帝坐",
|
||||
"RD-4": "RD4",
|
||||
"Rogue 5": "罗格5",
|
||||
"Rirga Bay": "里尔加湾",
|
||||
"Seasse": "西斯",
|
||||
"Senge 23": "新戈23",
|
||||
"Setia": "赛提亚",
|
||||
"Shete": "赛特",
|
||||
"Siemnot": "席姆纳特",
|
||||
"Sirius": "天狼星",
|
||||
"Skat bay": "斯卡特湾",
|
||||
"Spherion": "斯飞利昂",
|
||||
"Stor Tha Prime": "斯特萨主星",
|
||||
"Stout": "斯图尔特",
|
||||
"Termadon": "特尔玛登",
|
||||
"Varylia 5": "瓦瑞拉亚",
|
||||
"Wasat": "天樽二",
|
||||
"Vega Bay": "织女一湾",
|
||||
"Wezen": "弧矢一",
|
||||
"Vindemitarix Prime": "文德米塔里克斯主星",
|
||||
"X-45": "X45",
|
||||
"Yed Prior": "天市右垣九",
|
||||
"Zefia": "塞飞亚",
|
||||
"Zosma": "太微右垣五",
|
||||
"Zzaniah Prime": "藏尼亚主星",
|
||||
"Skitter": "斯基特",
|
||||
"Euphoria III": "欧福利亚III",
|
||||
"Diaspora X": "大流散X",
|
||||
"Gemstone Bluffs": "宝石崖",
|
||||
"Zagon Prime": "扎贡主星",
|
||||
"Omicron": "奥密克戎",
|
||||
"Cyberstan": "生化斯坦",
|
||||
"OSHAUNE": "欧绍恩",
|
||||
"MARTALE": "玛尔特",
|
||||
"HELLMIRE": "海尔迈尔",
|
||||
"MATAR BAY": "玛塔",
|
||||
"PENTA": "彭塔",
|
||||
"ESTANU": "伊斯塔努",
|
||||
"CHOOHE": "丘伊",
|
||||
"CHORT BAY": "雀特湾",
|
||||
"FORI PRIME": "佛里主星",
|
||||
"SUPER EARTH": "超级地球",
|
||||
"MARFARK": "玛尔法克",
|
||||
"CRIMSICA": "克里姆西卡",
|
||||
"MENKENT": "库楼三",
|
||||
"LESATH": "尾宿八",
|
||||
"VERNEN WELLS": "佛农井",
|
||||
"NIVEL 43": "尼维尔43",
|
||||
"DURGEN": "德尔根",
|
||||
"TIBIT": "提比特",
|
||||
"DRAUPNIR": "德罗普尼尔",
|
||||
"MALEVELON CREEK": "麦拉芬蒙河",
|
||||
"MAIA": "昂宿四",
|
||||
"FENRIR III": "芬里尔III",
|
||||
"ERRATA PRIME": "艾拉特主星",
|
||||
"TROOST": "特鲁斯特",
|
||||
"USTOTU": "伍斯特图",
|
||||
"TURING": "图灵",
|
||||
"ANGEL'S VENTURE": "天使投资",
|
||||
"INGMAR": "英格玛",
|
||||
"TIEN KWAN": "天关",
|
||||
"UBANEA": "乌巴尼亚",
|
||||
"VANDALON IV": "万达隆IV",
|
||||
"MERIDIA": "默里迪亚",
|
||||
"VELD": "维尔德",
|
||||
"MANTES": "蒙特斯",
|
||||
"KLEN DAHTH II": "克伦达斯II",
|
||||
"PATHFINDER V": "开拓者V",
|
||||
"WIDOW'S HARBOR": "寡妇港",
|
||||
"NEW HAVEN": "纽黑文",
|
||||
"PILEN V": "皮伦V",
|
||||
"HYDROFALL PRIME": "水瀑主星",
|
||||
"ZEA RUGOSIA": "泽亚鲁戈西亚",
|
||||
"DARROWSPORT": "达罗斯波特",
|
||||
"FORNSKOGUR II": "福恩斯科古尔",
|
||||
"MIDASBURG": "弥达斯堡",
|
||||
"CERBERUS IIIC": "刻耳帕洛斯IIIc",
|
||||
"PROSPERITY FALLS": "繁荣瀑布",
|
||||
"OKUL VI": "欧库VI",
|
||||
"MARTYR'S BAY": "烈士湾",
|
||||
"FREEDOM PEAK": "弗里敦峰",
|
||||
"FORT UNION": "联合堡",
|
||||
"KELVINOR": "开尔文奥尔",
|
||||
"WRAITH": "幽灵",
|
||||
"IGLA": "伊格勒",
|
||||
"NEW KIRUNA": "新基鲁纳",
|
||||
"FORT JUSTICE": "正义堡",
|
||||
"ZEGEMA PARADISE": "泽格马乐土",
|
||||
"PROVIDENCE": "普罗维登斯",
|
||||
"PRIMORDIA": "普莱默迪亚",
|
||||
"SULFURA": "萨尔弗拉",
|
||||
"NUBLARIA I": "努布拉里亚I",
|
||||
"KRAKATWO": "克拉克图",
|
||||
"VOLTERRA": "沃尔泰拉",
|
||||
"CRUCIBLE": "熔炉",
|
||||
"VEIL": "帷幕",
|
||||
"MARRE IV": "马尔IV",
|
||||
"FORT SANCTUARY": "庇护堡",
|
||||
"SEYSHEL BEACH": "塞舌尔海滩",
|
||||
"EFFLUVIA": "艾芙鲁维亚",
|
||||
"SOLGHAST": "索尔加斯特",
|
||||
"DILVUIA": "迪卢维亚",
|
||||
"VIRIDIA PRIME": "维尔伊迪主星",
|
||||
"OBARI": "欧巴里",
|
||||
"MYRADESH": "米拉戴什",
|
||||
"ATRAMA": "阿特拉玛",
|
||||
"EMERIA": "埃梅里亚",
|
||||
"BARABOS": "巴勒博斯",
|
||||
"FENMIRE": "范迈尔",
|
||||
"MASTIA": "玛斯蒂亚",
|
||||
"SHALLUS": "沙勒斯",
|
||||
"KRAKABOS": "克拉克博斯",
|
||||
"IRIDICA": "艾丽迪卡",
|
||||
"AZTERRA": "艾孜泰拉",
|
||||
"AZUR SECUNDUS": "艾热尔次星",
|
||||
"IVIS": "艾维斯",
|
||||
"SLIF": "斯利夫",
|
||||
"CARAMOOR": "开勒莫尔",
|
||||
"KHARST": "喀斯特",
|
||||
"EUKORIA": "欧科里亚",
|
||||
"MYRIUM": "梅里翁",
|
||||
"KERTH SECUNDUS": "克斯次星",
|
||||
"PARSH": "帕尔什",
|
||||
"REAF": "利夫",
|
||||
"IRULTA": "艾鲁尔塔",
|
||||
"EMORATH": "艾莫拉斯",
|
||||
"ILDUNA PRIME": "伊尔都纳主星",
|
||||
"MAW": "深渊",
|
||||
"BOREA": "博瑞亚",
|
||||
"CURIA": "居里亚",
|
||||
"TARSH": "塔尔什",
|
||||
"SHELT": "谢尔特",
|
||||
"IMBER": "因博尔",
|
||||
"BLISTICA": "布里斯提卡",
|
||||
"RATCH": "拉奇",
|
||||
"JULHEIM": "尤尔海姆",
|
||||
"VALGAARD": "瓦尔加德",
|
||||
"ARKTURUS": "阿克图勒斯",
|
||||
"ESKER": "艾斯克尔",
|
||||
"TERREK": "泰雷克",
|
||||
"CIRRUS": "希勒斯",
|
||||
"HEETH": "希斯",
|
||||
"ALTA V": "奥尔塔V",
|
||||
"URSICA XI": "厄西卡XI",
|
||||
"INARI": "伊纳里",
|
||||
"SKAASH": "斯卡什",
|
||||
"MORADESH": "莫拉戴什",
|
||||
"RASP": "拉斯普",
|
||||
"BASHYR": "巴希尔",
|
||||
"REGNUS": "雷格努斯",
|
||||
"MOG": "莫格",
|
||||
"VALMOX": "瓦尔莫克斯",
|
||||
"IRO": "伊罗",
|
||||
"GRAFMERE": "格拉夫米尔",
|
||||
"NEW STOCKHOLM": "新斯德哥尔摩",
|
||||
"OASIS": "绿洲",
|
||||
"GENESIS PRIME": "创世主星",
|
||||
"OUTPOST 32": "32号哨站",
|
||||
"CALYPSO": "卡利普索",
|
||||
"ELYSIAN MEADOWS": "埃律西昂草原",
|
||||
"ALDERIDGE COVE": "阿尔德里奇湾",
|
||||
"TRANDOR": "特兰道尔",
|
||||
"EAST IRIDIUM TRADING BAY": "东铱贸易湾",
|
||||
"LIBERTY RIDGE": "解放岭",
|
||||
"BALDRICK PRIME": "巴尔德里克主星",
|
||||
"THE WEIR": "维尔",
|
||||
"KUPER": "库珀",
|
||||
"OSLO STATION": "奥斯陆站",
|
||||
"PÖPLI IX": "珀普利IX",
|
||||
"GUNVALD": "古恩瓦尔德",
|
||||
"DOLPH": "多尔夫",
|
||||
"BEKVAM III": "贝克温III",
|
||||
"DUMA TYR": "杜马提尔",
|
||||
"AERIS PASS": "亚萨关隘",
|
||||
"AURORA BAY": "极光湾",
|
||||
"GAELLIVARE": "耶利瓦勒",
|
||||
"VOG-SOJOTH": "佛戈索约斯",
|
||||
"KIRRIK": "基里克",
|
||||
"MORTAX PRIME": "摩尔塔克斯主星",
|
||||
"WILFORD STATION": "威尔福德站",
|
||||
"PIONEER II": "先驱II",
|
||||
"ERSON SANDS": "厄尔森桑兹",
|
||||
"SOCORRO III": "索科罗III",
|
||||
"BORE ROCK": "博尔岩",
|
||||
"DARIUS II": "大流士II",
|
||||
"ACAMAR IV": "天园六IV",
|
||||
"ACHERNAR SECUNDUS": "水委一次星",
|
||||
"ACHIRD III": "王良三III",
|
||||
"ACRAB XI": "房宿四XI",
|
||||
"ACRUX IX": "十字架二IX",
|
||||
"ACUBENS PRIME": "柳宿增三主星",
|
||||
"ADHARA": "弧矢七",
|
||||
"AFOYAY BAY": "艾福亚湾",
|
||||
"AIN-5": "毕宿—5",
|
||||
"ALAIRT III": "艾列尔特III",
|
||||
"ALAMAK VII": "天大将军——VII",
|
||||
"ALARAPH": "右执法",
|
||||
"ALATHFAR XI": "织女增三XI",
|
||||
"ANDAR": "安达尔",
|
||||
"ASPEROTH PRIME": "阿斯佩洛斯主星",
|
||||
"BELLATRIX": "参宿五",
|
||||
"BOTEIN": "天阴四",
|
||||
"OSUPSAM": "欧苏普森",
|
||||
"BRINK-2": "布林克2",
|
||||
"BUNDA SECUNDUS": "天垒城一次星",
|
||||
"CANOPUS": "老人",
|
||||
"CAPH": "王良一",
|
||||
"CASTOR": "北河二",
|
||||
"MORT": "莫特",
|
||||
"CHARBAL-VII": "查巴尔VII",
|
||||
"CHARON PRIME": "卡戎主星",
|
||||
"CHOEPESSA IV": "科埃佩萨IV",
|
||||
"CLAORELL": "可洛尔",
|
||||
"CLASA": "克拉萨",
|
||||
"DEMIURG": "戴米尔基",
|
||||
"DENEB SECUNDUS": "天津四次星",
|
||||
"ELECTRA BAY": "昂宿一湾",
|
||||
"ENULIALE": "安努力亚",
|
||||
"EPSILON PHOENCIS VI": "艾普斯林芬赛斯VI",
|
||||
"GACRUX": "十字架一",
|
||||
"GAR HAREN": "轧尔哈伦",
|
||||
"GATRIA": "盖尔崔亚",
|
||||
"GEMMA": "贯索四",
|
||||
"GRAND ERRANT": "大艾伦特",
|
||||
"HADR": "马腹一",
|
||||
"HAKA": "哈卡",
|
||||
"HALDUS": "海德斯",
|
||||
"HALIES PORT": "海利斯港",
|
||||
"HERTHON SECUNDUS": "赫尔松次主星",
|
||||
"HESOE PRIME": "海索主星",
|
||||
"HEZE BAY": "角宿二湾",
|
||||
"HORT": "霍尔特",
|
||||
"HYDROBIUS": "海德罗毕亚斯",
|
||||
"KARLIA": "卡利亚",
|
||||
"KEID": "九州殊口增七",
|
||||
"KHANDARK": "勘达尔克",
|
||||
"KLAKA 5": "克拉卡5",
|
||||
"KNETH PORT": "克奈斯港",
|
||||
"KRAZ": "轸宿四",
|
||||
"KUMA": "天棓二",
|
||||
"LASTOFE": "赖斯斗夫",
|
||||
"LENG SCUNDUS": "蓝恩次星",
|
||||
"MEISSA": "觜宿一",
|
||||
"MEKBUDA": "井宿七",
|
||||
"MERAK": "北斗二",
|
||||
"MERGA IV": "玄戈增二IV",
|
||||
"MINCHIR": "敏切尔",
|
||||
"MINTORIA": "敏托瑞亚",
|
||||
"MORIDA 9": "摩帝亚9",
|
||||
"NABATEA SECUNDUS": "那贝塔次星",
|
||||
"NAVI VII": "阁道二",
|
||||
"OVERGOE PRIME": "欧维果主星",
|
||||
"PANDION-XXIV": "帕狄恩XXIV",
|
||||
"PARTION": "帕尔晨",
|
||||
"PEACOCK": "孔雀十一",
|
||||
"PHACT BAY": "丈人一湾",
|
||||
"PHERKAD SECUNDUS": "北极一次星",
|
||||
"POLARIS PRIME": "北极星主星",
|
||||
"POLLUX 31": "北河三31",
|
||||
"PRASA": "普拉萨",
|
||||
"PROPUS": "五诸侯三",
|
||||
"RAS ALGETHI": "帝坐",
|
||||
"ROGUE 5": "罗格5",
|
||||
"RIRGA BAY": "里尔加湾",
|
||||
"SEASSE": "西斯",
|
||||
"SENGE 23": "新戈23",
|
||||
"SETIA": "赛提亚",
|
||||
"SHETE": "赛特",
|
||||
"SIEMNOT": "席姆纳特",
|
||||
"SIRIUS": "天狼星",
|
||||
"SKAT BAY": "斯卡特湾",
|
||||
"SPHERION": "斯飞利昂",
|
||||
"STOR THA PRIME": "斯特萨主星",
|
||||
"STOUT": "斯图尔特",
|
||||
"TERMADON": "特尔玛登",
|
||||
"VARYLIA 5": "瓦瑞拉亚",
|
||||
"WASAT": "天樽二",
|
||||
"VEGA BAY": "织女一湾",
|
||||
"WEZEN": "弧矢一",
|
||||
"VINDEMITARIX PRIME": "文德米塔里克斯主星",
|
||||
"YED PRIOR": "天市右垣九",
|
||||
"ZEFIA": "塞飞亚",
|
||||
"ZOSMA": "太微右垣五",
|
||||
"ZZANIAH PRIME": "藏尼亚主星",
|
||||
"SKITTER": "斯基特",
|
||||
"EUPHORIA III": "欧福利亚III",
|
||||
"DIASPORA X": "大流散X",
|
||||
"GEMSTONE BLUFFS": "宝石崖",
|
||||
"ZAGON PRIME": "扎贡主星",
|
||||
"OMICRON": "奥密克戎",
|
||||
"CYBERSTAN": "生化斯坦"
|
||||
}
|
||||
@@ -0,0 +1,231 @@
|
||||
# Helldivers 自部署 API 说明
|
||||
|
||||
> 本文档基于对自部署实例 **`http://192.168.2.15:18080`** 的实际探测整理(字段以真实返回为准)。
|
||||
> 用途:弄清这个代理能拿到哪些数据,以及战报卡片**还没利用**的部分。
|
||||
|
||||
---
|
||||
|
||||
## 0. 基础信息
|
||||
|
||||
**Base URL**:`http://192.168.2.15:18080`
|
||||
|
||||
**请求头**(两个 `X-Super-*` 必须都带,否则公共实例会直接 400):
|
||||
|
||||
```http
|
||||
Accept-Language: en-US,zh-Hans;q=0.5
|
||||
X-Super-Client: <你的客户端名>
|
||||
X-Super-Contact: <联系方式>
|
||||
```
|
||||
|
||||
- `Accept-Language` 决定返回文案语言(`en-US` / `zh-Hans`/`zh-Hant` 等)。
|
||||
- 返回均为 JSON。
|
||||
|
||||
**注意(坑)**:
|
||||
- `/api/v1/war` 的 `now` 返回 `1972-...`,疑似该代理的数据有误(`started/ended` 是 2024→2028 也偏大)。用真实时间请自己取 `time.time()`,别信 `war.now`。
|
||||
- `/api/v1/planet-events` 返回的是**单颗星球对象**(数组里只有 index 130),不是事件列表——疑似别名或代理异常。真正的星球事件在 `/raw/.../Status` 的 `planetEvents`。
|
||||
- 接口返回可能被外层包裹成 `{data:[...]}` 或 `{planets:[...]}`,`/api/v1/*` 目前探测到是**裸数组/裸对象**。
|
||||
|
||||
---
|
||||
|
||||
## 1. 接口总览
|
||||
|
||||
| 端点 | 形状 | 说明 |
|
||||
|---|---|---|
|
||||
| `GET /api/v1/war` | `object` | 星系战况概要 |
|
||||
| `GET /api/v1/assignments` | `array[1]` | 重要指令(最高指令 MAJOR ORDER) |
|
||||
| `GET /api/v1/campaigns` | `array[35]` | 当前战役(参战星球) |
|
||||
| `GET /api/v1/planets` | `array[273]` | 全星球表 |
|
||||
| `GET /api/v1/planets/{index}` | `object` | 单星球详细情况 |
|
||||
| `GET /raw/api/WarSeason/801/Status` | `object` | 原始战争状态(最全) |
|
||||
|
||||
> 以下 `/api/v1/*` 均 **404**:`attacks`、`galaxy`、`galaxy-war`、`global-events`、`news`、`statistics`、`space-stations`、`space_stations`、`war/status`、`war/statistics`、`war/summary`、`planet-effects`、`steam/war`、`version`。
|
||||
> `/raw/api/WarSeason/801/*` 只有 `Status` 可用(`Planets`、`Assignments`、`Campaigns`、`News`、`Statistics`、`GlobalEvents`、`SuperEarthWarResults`、`Planets/224`、`Planet/224/Statistics` 均 404)。
|
||||
|
||||
---
|
||||
|
||||
## 2. 各端点字段详解
|
||||
|
||||
### 2.1 `GET /api/v1/war` — 星系战况概要
|
||||
|
||||
```json
|
||||
{
|
||||
"started": "2024-01-23T20:05:13Z",
|
||||
"ended": "2028-02-08T20:04:55Z",
|
||||
"now": "1972-07-14T16:19:50Z",
|
||||
"clientVersion": "0.3.0",
|
||||
"factions": ["Humans", "Terminids", "Automaton", "Illuminate"],
|
||||
"impactMultiplier": 0.019517466,
|
||||
"statistics": {
|
||||
"missionsWon": 1011049334, "missionsLost": 98505230, "missionTime": 3325809094530,
|
||||
"terminidKills": 216600333572, "automatonKills": 114998420419, "illuminateKills": 75823458605,
|
||||
"bulletsFired": 1944890521255, "bulletsHit": 2131033542437, "timePlayed": 3325809094530,
|
||||
"deaths": 8728394343, "revives": 2, "friendlies": 1009517116,
|
||||
"missionSuccessRate": 91, "accuracy": 100, "playerCount": 57302
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
| 字段 | 说明 |
|
||||
|---|---|
|
||||
| `factions` | 参战阵营英文名(Humans/Terminids/Automaton/Illuminate) |
|
||||
| `impactMultiplier` | 全局影响倍数 |
|
||||
| `statistics` | 全局累计统计(任务/击杀/子弹/命中/死亡/胜率/命中率/玩家数) |
|
||||
|
||||
**可自定义用途**:顶部全局统计、累计击杀对比、胜利/失败率。
|
||||
|
||||
### 2.2 `GET /api/v1/assignments` — 重要指令(最高指令)
|
||||
|
||||
```json
|
||||
{
|
||||
"id": 3348823937,
|
||||
"progress": [1, 0, 0],
|
||||
"title": "MAJOR ORDER",
|
||||
"briefing": "Liberate the designated enemy planets, ...",
|
||||
"description": null,
|
||||
"tasks": [
|
||||
{ "type": 11, "values": [1, 1, 171], "valueTypes": [3, 11, 12] },
|
||||
{ "type": 11, "values": [1, 1, 172], "valueTypes": [3, 11, 12] },
|
||||
{ "type": 11, "values": [1, 1, 268], "valueTypes": [3, 11, 12] }
|
||||
],
|
||||
"reward": { "type": 1, "amount": 50 },
|
||||
"rewards": [ { "type": 1, "amount": 50 } ],
|
||||
"expiration": "2026-08-31T12:03:32.7346799Z",
|
||||
"flags": 0
|
||||
}
|
||||
```
|
||||
|
||||
| 字段 | 说明 |
|
||||
|---|---|
|
||||
| `title` | 指令名(MAJOR ORDER / 玩家自定义战役等) |
|
||||
| `briefing` | 指令说明文本(英文) |
|
||||
| `progress` | 各目标进度(与 `tasks` 对位) |
|
||||
| `tasks[].type` | 任务类型(11 = 解放/进攻某星球类) |
|
||||
| `tasks[].values` | 与 `valueTypes` 对位:如 `[1,1,171]`,其中 `171/172/268` 为目标星球 index |
|
||||
| `tasks[].valueTypes` | 各 `values` 的含义(3 疑似星球 index,11/12 为计数类;**需再对照官方定义**) |
|
||||
| `reward` / `rewards` | 奖励:`type`(1=奖章/2=征用券/3=超级货币/4=补助/5=经验) + `amount` |
|
||||
| `expiration` | 指令截止时间 |
|
||||
|
||||
**说明**:战报卡片的「重要指令」已用 `title/briefing/expiration`;`progress/tasks/rewards` 目前基本没用上,可用来做**进度条**(解放了 1/3 颗目标星)和**奖励展示**。
|
||||
|
||||
### 2.3 `GET /api/v1/campaigns` — 当前战役(参战星球)
|
||||
|
||||
```json
|
||||
{
|
||||
"id": 51413,
|
||||
"type": 0,
|
||||
"count": 10,
|
||||
"faction": "Humans",
|
||||
"planet": {
|
||||
"index": 7, "name": "...", "sector": "...",
|
||||
"biome": { "name": "...", "description": "..." },
|
||||
"hazards": [ { "name": "Tremors", "description": "..." } ],
|
||||
"maxHealth": ..., "health": ..., "regenPerSecond": ...,
|
||||
"currentOwner": "...", "initialOwner": "...",
|
||||
"event": null,
|
||||
"statistics": { ... }, "attacking": [], "regions": []
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
| 字段 | 说明 |
|
||||
|---|---|
|
||||
| `faction` | 战役阵营(Humans/Terminids/Automaton/Illuminate)。**解放战**=当前占据的敌方;**防守战**=进攻的敌方 |
|
||||
| `type` | 战役类型(0 = 解放/常规;`campaign.type` 1 可能 = 防守) |
|
||||
| `count` | 战役数量(参与该星球的战役条目数,通常为 1) |
|
||||
| `planet` | **完整星球对象**(同 `/api/v1/planets/{index}`,含 biome/hazards/event/statistics/attacking/regions) |
|
||||
|
||||
**可自定义用途**:`faction` 决定阵营色、`type` 区分解放/防守、`planet.hazards` 是危害来源(卡片已用)、`planet.event` 是侵攻事件。
|
||||
|
||||
### 2.4 `GET /api/v1/planets` / `GET /api/v1/planets/{index}` — 星球
|
||||
|
||||
```json
|
||||
{
|
||||
"index": 224, "name": "RD-4", "sector": "Orion",
|
||||
"biome": { "name": "Moon", "description": "...", "icon": "..." },
|
||||
"hazards": [ { "name": "Meteor Storms", "description": "...", "icon": "..." } ],
|
||||
"hash": 1234567890,
|
||||
"position": { "x": 0.29, "y": -0.87 },
|
||||
"waypoints": [],
|
||||
"maxHealth": 1000000, "health": 1000000,
|
||||
"disabled": false, "initialOwner": "Illuminate", "currentOwner": "Illuminate",
|
||||
"regenPerSecond": 1.1111112,
|
||||
"event": null,
|
||||
"statistics": {
|
||||
"missionsWon": 1290109, "missionsLost": 152477, "missionTime": 4488281762,
|
||||
"terminidKills": 1344, "automatonKills": 3656, "illuminateKills": 604567039,
|
||||
"bulletsFired": 3286403648, "bulletsHit": 3218310824, "timePlayed": 4488281762,
|
||||
"deaths": 9153248, "revives": 0, "friendlies": 1324721,
|
||||
"missionSuccessRate": 89, "accuracy": 97, "playerCount": 71
|
||||
},
|
||||
"attacking": [],
|
||||
"regions": []
|
||||
}
|
||||
```
|
||||
|
||||
| 字段 | 说明 |
|
||||
|---|---|
|
||||
| `index` / `name` | 星球编号 / 英文名 |
|
||||
| `sector` | 星区英文名(战报里显示中文分区名) |
|
||||
| `biome` | 地形(英文名 + 描述;`_translate` 加 i18n→中文) |
|
||||
| `hazards[]` | **气象危害**(每颗星一个数组,可能多个;`name` 为英文,加 i18n→中文) |
|
||||
| `maxHealth/health/regenPerSecond` | 战役血量 / 现值 / 回复速度(解放进度 = `(max-health)/max`) |
|
||||
| `currentOwner/initialOwner` | 当前/初始阵营(英文名) |
|
||||
| `event` | 进攻事件(空则无) |
|
||||
| `statistics` | 星球累计统计(击杀/胜率/命中率/玩家数) |
|
||||
| `attacking` | 正在进攻的条目(当前数据为空数组) |
|
||||
| `regions` | 行星区域权属(当前为空数组) |
|
||||
|
||||
**提示**:`hazards` 才是「环境事件」,且**一个星球可出现多个**;战报卡片的「环境事件」槽位已支持多危害图标+名称展示。
|
||||
|
||||
### 2.5 `GET /raw/api/WarSeason/801/Status` — 原始战争状态(最全)
|
||||
|
||||
顶层键:`warId, time, impactMultiplier, storyBeatId32, planetStatus, planetAttacks, campaigns, communityTargets, jointOperations, planetEvents, planetActiveEffects, planetRegions, activeElectionPolicyEffects, globalEvents, superEarthWarResults, spaceStations, layoutVersion`
|
||||
|
||||
| 子数组 | 形状 | 样例 / 字段 |
|
||||
|---|---|---|
|
||||
| `planetStatus` `[273]` | `{index, owner, health, regenPerSecond, players, position:{x,y}}` | 每颗星实时状态(比 `/api/v1/planets` 更轻、更新) |
|
||||
| `planetAttacks` `[50]` | `{source, target}` | 进攻路线(source 星 → target 星) |
|
||||
| `campaigns` `[35]` | `{id, planetIndex, type, count, race}` | 战役(`race` 数字阵营、`type` 0/1) |
|
||||
| `planetEvents` `[1]` | `{id, planetIndex, eventType, race, health, maxHealth, startTime, expireTime, campaignId, jointOperationIds, potentialBuildUp}` | **被攻星球的进攻事件**(最完整:含 maxHealth / expireTime / 联合作战) |
|
||||
| `planetActiveEffects` `[154]` | `{index, galacticEffectId}` | 星球生效效果(`galacticEffectId` → 效果图标) |
|
||||
| `planetRegions` `[40]` | `{planetIndex, regionIndex, owner, health, regerPerSecond, availabilityFactor, isAvailable, players}` | **行星区域**权属/血量/玩家(可做区域细览) |
|
||||
| `spaceStations` `[1]` | `{id32, planetIndex, activeEffectIds[], currentElectionEndWarTime, flags}` | 空间站(DSS):所在星 + 生效效果列表 |
|
||||
| `jointOperations` `[1]` | `{id, planetIndex, hqNodeIndex}` | 联合作战节点 |
|
||||
| `globalEvents` `[2]` | `{eventId, id32, portraitId32, title, titleId32, message, ...}` | 战争级事件公告(战役成功等) |
|
||||
| `communityTargets` | `[]`(空) | 社区目标(当前无) |
|
||||
| `activeElectionPolicyEffects` | `[]`(空) | 选举政策效果(当前无) |
|
||||
| `superEarthWarResults` | `[]`(空) | 战争结果(当前无) |
|
||||
|
||||
**说明**:`planetStatus[].owner` 是数字阵营(0=人类/1=终结族/2=机器人/3=光能族 之类),与 `/api/v1/planets` 的英文字符串阵营对应关系需要你确认——原生 HD2 里 `owner` 数字:`1=Humans, 2=Terminids, 3=Automaton, 4=Illuminate`。
|
||||
|
||||
---
|
||||
|
||||
## 3. 战报卡片:已用 / 未利用
|
||||
|
||||
### 已利用
|
||||
- `war` → 顶部标题信息
|
||||
- `assignments` → 重要指令(title/briefing/expiration)
|
||||
- `campaigns[].planet` → 战役卡片(进度/危害/地形/效果)
|
||||
- `planets`(en-US 星名)→ 匹配高清地形背景
|
||||
- `raw.planetActiveEffects` → `planet_effects`(星球效果槽位)
|
||||
- `raw.spaceStations` → `space_stations`(DSS 增益)
|
||||
|
||||
### 还有可利用(建议关注)
|
||||
| 数据 | 来源 | 可做什么 |
|
||||
|---|---|---|
|
||||
| `planetEvents`(maxHealth/expireTime) | `/raw/Status` | **更准的入侵进度 + 倒计时**(目前卡片从 `campaign.planet.event` 取,缺 maxHealth/expireTime 时精度差) |
|
||||
| `planetAttacks`(source→target) | `/raw/Status` | **战线图/进攻箭头**:可视化谁正在打谁 |
|
||||
| `planetRegions` | `/raw/Status` | **星球区域占领细览**(每区域 owner/health/players) |
|
||||
| `globalEvents` | `/raw/Status` | **战报滚动公告**(战役成功/事件推送) |
|
||||
| `planetStatus[].owner/regen/players` | `/raw/Status` | 全星系战况概览(比全量星球更轻) |
|
||||
| `planet.statistics` | `/api/v1/planets/{i}` | 星球数据卡(击杀/胜率/命中率/玩家数) |
|
||||
| `war.statistics` | `/api/v1/war` | 顶部全局累计统计 |
|
||||
| `assignment.progress/tasks/rewards` | `/api/v1/assignments` | **重要指令进度条**(解放了几颗目标星)+ 奖励展示 |
|
||||
|
||||
---
|
||||
|
||||
## 4. 状态码 / 异常
|
||||
- `200`:正常(返回 JSON)。
|
||||
- `400`:缺 `X-Super-Client` / `X-Super-Contact`(或头格式错误)。
|
||||
- `404`:接口不存在(见上表 404 清单)。
|
||||
- 某些异常时可能返回 JSON `{error: ...}` 或带 `Message` 字段;建议调用方对非 200 抛出带 `resp.text[:400]` 的错误(`hd2_api._get_json` 已如此处理)。
|
||||
@@ -0,0 +1,66 @@
|
||||
import os
|
||||
import random
|
||||
from nonebot import logger
|
||||
from .equipment_renderer import render_equipment_card
|
||||
from .equipment_store import list_stratagems
|
||||
|
||||
|
||||
basic_path = os.path.dirname(__file__)
|
||||
save_path = os.path.join(basic_path, "temp")
|
||||
img_path = os.path.join(basic_path, "img")
|
||||
data_path = os.path.join(basic_path, "data")
|
||||
|
||||
|
||||
async def get_random_equipment(count):
|
||||
data = list_stratagems()
|
||||
indices = select_random_equipment(len(data), count)
|
||||
selected_equipment = [data[i] for i in indices]
|
||||
|
||||
return await render_equipment_card(selected_equipment)
|
||||
|
||||
|
||||
async def get_equipment_by_combination(type_combination):
|
||||
data = list_stratagems()
|
||||
|
||||
equipment_by_type = categorize_equipment_by_type(data)
|
||||
selected_equipment = select_equipment_by_type(equipment_by_type, type_combination)
|
||||
|
||||
logger.debug(f"根据组合选择的装备: {selected_equipment}")
|
||||
return await render_equipment_card(selected_equipment)
|
||||
|
||||
|
||||
def categorize_equipment_by_type(data):
|
||||
equipment_by_type = {}
|
||||
for item in data:
|
||||
equip_type = item['type']
|
||||
if equip_type not in equipment_by_type:
|
||||
equipment_by_type[equip_type] = []
|
||||
equipment_by_type[equip_type].append(item)
|
||||
return equipment_by_type
|
||||
|
||||
|
||||
def select_equipment_by_type(equipment_by_type, type_combination):
|
||||
selected_equipment = []
|
||||
backpack_count = 0
|
||||
|
||||
for equip_type, count in type_combination.items():
|
||||
if equip_type in equipment_by_type:
|
||||
available_items = equipment_by_type[equip_type]
|
||||
random.shuffle(available_items)
|
||||
selected = 0
|
||||
for item in available_items:
|
||||
if selected < count:
|
||||
if item['backpack'] == 1 and backpack_count >= 1:
|
||||
continue
|
||||
selected_equipment.append(item)
|
||||
selected += 1
|
||||
if item['backpack'] == 1:
|
||||
backpack_count += 1
|
||||
else:
|
||||
break
|
||||
|
||||
return selected_equipment
|
||||
|
||||
|
||||
def select_random_equipment(max_equipment, count):
|
||||
return random.sample(range(max_equipment), count)
|
||||
@@ -0,0 +1,102 @@
|
||||
import random
|
||||
import secrets
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
from nonebot import require
|
||||
|
||||
# 顺序很重要:先 require 声明依赖,再 import(与 war_renderer 一致)
|
||||
require("nonebot_plugin_htmlrender")
|
||||
|
||||
from nonebot_plugin_htmlrender import get_new_page # noqa: E402
|
||||
|
||||
from .war_renderer import _font_faces, _logo_data_uri, _rel
|
||||
|
||||
basic_path = Path(__file__).resolve().parent
|
||||
template_path = basic_path / "templates"
|
||||
img_path = basic_path / "img"
|
||||
|
||||
# 战备类型 -> (标签, 主题色)
|
||||
TYPE_STYLE: dict[str, dict[str, str]] = {
|
||||
"blue": {"label": "武装·补给", "color": "#6bb7ea"},
|
||||
"red": {"label": "轨道·飞鹰", "color": "#fe6d6a"},
|
||||
"green": {"label": "战术·设备", "color": "#7ecb3f"},
|
||||
}
|
||||
|
||||
|
||||
def _load_template(name: str) -> str:
|
||||
"""读取 templates/ 下的模板文件(UTF-8),每次渲染实时读取,便于改模板即时生效。"""
|
||||
return (template_path / name).read_text(encoding="utf-8")
|
||||
|
||||
|
||||
def _equip_icon(equip: dict[str, Any]) -> str:
|
||||
"""战备图标:读取 img/helldivers/ 下的 PNG,配合 <base href> 用相对路径链接。"""
|
||||
raw = equip.get("path") or ""
|
||||
if not raw:
|
||||
return ""
|
||||
p = basic_path / raw.replace("\\", "/")
|
||||
if not p.exists():
|
||||
return ""
|
||||
return f"<img class='eq-ic' src='{_rel(p)}' alt='' />"
|
||||
|
||||
|
||||
def _item_html(equip: dict[str, Any]) -> str:
|
||||
name = equip.get("name") or "未知战备"
|
||||
alias = (random.choice(equip["alias"]) if equip.get("alias") else None) or ""
|
||||
type_key = equip.get("type") or ""
|
||||
style = TYPE_STYLE.get(type_key, {"label": "其他", "color": "#cccccc"})
|
||||
label = style["label"]
|
||||
color = style["color"]
|
||||
backpack = "背包位" if equip.get("backpack") else ""
|
||||
alias_html = f"<span class='eq-alias'>{alias}</span>" if alias else ""
|
||||
meta_tail = f" · {backpack}" if backpack else ""
|
||||
return f"""
|
||||
<div class="eq-row">
|
||||
<div class="eq-icwrap">{_equip_icon(equip)}</div>
|
||||
<div class="eq-info">
|
||||
<div class="eq-name">{name}</div>
|
||||
<div class="eq-meta">
|
||||
<span class="eq-badge" style="color:{color};border-color:{color}">{label}</span>
|
||||
{alias_html}{meta_tail}
|
||||
</div>
|
||||
</div>
|
||||
</div>"""
|
||||
|
||||
|
||||
def _build_html(items: list[dict[str, Any]]) -> str:
|
||||
rows = "".join(_item_html(e) for e in items)
|
||||
return (
|
||||
_load_template("equip_card.html")
|
||||
.replace("@@BASE@@", basic_path.as_uri() + "/")
|
||||
.replace("@@FONT_FACES@@", _font_faces())
|
||||
.replace("@@CSS@@", _load_template("equip_card.css"))
|
||||
.replace("@@LOGO@@", _logo_data_uri())
|
||||
.replace("@@ROWS@@", rows)
|
||||
)
|
||||
|
||||
|
||||
async def _html_to_png(html: str, width: int = 640) -> bytes:
|
||||
async with get_new_page() as page:
|
||||
# 初始视口高度给一个小于内容的值,便于按 scrollHeight 收紧,避免截出多余空白
|
||||
await page.set_viewport_size({"width": width, "height": 300})
|
||||
# 图片/字体用相对路径 + <base href> 解析;写临时 .html 到插件根目录,
|
||||
# 使页面与 img/、data/ 同目录树,file:// 同源即可加载(无需额外标志)。
|
||||
tmp = basic_path / f"_equip_render_{secrets.token_hex(6)}.html"
|
||||
tmp.write_text(html, encoding="utf-8")
|
||||
try:
|
||||
await page.goto(tmp.as_uri(), wait_until="networkidle")
|
||||
# 视口高度收紧到内容实际高度,避免 full_page 截出多余空白
|
||||
height = await page.evaluate("document.documentElement.scrollHeight")
|
||||
await page.set_viewport_size({"width": width, "height": height})
|
||||
return await page.screenshot(full_page=True, type="png")
|
||||
finally:
|
||||
try:
|
||||
tmp.unlink()
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
|
||||
async def render_equipment_card(items: list[dict[str, Any]]) -> bytes:
|
||||
"""把随机/组合出的战备渲染成一张 PNG 图(使用 nonebot_plugin_htmlrender)。"""
|
||||
html = _build_html(items)
|
||||
return await _html_to_png(html)
|
||||
@@ -0,0 +1,321 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""战备(SQLite)数据存取层。
|
||||
|
||||
把原来写在 data/equipment.json 的战备数据迁移到 SQLite,供
|
||||
- equipment.py 随机/组合抽取
|
||||
- 战备管理后台(stratagem_admin.py) 的读/写/导入/导出
|
||||
|
||||
三层语义弱化为单表 + is_custom 标记:
|
||||
- 从 data/equipment.json 首次播种的记录 is_custom=0(基础库)
|
||||
- 管理后台手动新增的记录 is_custom=1
|
||||
- 手动编辑都是直接改行,不另建覆盖层(当前不做 API 同步,因此单表即可)
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import sqlite3
|
||||
import time
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
from nonebot import logger
|
||||
|
||||
basic_path = Path(__file__).resolve().parent
|
||||
DATA_DIR = basic_path / "data"
|
||||
DB_PATH = DATA_DIR / "equipment.db"
|
||||
SEED_PATH = DATA_DIR / "archive" / "equipment.json"
|
||||
|
||||
|
||||
def _connect() -> sqlite3.Connection:
|
||||
conn = sqlite3.connect(DB_PATH)
|
||||
conn.row_factory = sqlite3.Row
|
||||
return conn
|
||||
|
||||
|
||||
def _now() -> str:
|
||||
return time.strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
|
||||
def _load_seed() -> list[dict[str, Any]]:
|
||||
"""读取随包的 equipment.json 作为初始基础库。"""
|
||||
if not SEED_PATH.exists():
|
||||
return []
|
||||
try:
|
||||
data = json.loads(SEED_PATH.read_text(encoding="utf-8"))
|
||||
return data if isinstance(data, list) else []
|
||||
except Exception as e: # noqa: BLE001
|
||||
logger.warning(f"读取 equipment.json 失败,跳过播种: {e}")
|
||||
return []
|
||||
|
||||
|
||||
def init_db() -> None:
|
||||
"""建表(WAL 便于网页与 bot 并发读写),空表时从 equipment.json 播种。"""
|
||||
DATA_DIR.mkdir(parents=True, exist_ok=True)
|
||||
with _connect() as conn:
|
||||
conn.execute("PRAGMA journal_mode=WAL")
|
||||
conn.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS stratagems (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL,
|
||||
name_en TEXT NOT NULL DEFAULT '',
|
||||
type TEXT NOT NULL DEFAULT 'blue',
|
||||
backpack INTEGER NOT NULL DEFAULT 0,
|
||||
icon TEXT NOT NULL DEFAULT '',
|
||||
alias TEXT NOT NULL DEFAULT '[]',
|
||||
is_custom INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TEXT,
|
||||
updated_at TEXT,
|
||||
UNIQUE(name)
|
||||
)
|
||||
"""
|
||||
)
|
||||
cur = conn.execute("SELECT COUNT(*) AS n FROM stratagems")
|
||||
if cur.fetchone()["n"] == 0:
|
||||
now = _now()
|
||||
for item in _load_seed():
|
||||
if not isinstance(item, dict):
|
||||
continue
|
||||
name = (item.get("name") or "").strip()
|
||||
if not name:
|
||||
continue
|
||||
alias = item.get("alias") or []
|
||||
if isinstance(alias, str):
|
||||
alias = [a.strip() for a in alias.split(",") if a.strip()]
|
||||
conn.execute(
|
||||
"""
|
||||
INSERT OR IGNORE INTO stratagems
|
||||
(name, name_en, type, backpack, icon, alias, is_custom, created_at, updated_at)
|
||||
VALUES (?,?,?,?,?,?,?,?,?)
|
||||
""",
|
||||
(
|
||||
name,
|
||||
item.get("name_en") or "",
|
||||
item.get("type") or "blue",
|
||||
1 if item.get("backpack") else 0,
|
||||
item.get("path") or item.get("icon") or "",
|
||||
json.dumps(alias, ensure_ascii=False),
|
||||
0,
|
||||
now,
|
||||
now,
|
||||
),
|
||||
)
|
||||
conn.commit()
|
||||
|
||||
|
||||
def _row_to_item(row: sqlite3.Row) -> dict[str, Any]:
|
||||
try:
|
||||
alias = json.loads(row["alias"] or "[]")
|
||||
if not isinstance(alias, list):
|
||||
alias = []
|
||||
except Exception: # noqa: BLE001
|
||||
alias = []
|
||||
return {
|
||||
"id": row["id"],
|
||||
"name": row["name"],
|
||||
"name_en": row["name_en"] or "",
|
||||
"type": row["type"] or "blue",
|
||||
"backpack": bool(row["backpack"]),
|
||||
"path": row["icon"] or "",
|
||||
"icon": row["icon"] or "",
|
||||
"alias": alias,
|
||||
"is_custom": bool(row["is_custom"]),
|
||||
}
|
||||
|
||||
|
||||
def _normalize_alias(value: Any) -> list[str]:
|
||||
if isinstance(value, str):
|
||||
parts = [v.strip() for v in value.replace(",", ",").replace("、", ",").replace("\n", ",").split(",") if v.strip()]
|
||||
elif isinstance(value, list):
|
||||
parts = [v.strip() for v in value if isinstance(v, str) and v.strip()]
|
||||
else:
|
||||
parts = []
|
||||
seen: set[str] = set()
|
||||
out: list[str] = []
|
||||
for p in parts:
|
||||
if p not in seen:
|
||||
seen.add(p)
|
||||
out.append(p)
|
||||
return out
|
||||
|
||||
|
||||
def list_stratagems() -> list[dict[str, Any]]:
|
||||
init_db()
|
||||
with _connect() as conn:
|
||||
rows = conn.execute("SELECT * FROM stratagems ORDER BY id").fetchall()
|
||||
return [_row_to_item(r) for r in rows]
|
||||
|
||||
|
||||
def count_stratagems() -> int:
|
||||
init_db()
|
||||
with _connect() as conn:
|
||||
return int(conn.execute("SELECT COUNT(*) AS n FROM stratagems").fetchone()["n"])
|
||||
|
||||
|
||||
def list_stratagems_page(page: int = 1, page_size: int = 20) -> tuple[list[dict[str, Any]], int]:
|
||||
init_db()
|
||||
total = count_stratagems()
|
||||
offset = (page - 1) * page_size
|
||||
with _connect() as conn:
|
||||
rows = conn.execute(
|
||||
"SELECT * FROM stratagems ORDER BY id LIMIT ? OFFSET ?",
|
||||
(page_size, offset),
|
||||
).fetchall()
|
||||
return [_row_to_item(r) for r in rows], total
|
||||
|
||||
|
||||
def get_stratagem(seed: int) -> dict[str, Any] | None:
|
||||
init_db()
|
||||
with _connect() as conn:
|
||||
row = conn.execute("SELECT * FROM stratagems WHERE id=?", (seed,)).fetchone()
|
||||
return _row_to_item(row) if row else None
|
||||
|
||||
|
||||
def create_stratagem(item: dict[str, Any]) -> dict[str, Any]:
|
||||
init_db()
|
||||
name = (item.get("name") or "").strip()
|
||||
if not name:
|
||||
raise ValueError("name 不能为空")
|
||||
now = _now()
|
||||
with _connect() as conn:
|
||||
cursor = conn.execute(
|
||||
"""
|
||||
INSERT INTO stratagems (name, name_en, type, backpack, icon, alias, is_custom, created_at, updated_at)
|
||||
VALUES (?,?,?,?,?,?,?,?,?)
|
||||
""",
|
||||
(
|
||||
name,
|
||||
item.get("name_en") or "",
|
||||
item.get("type") or "blue",
|
||||
1 if item.get("backpack") else 0,
|
||||
item.get("icon") or item.get("path") or "",
|
||||
json.dumps(_normalize_alias(item.get("alias")), ensure_ascii=False),
|
||||
1,
|
||||
now,
|
||||
now,
|
||||
),
|
||||
)
|
||||
conn.commit()
|
||||
new_id = cursor.lastrowid
|
||||
row = get_stratagem(new_id)
|
||||
assert row is not None
|
||||
return row
|
||||
|
||||
|
||||
def update_stratagem(seed: int, fields: dict[str, Any]) -> dict[str, Any] | None:
|
||||
init_db()
|
||||
if not fields:
|
||||
return get_stratagem(seed)
|
||||
# 只允许安全字段
|
||||
allowed = {"name", "name_en", "type", "backpack", "icon", "path", "alias"}
|
||||
updates: dict[str, Any] = {}
|
||||
for k in allowed:
|
||||
if k in fields:
|
||||
updates[k] = fields[k]
|
||||
if "alias" in updates:
|
||||
updates["alias"] = json.dumps(_normalize_alias(updates["alias"]), ensure_ascii=False)
|
||||
if "path" in updates and "icon" not in updates:
|
||||
updates["icon"] = updates.pop("path")
|
||||
elif "icon" in updates:
|
||||
updates.pop("path", None)
|
||||
if not updates:
|
||||
return get_stratagem(seed)
|
||||
updates["updated_at"] = _now()
|
||||
sets = ", ".join(f"{k}=?" for k in updates)
|
||||
params = list(updates.values()) + [seed]
|
||||
with _connect() as conn:
|
||||
cur = conn.execute(f"UPDATE stratagems SET {sets} WHERE id=?", params)
|
||||
conn.commit()
|
||||
if cur.rowcount == 0:
|
||||
return None
|
||||
return get_stratagem(seed)
|
||||
|
||||
|
||||
def delete_stratagem(seed: int) -> bool:
|
||||
init_db()
|
||||
with _connect() as conn:
|
||||
cur = conn.execute("DELETE FROM stratagems WHERE id=?", (seed,))
|
||||
conn.commit()
|
||||
return cur.rowcount > 0
|
||||
|
||||
|
||||
def import_items(items: list[dict[str, Any]]) -> dict[str, int]:
|
||||
"""按 id(存在则更新) 或 name(存在则更新) 合并导入;新增的记录标记为 custom。
|
||||
|
||||
返回 {added, updated, skipped}
|
||||
"""
|
||||
init_db()
|
||||
added = 0
|
||||
updated = 0
|
||||
skipped = 0
|
||||
now = _now()
|
||||
with _connect() as conn:
|
||||
for item in items:
|
||||
if not isinstance(item, dict):
|
||||
skipped += 1
|
||||
continue
|
||||
name = (item.get("name") or "").strip()
|
||||
if not name:
|
||||
skipped += 1
|
||||
continue
|
||||
seed = item.get("id")
|
||||
existing: dict[str, Any] | None = None
|
||||
if isinstance(seed, int):
|
||||
row = conn.execute("SELECT * FROM stratagems WHERE id=?", (seed,)).fetchone()
|
||||
existing = _row_to_item(row) if row else None
|
||||
if existing is None:
|
||||
row = conn.execute("SELECT * FROM stratagems WHERE name=?", (name,)).fetchone()
|
||||
existing = _row_to_item(row) if row else None
|
||||
if existing is None:
|
||||
conn.execute(
|
||||
"""
|
||||
INSERT INTO stratagems (name, name_en, type, backpack, icon, alias, is_custom, created_at, updated_at)
|
||||
VALUES (?,?,?,?,?,?,?,?,?)
|
||||
""",
|
||||
(
|
||||
name,
|
||||
item.get("name_en") or "",
|
||||
item.get("type") or "blue",
|
||||
1 if item.get("backpack") else 0,
|
||||
item.get("icon") or item.get("path") or "",
|
||||
json.dumps(_normalize_alias(item.get("alias")), ensure_ascii=False),
|
||||
1,
|
||||
now,
|
||||
now,
|
||||
),
|
||||
)
|
||||
added += 1
|
||||
else:
|
||||
fields = {
|
||||
"name": name,
|
||||
"name_en": (item.get("name_en") or existing.get("name_en") or ""),
|
||||
"type": (item.get("type") or existing.get("type") or "blue"),
|
||||
"backpack": bool(item.get("backpack", existing.get("backpack"))),
|
||||
"icon": (item.get("icon") or item.get("path") or existing.get("icon") or ""),
|
||||
"alias": item.get("alias", existing.get("alias")),
|
||||
}
|
||||
conn.execute(
|
||||
"""
|
||||
UPDATE stratagems
|
||||
SET name=?, name_en=?, type=?, backpack=?, icon=?, alias=?, updated_at=?
|
||||
WHERE id=?
|
||||
""",
|
||||
(
|
||||
fields["name"],
|
||||
fields["name_en"],
|
||||
fields["type"],
|
||||
1 if fields["backpack"] else 0,
|
||||
fields["icon"],
|
||||
json.dumps(_normalize_alias(fields["alias"]), ensure_ascii=False),
|
||||
now,
|
||||
existing["id"],
|
||||
),
|
||||
)
|
||||
updated += 1
|
||||
conn.commit()
|
||||
return {"added": added, "updated": updated, "skipped": skipped}
|
||||
|
||||
|
||||
def export_items() -> list[dict[str, Any]]:
|
||||
return list_stratagems()
|
||||
@@ -0,0 +1,168 @@
|
||||
import asyncio
|
||||
import time
|
||||
from typing import Any, Awaitable, Callable
|
||||
|
||||
import httpx
|
||||
from nonebot import logger
|
||||
|
||||
from .config import config
|
||||
|
||||
# 简单的进程内缓存 {key: (过期时间戳, 数据)},用于聚合战况时只打一次接口
|
||||
_cache: dict[str, tuple[float, Any]] = {}
|
||||
|
||||
|
||||
def _headers(language: str | None = None) -> dict[str, str]:
|
||||
# 两个 X-Super-* 头必须都存在,否则公共实例(ValidateClients)会直接返回 400
|
||||
lang = language or config.hd2_api_language
|
||||
return {
|
||||
"Accept-Language": f"{lang},en-US;q=0.5",
|
||||
"X-Super-Client": config.hd2_super_client,
|
||||
"X-Super-Contact": config.hd2_super_contact or config.hd2_super_client,
|
||||
}
|
||||
|
||||
|
||||
def _base_url() -> str:
|
||||
return config.hd2_api_base_url.rstrip("/")
|
||||
|
||||
|
||||
async def _get_json(url: str, language: str | None = None) -> Any:
|
||||
async with httpx.AsyncClient(timeout=15) as client:
|
||||
resp = await client.get(url, headers=_headers(language))
|
||||
if resp.status_code != 200:
|
||||
raise httpx.HTTPStatusError(
|
||||
f"{resp.status_code} {resp.reason_phrase} for {url}\n{resp.text[:400]}",
|
||||
request=resp.request,
|
||||
response=resp,
|
||||
)
|
||||
return resp.json()
|
||||
|
||||
|
||||
async def _cached(key: str, fetcher: Callable[[], Awaitable[Any]]) -> Any:
|
||||
now = time.time()
|
||||
hit = _cache.get(key)
|
||||
if hit and hit[0] > now:
|
||||
return hit[1]
|
||||
data = await fetcher()
|
||||
_cache[key] = (now + config.hd2_cache_ttl, data)
|
||||
return data
|
||||
|
||||
|
||||
# ---- 原始接口 fetchers(不带缓存,供各 get_* 包装) ----
|
||||
|
||||
async def _fetch_war() -> Any:
|
||||
return await _get_json(f"{_base_url()}/api/v1/war")
|
||||
|
||||
|
||||
async def _fetch_major_orders() -> Any:
|
||||
return await _get_json(f"{_base_url()}/api/v1/assignments")
|
||||
|
||||
|
||||
async def _fetch_campaigns(language: str | None) -> Any:
|
||||
return await _get_json(f"{_base_url()}/api/v1/campaigns", language)
|
||||
|
||||
|
||||
async def _fetch_planets(language: str | None) -> Any:
|
||||
return await _get_json(f"{_base_url()}/api/v1/planets", language)
|
||||
|
||||
|
||||
async def _fetch_planet_detail(index: int, language: str | None) -> Any:
|
||||
return await _get_json(f"{_base_url()}/api/v1/planets/{index}", language)
|
||||
|
||||
|
||||
async def _fetch_raw_status() -> Any:
|
||||
# 原始接口一次返回全部:planetActiveEffects / spaceStations / planetStatus 等
|
||||
return await _get_json(f"{_base_url()}/raw/api/WarSeason/801/Status")
|
||||
|
||||
|
||||
# ---- 对外封装(各自带缓存,可单独调用) ----
|
||||
|
||||
async def get_war() -> Any:
|
||||
"""星系战况概要(年代起止/阵营/影响倍率等)。"""
|
||||
return await _cached("war", _fetch_war)
|
||||
|
||||
|
||||
async def get_major_orders() -> Any:
|
||||
"""重要指令(最高指令 / assignments,含任务目标、奖励、阵营)。"""
|
||||
return await _cached("assignments", _fetch_major_orders)
|
||||
|
||||
|
||||
async def get_campaigns(language: str | None = None) -> Any:
|
||||
"""当前参与战役的星球列表(含每颗参战星球的进度/事件/危害等)。"""
|
||||
key = f"campaigns:{language or ''}"
|
||||
return await _cached(key, lambda: _fetch_campaigns(language))
|
||||
|
||||
|
||||
async def get_planets(language: str | None = None) -> Any:
|
||||
"""全星球表(每颗星的 biome/hazards/event/currentOwner/statistics 等)。"""
|
||||
key = f"planets:{language or ''}"
|
||||
return await _cached(key, lambda: _fetch_planets(language))
|
||||
|
||||
|
||||
async def get_planet_detail(index: int, language: str | None = None) -> Any:
|
||||
"""单星球详细情况(biome/hazards/event/statistics/attacking/regions 等)。"""
|
||||
key = f"planet:{index}:{language or ''}"
|
||||
return await _cached(key, lambda: _fetch_planet_detail(index, language))
|
||||
|
||||
|
||||
async def get_raw_status() -> Any:
|
||||
"""原始 WarSeason/801/Status(planetStatus/planetActiveEffects/spaceStations...)。"""
|
||||
return await _cached("raw_status", _fetch_raw_status)
|
||||
|
||||
|
||||
async def get_space_stations() -> list[Any]:
|
||||
"""空间站(民主空间站 DSS 等)。"""
|
||||
raw = await get_raw_status()
|
||||
return list((raw or {}).get("spaceStations") or [])
|
||||
|
||||
|
||||
async def get_planet_effects(index: int | None = None) -> dict[int, list[int]]:
|
||||
"""星球当前生效效果 {星球index: [galacticEffectId...]};传 index 时只返回该星球的集合。"""
|
||||
raw = await get_raw_status()
|
||||
effects: dict[int, list[int]] = {}
|
||||
for item in (raw or {}).get("planetActiveEffects") or []:
|
||||
if (
|
||||
isinstance(item, dict)
|
||||
and item.get("index") is not None
|
||||
and item.get("galacticEffectId") is not None
|
||||
):
|
||||
effects.setdefault(item["index"], []).append(item["galacticEffectId"])
|
||||
if index is not None:
|
||||
return {index: effects.get(index, [])}
|
||||
return effects
|
||||
|
||||
|
||||
# ---- 聚合入口(渲染战报用;也可改为按需调用各 get_* 组装) ----
|
||||
|
||||
async def get_briefing_data() -> dict[str, Any]:
|
||||
"""并发拉取战报所需的分组数据,带缓存,返回聚合结果。"""
|
||||
war, assignments, campaigns, planets, raw_status = await asyncio.gather(
|
||||
get_war(),
|
||||
get_major_orders(),
|
||||
get_campaigns(),
|
||||
get_planets(language="en-US"), # 用英文星名匹配高清地形图;currentOwner 等不受语言影响
|
||||
get_raw_status(),
|
||||
)
|
||||
|
||||
logger.info("已获取 helldivers 战况数据")
|
||||
planet_english = {
|
||||
p["index"]: p.get("name")
|
||||
for p in (planets or [])
|
||||
if p.get("index") is not None and p.get("name")
|
||||
}
|
||||
# 星球当前效果:{星球index: [galacticEffectId...]}
|
||||
planet_effects: dict[int, list[int]] = {}
|
||||
for item in (raw_status or {}).get("planetActiveEffects") or []:
|
||||
if isinstance(item, dict) and item.get("index") is not None and item.get("galacticEffectId") is not None:
|
||||
planet_effects.setdefault(item["index"], []).append(item["galacticEffectId"])
|
||||
# 空间站(民主空间站 DSS 等):独立展示,不混进普通星球效果
|
||||
space_stations = (raw_status or {}).get("spaceStations") or []
|
||||
return {
|
||||
"war": war,
|
||||
"assignments": assignments,
|
||||
"campaigns": campaigns,
|
||||
"planets": planets,
|
||||
"planet_english": planet_english,
|
||||
"planet_effects": planet_effects,
|
||||
"space_stations": space_stations,
|
||||
"fetched_at": int(time.time()),
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""SVG -> PNG 转换 + 可选 HD2 风格边框,用于战备图标上传。"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import base64
|
||||
import io
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
from PIL import Image, ImageDraw
|
||||
|
||||
SCHEMA_SIZE = 550 # 与随包 PNG 图标一致
|
||||
TYPE_COLORS = {
|
||||
"blue": "#6bb7ea",
|
||||
"red": "#fe6d6a",
|
||||
"green": "#7ecb3f",
|
||||
}
|
||||
|
||||
basic_path = Path(__file__).resolve().parent
|
||||
IMG_DIR = basic_path / "img" / "helldivers"
|
||||
|
||||
|
||||
def sanitize_filename(name: str) -> str:
|
||||
"""把战备名转成安全的 Windows 文件名(保留中文/空格,去掉非法字符)。"""
|
||||
s = re.sub(r'[\\/:*?"<>|]', "_", name).strip()
|
||||
s = re.sub(r"\s+", " ", s)
|
||||
return s or "strategem"
|
||||
|
||||
|
||||
def _hex_to_rgb(hex_color: str) -> tuple[int, int, int]:
|
||||
h = hex_color.lstrip("#")
|
||||
if len(h) == 3:
|
||||
h = "".join(c * 2 for c in h)
|
||||
return tuple(int(h[i : i + 2], 16) for i in (0, 2, 4)) # type: ignore[return-value]
|
||||
|
||||
|
||||
def _apply_frame(src_png: bytes, size: int, frame_color: str) -> bytes:
|
||||
"""把透明的 SVG 画面叠到 HD2 风格画布上:彩色边框 + 深色内底 + 居中图形。"""
|
||||
rgb = _hex_to_rgb(frame_color)
|
||||
img = Image.open(io.BytesIO(src_png)).convert("RGBA")
|
||||
canvas = Image.new("RGBA", (size, size), rgb + (255,))
|
||||
draw = ImageDraw.Draw(canvas)
|
||||
border = max(10, size // 20)
|
||||
# 外圈用类型色,内部深色
|
||||
draw.rectangle([0, 0, size - 1, size - 1], fill=rgb + (255,))
|
||||
draw.rectangle([border, border, size - 1 - border, size - 1 - border], fill=(12, 12, 12, 255))
|
||||
# 去掉透明边距再居中
|
||||
alpha = img.getchannel("A")
|
||||
bbox = alpha.getbbox()
|
||||
glyph = img.crop(bbox) if bbox else img
|
||||
inner = size - 2 * border
|
||||
avail = int(inner * 0.82)
|
||||
glyph.thumbnail((avail, avail), Image.LANCZOS)
|
||||
ox = (size - glyph.width) // 2
|
||||
oy = (size - glyph.height) // 2
|
||||
canvas.alpha_composite(glyph, (ox, oy))
|
||||
out = io.BytesIO()
|
||||
canvas.save(out, format="PNG")
|
||||
return out.getvalue()
|
||||
|
||||
|
||||
async def _render_svg(svg_text: str, size: int) -> bytes:
|
||||
"""用 Chromium 的 canvas 把 SVG 光栅化为带透明通道的 PNG。
|
||||
|
||||
用 toDataURL 导出而非截图,避免 omit_background 在部分环境把透明背景
|
||||
拍成白色,从而保住透明 alpha。
|
||||
"""
|
||||
from playwright.async_api import async_playwright
|
||||
|
||||
data_uri = "data:image/svg+xml;base64," + base64.b64encode(svg_text.encode("utf-8")).decode()
|
||||
script = (
|
||||
"() => new Promise((resolve) => {"
|
||||
"const img = new Image();"
|
||||
"img.onload = () => {"
|
||||
"const canvas = document.createElement('canvas');"
|
||||
f"canvas.width = {size}; canvas.height = {size};"
|
||||
"const ctx = canvas.getContext('2d');"
|
||||
f"ctx.clearRect(0,0,{size},{size});"
|
||||
f"const scale = Math.min({size} / img.width, {size} / img.height);"
|
||||
"const w = img.width * scale, h = img.height * scale;"
|
||||
f"ctx.drawImage(img, ({size}-w)/2, ({size}-h)/2, w, h);"
|
||||
"resolve(canvas.toDataURL('image/png'));"
|
||||
"};"
|
||||
"img.onerror = () => resolve('');"
|
||||
f"img.src = '{data_uri}';"
|
||||
"})"
|
||||
)
|
||||
async with async_playwright() as p:
|
||||
browser = await p.chromium.launch()
|
||||
page = await browser.new_page()
|
||||
await page.set_content("<!-- svg to png -->")
|
||||
data_url = await page.evaluate(script)
|
||||
await browser.close()
|
||||
return base64.b64decode(data_url.split(",", 1)[1])
|
||||
|
||||
|
||||
async def svg_to_png(svg_text: str, framed: bool = False, frame_color: str | None = None, size: int = SCHEMA_SIZE) -> bytes:
|
||||
"""SVG -> PNG。framed=True 时叠加 HD2 风格边框到类型色。"""
|
||||
if not svg_text.strip():
|
||||
raise ValueError("SVG 内容为空")
|
||||
png = await _render_svg(svg_text, size)
|
||||
if framed:
|
||||
png = _apply_frame(png, size, frame_color or TYPE_COLORS["blue"])
|
||||
return png
|
||||
|
||||
|
||||
def save_icon_png(png_bytes: bytes, name: str) -> str:
|
||||
"""写入 img/helldivers/<sanitized name>.png,返回相对路径。"""
|
||||
IMG_DIR.mkdir(parents=True, exist_ok=True)
|
||||
filename = sanitize_filename(name) + ".png"
|
||||
dest = IMG_DIR / filename
|
||||
dest.write_bytes(png_bytes)
|
||||
return f"img/helldivers/{filename}"
|
||||
@@ -0,0 +1,45 @@
|
||||
import os
|
||||
import random
|
||||
from io import BytesIO
|
||||
from datetime import datetime
|
||||
from PIL import Image, ImageOps, ImageDraw, ImageFont
|
||||
|
||||
basic_path = os.path.dirname(__file__)
|
||||
save_path = os.path.join(basic_path, "temp")
|
||||
img_path = os.path.join(basic_path, "img")
|
||||
data_path = os.path.join(basic_path, "data")
|
||||
|
||||
|
||||
def create_image(selected_equipment):
|
||||
new_img = Image.new('RGBA', (800, 500), (0, 0, 0, 1000))
|
||||
logo_path = img_path + "/super earth.png"
|
||||
logo = Image.open(logo_path)
|
||||
new_img = image_paste(logo, new_img, (682, 20))
|
||||
draw = ImageDraw.Draw(new_img)
|
||||
ch_text_font = ImageFont.truetype(data_path + '/font/msyh.ttc', 36)
|
||||
pos_horizon = 20
|
||||
|
||||
for equipment in selected_equipment:
|
||||
name = equipment['name']
|
||||
alias = random.choice(equipment['alias']) if equipment['alias'] else None
|
||||
|
||||
path = basic_path + "/" + equipment['path'].replace("\\", "/")
|
||||
icon = Image.open(path)
|
||||
icon = icon.resize((100, 100))
|
||||
new_img = image_paste(icon, new_img, (20, pos_horizon))
|
||||
draw.text((140, pos_horizon + 5), '战备名称:', fill='white', font=ch_text_font)
|
||||
draw.text((140, pos_horizon + 50), f'{name} - ({alias})', fill='white', font=ch_text_font)
|
||||
pos_horizon += 120
|
||||
|
||||
b_io = BytesIO()
|
||||
new_img = ImageOps.expand(new_img, border=10, fill="white")
|
||||
new_img.save(b_io, format="PNG")
|
||||
return b_io
|
||||
|
||||
|
||||
def image_paste(paste_image, under_image, pos):
|
||||
if paste_image.mode == 'RGBA':
|
||||
under_image.paste(paste_image, pos, mask=paste_image.split()[3])
|
||||
else:
|
||||
under_image.paste(paste_image, pos)
|
||||
return under_image
|
||||
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000" overflow="visible"><g class="svelte-1cr2wym" style=""><g transform="translate(500 500) scale(1 1)" class="svelte-1cr2wym"><g transform="translate(-500 -500)" class="svelte-1cr2wym"><clipPath id="svgIc_clipShape_309"><path d="M500,0,932,249V751L500,1000,68,751V249Z" transform="scale(1 1)" class="svelte-1cr2wym"></path></clipPath><clipPath id="svgIc_clipShapeBG_309"><path d="M500,0,932,249V751L500,1000,68,751V249Z" transform="scale(0.96 0.96)" transform-origin="center center" class="svelte-1cr2wym"></path></clipPath><g style="opacity: 0.4; "><path id="icDrop309" d="M500,0,932,249V751L500,1000,68,751V249Z" fill="#000000" stroke="#000000" stroke-width="72" paint-order="stroke"></path></g><g clip-path="url('#svgIc_clipShapeBG_309')" style="opacity: 1;"><path id="icBack309" d="M500,0,932,249V751L500,1000,68,751V249Z" fill="#000000"></path></g><g clip-path="url('#svgIc_clipShape_309')"><g transform="scale(1 1)" transform-origin="center center" class="svelte-1cr2wym"><g style="opacity: 1; color: #6bb7ea; "> <g style=" pointer-events: none; " class="noselect notouch svelte-1fita6j" opacity="1"><g transform="scale(1 1)" class="svelte-1fita6j"><g transform="translate(500 500) scale(1 1)" class="svelte-1fita6j"><g opacity="1" transform="translate(-500 -500)" class="svelte-1fita6j"><g clip-path="url('#svgIc_clipShape_310')"><g style="color: ;"><path class="anim_target svelte-1fita6j" id="icPath1310i0" d="M391,639h35V475l28-25c11-9,17-20,16-36s-1-26-1-40l-24-5c-10-17-26-61-27-75,20-4,41,1,62-2,8-18,0-38,6-56,11-4,20-5,29,5v50c22,4,44,0,68,3-5,26-20,47-25,72l-29,10c0,15-1,28,0,42a45,45,0,0,0,19,33c21,15,26,34,25,59-2,36-1,72-1,107,0,7,0,14,0,23h37l2-137c32-7,55,7,75,31V636c8,6,17,4,25,5s14,3,18,10l21,37c1,3,2,6,3,11l-36,3H298l-48-3c3-22,17-36,26-53l36-7c7-36-3-73,4-107,19-24,41-36,70-31,7,6,5,14,5,21,0,32,0,64,0,96C391,624,391,631,391,639ZM650,313c3-5,8-10,5-18-19-3-30-2-47,3-12,20-23,55-23,71l35,3C636,356,638,332,650,313ZM345,298c9,21,18,43,27,64,2,4,8,7,12,8s22,2,34-2c-7-25-15-48-27-70-15-8-31-5-45-5C345,296,344,298,345,298Z" style="pointer-events: none;" stroke-miterlimit="1.77" fill="currentColor" stroke="currentColor" stroke-width="0" stroke-linecap="round" stroke-linejoin="miter" transform="translate(0 0) scale(1)"></path></g></g><title>Terminid Control System +</title></g></g></g></g></g></g><g style="opacity: 0.8; color: #6bb7ea; "> <g style=" pointer-events: none; " class="noselect notouch svelte-1fita6j" opacity="1"><g transform="scale(1 1)" class="svelte-1fita6j"><g transform="translate(500 500) scale(1 1)" class="svelte-1fita6j"><g opacity="1" transform="translate(-500 -500)" class="svelte-1fita6j"><g clip-path="url('#svgIc_clipShape_311')"><g style="color: ;"><path class="anim_target svelte-1fita6j" id="icPath1311i0" d="M68,249V751l432,249L932,751V249L500,0Zm792,41V709L500,917,140,709V291L500,83Z" style="pointer-events: none;" stroke-miterlimit="1.77" fill="#6bb7ea" stroke="#6bb7ea" stroke-width="0" stroke-linecap="round" stroke-linejoin="miter" transform="translate(0 0) scale(1)"></path></g></g><title>Terminid Control System +</title></g></g></g></g></g></g></g></g><title>Terminid Control System +</title></g><title>Terminid Control System +</title></svg>
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
@@ -0,0 +1,5 @@
|
||||
<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<desc>Traced by Dogo314</desc>
|
||||
<path style="fill:none" d="M744 2382h134v134H744z" transform="translate(-710.687 -2275.343)scale(.95522)"/>
|
||||
<path d="M1201.481 2490.203c-18.119-6.349-31.488-22.844-33.277-42.658h7.308c1.757 16.581 13.014 30.344 28.218 35.737zm3.373-10.381c-13.746-4.914-23.947-17.313-25.683-32.277h7.334a31.6 31.6 0 0 0 5.505 13.804h-4.271l18.702 13.588zm39.136-18.473a31.6 31.6 0 0 0 5.505-13.804h7.334c-1.736 14.964-11.937 27.363-25.683 32.277l-1.587-4.885 18.702-13.588zm-11.72 21.933c15.204-5.393 26.461-19.156 28.218-35.737h7.308c-1.789 19.814-15.158 36.309-33.277 42.658zm-2.793 8.392A50 50 0 0 1 1218 2493c-3.949 0-7.792-.459-11.477-1.326l8.341-6.06a43.4 43.4 0 0 0 6.272 0zM1218 2441.182c1.818 0 3.636 3.636 7.273 3.636s8.182-2.727 8.182-2.727v5.454c0 9.091-7.273 17.273-15.455 17.273s-15.455-8.182-15.455-17.273v-5.454s4.546 2.727 8.182 2.727 5.455-3.636 7.273-3.636m0-14.546c2.874 0 4.612-1.135 5.664-2.06l9.576 4.788h-30.48l9.576-4.788c1.052.925 2.79 2.06 5.664 2.06m14.545 30.823c1.713-2.938 2.728-6.357 2.728-9.914v-7.272l1.818-2.728v-7.272l-12.727-6.364v-16.364c3.636.91 13.222 8.182 13.85 14.546.27 2.733 1.604 13.636 1.604 13.636l4.546 4.546v4.545c0 .909 0 2.727-.909 3.637 0 6.363-5.455 11.818-10.91 11.818zm-29.09 0v2.814c-5.455 0-10.91-5.455-10.91-11.818-.909-.91-.909-2.728-.909-3.637v-4.545l4.546-4.546s1.334-10.903 1.604-13.636c.628-6.364 10.214-13.636 13.85-14.546v16.364l-12.727 6.364v7.272l1.818 2.728v7.272c0 3.557 1.015 6.976 2.728 9.914" style="fill:#fff" transform="matrix(1.1 0 0 1.1 -1275.798 -2631.298)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 128 128" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g transform="matrix(1,0,0,1,-700,-2530)">
|
||||
<g id="Spore-Burst-Strain-Icon" serif:id="Spore Burst Strain Icon" transform="matrix(0.955224,0,0,0.955224,-10.686567,254.656716)">
|
||||
<rect x="744" y="2382" width="134" height="134" style="fill:none;"/>
|
||||
<g transform="matrix(1.046875,0,0,1.046875,11.1875,-266.59375)">
|
||||
<path d="M737.178,2589.121C737.457,2589.669 737.776,2590.195 738.128,2590.664C739.236,2592.141 740.681,2593 742,2593C743.462,2593 744.695,2592.229 745.572,2590.943C746.506,2589.573 747,2587.557 747,2586C747,2584.965 746.803,2584.136 746.555,2583.35C746.325,2582.621 746,2581.959 746,2581L746.001,2580.924C749.872,2578.098 754.505,2575.442 760.024,2572.955C760.008,2573.3 760,2573.648 760,2574C760,2576.168 760.492,2578.756 761.619,2580.49C762.622,2582.033 764.072,2583 766,2583C768.558,2583 770.985,2581.489 772.888,2579.115C775.402,2575.98 777,2571.378 777,2568C777,2567.549 777.021,2567.111 777.061,2566.684C783.801,2564.641 791.413,2562.746 800,2561C778,2621 740,2594 740,2636C740,2644.062 741,2646 745,2653C739,2648 728,2638 728,2618C728,2607.156 730.261,2597.53 737.178,2589.121ZM746,2555C747.57,2557.05 749,2560 749,2564C749,2573 744,2577 744,2581C744,2583 745,2584 745,2586C745,2588 744,2591 742,2591C740,2591 738,2587 738,2585C738,2574 747,2572 747,2564C747,2560.081 747,2558 746,2555ZM766,2581C763,2581 762,2577 762,2574C762,2556 785,2548 785,2540L785,2536C785,2536 788,2540 788,2542C788,2552 775,2556 775,2568C775,2573 771,2581 766,2581ZM781.729,2597.3C788.407,2610.418 779.511,2631.196 765,2637C768.876,2627.31 768.075,2617.62 761.635,2609.749C762.252,2609.453 762.877,2609.152 763.509,2608.842C769.214,2606.048 775.496,2602.797 781.729,2597.3ZM723,2591C725.208,2591 727,2592.792 727,2595C727,2597.208 725.208,2599 723,2599C720.792,2599 719,2597.208 719,2595C719,2592.792 720.792,2591 723,2591ZM790,2550C792.208,2550 794,2551.792 794,2554C794,2556.208 792.208,2558 790,2558C787.792,2558 786,2556.208 786,2554C786,2551.792 787.792,2550 790,2550ZM724.5,2576C725.88,2576 727,2577.12 727,2578.5C727,2579.88 725.88,2581 724.5,2581C723.12,2581 722,2579.88 722,2578.5C722,2577.12 723.12,2576 724.5,2576ZM735.5,2562C737.432,2562 739,2563.568 739,2565.5C739,2567.432 737.432,2569 735.5,2569C733.568,2569 732,2567.432 732,2565.5C732,2563.568 733.568,2562 735.5,2562ZM756,2564C757.104,2564 758,2564.896 758,2566C758,2567.104 757.104,2568 756,2568C754.896,2568 754,2567.104 754,2566C754,2564.896 754.896,2564 756,2564ZM762,2549C763.104,2549 764,2549.896 764,2551C764,2552.104 763.104,2553 762,2553C760.896,2553 760,2552.104 760,2551C760,2549.896 760.896,2549 762,2549ZM726.5,2546C727.88,2546 729,2547.12 729,2548.5C729,2549.88 727.88,2551 726.5,2551C725.12,2551 724,2549.88 724,2548.5C724,2547.12 725.12,2546 726.5,2546ZM793.5,2589C794.88,2589 796,2590.12 796,2591.5C796,2592.88 794.88,2594 793.5,2594C792.12,2594 791,2592.88 791,2591.5C791,2590.12 792.12,2589 793.5,2589ZM809,2564C810.104,2564 811,2564.896 811,2566C811,2567.104 810.104,2568 809,2568C807.896,2568 807,2567.104 807,2566C807,2564.896 807.896,2564 809,2564ZM808,2545C809.104,2545 810,2545.896 810,2547C810,2548.104 809.104,2549 808,2549C806.896,2549 806,2548.104 806,2547C806,2545.896 806.896,2545 808,2545ZM714,2562C715.104,2562 716,2562.896 716,2564C716,2565.104 715.104,2566 714,2566C712.896,2566 712,2565.104 712,2564C712,2562.896 712.896,2562 714,2562ZM746,2542C747.104,2542 748,2542.896 748,2544C748,2545.104 747.104,2546 746,2546C744.896,2546 744,2545.104 744,2544C744,2542.896 744.896,2542 746,2542ZM768,2534C769.104,2534 770,2534.896 770,2536C770,2537.104 769.104,2538 768,2538C766.896,2538 766,2537.104 766,2536C766,2534.896 766.896,2534 768,2534Z" style="fill:white;"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="22.060072mm"
|
||||
height="22.190329mm"
|
||||
viewBox="0 0 22.060072 22.190329"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:export-filename="Test Image.svg"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
|
||||
sodipodi:docname="Galaxy Icons.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"><defs
|
||||
id="defs1" /><sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.3"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.35"
|
||||
inkscape:cx="700"
|
||||
inkscape:cy="-587.14286"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
inkscape:export-bgcolor="#00000000"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer7" /><metadata
|
||||
id="metadata1"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Image 3 (Done)"
|
||||
style="display:inline"
|
||||
transform="translate(-248.96299,184.37205)"><path
|
||||
id="path6"
|
||||
style="fill:#ffffff;stroke:#ffffff;stroke-width:0.0286194;paint-order:normal"
|
||||
d="m 263.63817,-184.35774 a 7.3705354,7.429594 0 0 0 -7.37009,7.42952 7.3705354,7.429594 0 0 0 0.83767,3.40341 l -0.0238,0.0233 -8.09873,8.09873 3.20084,3.20083 8.11888,-8.11888 a 7.3705354,7.429594 0 0 0 3.3352,0.82217 7.3705354,7.429594 0 0 0 7.37061,-7.42952 7.3705354,7.429594 0 0 0 -0.68264,-3.12074 l -4.93872,4.93872 -3.39463,-3.39463 5.02502,-5.0245 a 7.3705354,7.429594 0 0 0 -3.37964,-0.82837 z" /></g></svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
@@ -0,0 +1,5 @@
|
||||
<svg viewBox="0 0 166 166" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<desc>Traced by Dogo314</desc>
|
||||
<path style="fill:none" d="M0 0h1080v1080H0z" transform="scale(.1537)"/>
|
||||
<path d="M434 44c46.361 0 84 37.639 84 84s-37.639 84-84 84-84-37.639-84-84 37.639-84 84-84m0 30.361-47.566 9.109v77.928L434 189.735l47.566-28.337V83.47zm0 11.133L472.458 91v65.222L434 179.133l-38.458-22.911V91zm0 5.152-33.398 4.537v58.163L434 173.243l33.398-19.897V95.183z" style="fill:#fff" transform="translate(-345.825 -43.475)scale(.98807)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 634 B |
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,12 @@
|
||||
<svg viewBox="0 0 166 166" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<desc>Traced by Dogo314</desc>
|
||||
<g transform="scale(.1537)">
|
||||
<path style="fill:none" d="M0 0h1080v1080H0z"/>
|
||||
<clipPath id="a">
|
||||
<path d="M0 0h1080v1080H0z"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#a)">
|
||||
<path d="M434 44c46.361 0 84 37.639 84 84s-37.639 84-84 84-84-37.639-84-84 37.639-84 84-84m0 27.325-44.277 14.833 3.099 43.834-13.726 14.169 18.375 21.917 12.177-4.87 5.091 17.932L434 184.675l19.261-5.535 5.091-17.932 12.177 4.87 18.375-21.917-13.726-14.169 3.099-43.834zm0 77.485 7.306 11.07-3.521 3.52-3.785-5.734-3.785 5.734-3.521-3.52zm-23.91-22.581c6.232 0 11.291 5.059 11.291 11.291 0 6.231-5.059 11.29-11.291 11.29-6.231 0-11.29-5.059-11.29-11.29 0-6.232 5.059-11.291 11.29-11.291m47.82 0c6.231 0 11.29 5.059 11.29 11.291 0 6.231-5.059 11.29-11.29 11.29-6.232 0-11.291-5.059-11.291-11.29 0-6.232 5.059-11.291 11.291-11.291" style="fill:#fff" transform="translate(-2250 -282.857)scale(6.42857)"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,5 @@
|
||||
<svg viewBox="0 0 166 166" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<desc>Traced by Dogo314</desc>
|
||||
<path style="fill:none" d="M0 0h1080v1080H0z" transform="scale(.1537)"/>
|
||||
<path d="M434 44c46.361 0 84 37.639 84 84s-37.639 84-84 84-84-37.639-84-84 37.639-84 84-84m0 25.301c-32.397 0-58.699 26.302-58.699 58.699s26.302 58.699 58.699 58.699 58.699-26.302 58.699-58.699S466.397 69.301 434 69.301m24.398 25.136c10.361 7.548 17.1 19.775 17.1 33.563 0 22.903-18.595 41.498-41.498 41.498S392.502 150.903 392.502 128c0-13.788 6.739-26.015 17.1-33.563a27.2 27.2 0 0 0-2.927 12.31c0 15.081 12.244 27.325 27.325 27.325s27.325-12.244 27.325-27.325c0-4.427-1.055-8.61-2.927-12.31M434 88.53c8.378 0 15.181 6.802 15.181 15.181s-6.803 15.181-15.181 15.181-15.181-6.803-15.181-15.181S425.622 88.53 434 88.53" style="fill:#fff" transform="translate(-345.825 -43.475)scale(.98807)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 979 B |
|
After Width: | Height: | Size: 4.2 KiB |
@@ -0,0 +1,12 @@
|
||||
<svg viewBox="0 0 166 166" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<desc>Traced by Dogo314</desc>
|
||||
<g transform="scale(.1537)">
|
||||
<path style="fill:none" d="M0 0h1080v1080H0z"/>
|
||||
<clipPath id="a">
|
||||
<path d="M0 0h1080v1080H0z"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#a)">
|
||||
<path d="M434 44c46.361 0 84 37.639 84 84s-37.639 84-84 84-84-37.639-84-84 37.639-84 84-84m0 30.361-47.566 9.109v77.928L434 189.735l47.566-28.337V83.47zm0 11.133L472.458 91v65.222L434 179.133l-38.458-22.911V91zm-5.529 84.455 5.529 3.294 33.398-19.897V95.183L434 90.646l-33.398 4.537v58.163l20.038 11.938-10.929-56.228 6.671-1.297zm-7.758-61.125c2.42-1.198 6.792-3.089 10.251-3.089 5.06 0 7.084 2.024 12.144 2.024s10.121-3.036 10.121-3.036l3.036 21.253s-4.048 3.036-10.12 3.036c-6.073 0-6.073-2.024-12.145-2.024-3.799 0-7.202 1.584-9.217 2.771z" style="fill:#fff" transform="translate(-2250 -282.857)scale(6.42857)"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,12 @@
|
||||
<svg viewBox="0 0 166 166" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<desc>Traced by Dogo314</desc>
|
||||
<g transform="scale(.1537)">
|
||||
<path style="fill:none" d="M0 0h1080v1080H0z"/>
|
||||
<clipPath id="a">
|
||||
<path d="M0 0h1080v1080H0z"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#a)">
|
||||
<path d="M434 44c46.361 0 84 37.639 84 84s-37.639 84-84 84-84-37.639-84-84 37.639-84 84-84m0 55.663-6.072 3.036-.008.004c-.266-8.985-7.643-16.197-16.691-16.197-9.216 0-16.699 7.483-16.699 16.699 0 3.672 1.188 7.068 3.199 9.826-5.875 1.301-11.916 8.344-13.319 13.957-1.553 6.21-4.049 17.205-4.049 21.253 0 12.288 9.977 22.265 22.266 22.265 10.75 0 19.732-7.636 21.811-17.776.297-1.45 3.49-16.634 3.49-16.634l6.072-2.024 6.072 2.024s3.193 15.184 3.49 16.634c2.079 10.14 11.061 17.776 21.811 17.776 12.289 0 22.266-9.977 22.266-22.265 0-4.048-2.496-15.043-4.049-21.253-1.403-5.613-7.444-12.656-13.319-13.957a16.62 16.62 0 0 0 3.199-9.826c0-9.216-7.483-16.699-16.699-16.699-9.048 0-16.425 7.212-16.691 16.197l-.008-.004zm31.373 34.409c7.82 0 14.169 6.349 14.169 14.169s-6.349 14.169-14.169 14.169c-7.819 0-14.168-6.349-14.168-14.169s6.349-14.169 14.168-14.169m-62.746 0c7.819 0 14.168 6.349 14.168 14.169s-6.349 14.169-14.168 14.169c-7.82 0-14.169-6.349-14.169-14.169s6.349-14.169 14.169-14.169" style="fill:#fff" transform="translate(-2250 -282.857)scale(6.42857)"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
@@ -0,0 +1,5 @@
|
||||
<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<desc>Traced by Dogo314</desc>
|
||||
<path style="fill:none" d="M744 2382h134v134H744z" transform="translate(-710.687 -2275.343)scale(.95522)"/>
|
||||
<path d="M903.99 2442.301c-11.456-2.716-19.99-13.02-19.99-25.301 0-2.743.426-5.388 1.215-7.871 2.252 9.233 9.535 16.504 18.775 18.739zm-17.522-36.363a26.1 26.1 0 0 1 5.933-8.07 18 18 0 0 0-.508 4.275c0 9.993 8.113 18.107 18.107 18.107s18.107-8.114 18.107-18.107c0-1.473-.176-2.904-.508-4.275a26.1 26.1 0 0 1 5.933 8.07c-1.173 9.722-8.242 17.639-17.522 20.068q-.89.233-1.806.397v16.258A26 26 0 0 1 910 2443c-1.431 0-2.836-.116-4.204-.339v-16.258a23 23 0 0 1-1.806-.397c-9.28-2.429-16.349-10.346-17.522-20.068m48.317 3.191A26 26 0 0 1 936 2417c0 12.281-8.534 22.585-19.99 25.301v-14.433c9.24-2.235 16.523-9.506 18.775-18.739m-16.454-14.79a12.04 12.04 0 0 1 3.74 8.732c0 6.663-5.409 12.072-12.071 12.072s-12.071-5.409-12.071-12.072c0-3.433 1.436-6.533 3.74-8.732v8.732c0 4.599 3.733 8.332 8.331 8.332s8.331-3.733 8.331-8.332zm-14.857-1.422A12 12 0 0 1 910 2391c2.403 0 4.644.704 6.526 1.917v10.154a6.53 6.53 0 0 1-6.526 6.526 6.53 6.53 0 0 1-6.526-6.526z" style="fill:#fff" transform="translate(-710.687 -2275.343)scale(.95522) translate(-1240.875 -2999.823)scale(2.2548)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
version="1.1"
|
||||
width="376.20334"
|
||||
height="400.03195"
|
||||
id="svg7"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs7" />
|
||||
<g
|
||||
id="g10"
|
||||
transform="translate(-35.95583,-55.975452)">
|
||||
<path
|
||||
d="M 251.29332,56.103067 V 361.05297 L 115.05749,456.00743 251.29332,56.103067"
|
||||
id="path2-0"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke-width:1.87186;stroke-linejoin:round;stroke-miterlimit:2" />
|
||||
<path
|
||||
d="M 184.09829,180.11722 155.99224,267.91735 35.955828,180.11722 H 184.09829"
|
||||
id="path1-9"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke-width:1.83752;stroke-linejoin:round;stroke-miterlimit:2" />
|
||||
</g>
|
||||
<g
|
||||
id="g9"
|
||||
transform="translate(-35.95583,-55.975452)">
|
||||
<path
|
||||
d="m 259.97622,55.975452 h 40 c 3.49674,9.854562 3.84243,21.508366 4.46582,31.805923 73.84697,14.987025 83.53418,75.370735 83.53418,132.194075 4.09208,0.60871 5.18128,-1.16577 7.95546,-3.90353 18.60847,-1.53951 16.20222,4.03065 16.04454,43.9035 -28.25603,47.52289 -28,48 -28,48 v 44 l -4,8 -32,36 -24,20 h -64 v -20 l 4,-4 h 44 l 8,12 h 4 c 51.90654,-56.23078 52,-56 52,-56 l 4,-8 v -21.5399 h -12 l -12,13.5399 h -12 l -64,-68 h -16 v -24 h 28 l 16,4 16,16 v 40 h 4 l 4,-8 v -36 c 16.19083,-12.19419 16,-12 16,-12 h 24 c 5.32269,0.47447 4,9.73509 4,16 -23.71861,18.86564 -20,23.5293 -20,52 20.18341,0.12329 33.61043,-27.99058 48,-48 v -36 c 0,0 -4.40233,-1.01254 -6.11475,3.93178 l -13.88525,0.0682 c 0.8945,-91.18712 -26.26433,-137.588063 -116,-133.109456 v 5.109456 c 57.12403,-0.72681 92.1913,13.83594 92,76 v 12 12 l 12,8 v 20 h -24 l -12,-12 -4,-24 v -44 l -4,-20 h -4 v 60 l -4,24 -16,16 -16,4 h -24 L 259.908,90.338224 c 17.78047,-0.35112 32.81945,-1.991618 32.06822,-6.362772 -1.36799,-23.559886 -32,-20 -32,-20 z"
|
||||
fill="#ffffff"
|
||||
id="path2-8" />
|
||||
<path
|
||||
d="m 294.84137,307.90723 9.13485,0.0682 c 8.31403,13.48582 18.93081,27.22887 32,35.88842 l -20,20.11158 -9.29871,-0.0965 -2.70129,-7.90353 c -9.17235,-2.44065 -12.44584,-4.89169 -16,-12 h -28 v -32 h 32 z"
|
||||
fill="#ffffff"
|
||||
id="path4-8" />
|
||||
<path
|
||||
d="m 259.97622,351.97545 h 28 l 4,4 v 24 l -4,4 h -24 l -4,-4 z"
|
||||
fill="#ffffff"
|
||||
id="path5-2" />
|
||||
<path
|
||||
d="m 259.97622,291.97545 h 24 l 4,4 v 8 h -28 z"
|
||||
fill="#ffffff"
|
||||
id="path6-4" />
|
||||
<path
|
||||
d="m 259.97622,267.97545 h 12 l 8,8 v 8 h -20 z"
|
||||
fill="#ffffff"
|
||||
id="path7-5" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 100.00 100.00" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path style="fill:none" d="M0 0h100.0v100.0H0z"/><g transform="translate(0.0000 0.0000) scale(1.0000)"><path style="fill:none" d="M0 0h100.0v100.0H0z"/><g transform="translate(-12.5000 -15.0000) scale(0.1250)"><desc>effect-dragonroach</desc><path style="fill:none" d="M0 0h1v1H0z" /><path d="M261,327l-11-36c-1-3-3-6-5-10l-53,13-2-4,47-30c-12-26-28-45-57-57,86-3,208,47,229,130l-28-12c1,62-1,120,32,173l8,47c-56-30-93-78-134-122l-39,27-4-3,30-46-8-39-52,17ZM586,493l-7,49c56-29,92-79,134-121l40,27,4-4-29-45c4-13-2-28,11-38l49,17-48-51,15-45,55,13v-4l-47-30c13-27,31-44,57-59-113,6-211,59-229,133l24-11C623,384,611,455,586,493ZM342,628l17,26,5-25,49-20V577c-50-23-93-53-119-102-60,28-106,83-110,131l42-10v47l33-31,31,15,4,29C315,649,320,627,342,628Zm241-49,2,31,49,19,5,24,18-25c22,0,27,24,45,27l6-30,31-13,34,31V595l47,12c-23-61-57-106-116-134C678,527,632,554,583,579ZM517,467l-17-29-19,31c-22,0-22,0-46-12l12,27-16,22c50,24,121,23,136-1l-15-23,16-31C548,462,536,476,517,467ZM427,668H412l-7,36-28-13c6,56,42,120,83,146-24-37-41-74-50-115l20-25Zm166,36-7-37-15,3v30l18,22c-8,42-28,78-46,116,42-41,72-87,81-147ZM479,560l-34-16,3,33,34,16Zm38,34,34-18,2-32-34,16Zm-70,66c13,22,17,49,34,74V676C465,661,465,661,447,659Zm75,71,31-79-35,18v58ZM478,613l-31-13c-5,30,14,35,37,44Zm38,27c36-11,36-11,34-41l-29,14Z" style="fill:#fff" /></g></g></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,13 @@
|
||||
<svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:8">
|
||||
<desc>Traced by Dogo314</desc>
|
||||
<g transform="translate(-276 -306)">
|
||||
<path style="fill:none" d="M276 306h256v256H276z"/>
|
||||
<clipPath id="a">
|
||||
<path d="M276 306h256v256H276z"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#a)">
|
||||
<path d="M276 3412v-256h480v256zm465-248H291v240h450zm-200.625 28 2.026 11.243c.173.966 1.212 1.827 2.786 2.312s3.492.533 5.146.131l19.27-4.686-17.244 6.557c-1.48.563-2.359 1.473-2.359 2.443s.879 1.88 2.359 2.443l17.244 6.557-19.27-4.686c-1.654-.402-3.571-.353-5.146.131-1.574.485-2.613 1.346-2.786 2.312L540.375 3228l-2.026-11.243c-.173-.966-1.212-1.827-2.786-2.312s-3.492-.533-5.146-.131l-19.27 4.686 17.244-6.557c1.48-.563 2.359-1.473 2.359-2.443s-.879-1.88-2.359-2.443L511.147 3201l19.27 4.686c1.654.402 3.571.353 5.146-.131 1.574-.485 2.613-1.346 2.786-2.312zm-206.25 71v-69c0-2.122 1.58-4.157 4.393-5.657s6.629-2.343 10.607-2.343h58.125v22h-61.875v28H381v27h-13.125v24.5c0 1.459-1.086 2.858-3.02 3.889-1.934 1.032-4.557 1.611-7.293 1.611-5.695 0-10.312-2.462-10.312-5.5V3263zm113.428-87 1.624 9.012c.14.774.972 1.464 2.234 1.853s2.799.428 4.125.105l15.446-3.756-13.822 5.256c-1.187.451-1.892 1.181-1.892 1.958 0 .778.705 1.507 1.892 1.958l13.822 5.256-15.446-3.756c-1.326-.322-2.863-.283-4.125.105-1.262.389-2.094 1.079-2.234 1.853l-1.624 9.012-1.623-9.012c-.14-.774-.972-1.464-2.234-1.853-1.262-.388-2.799-.427-4.125-.105l-15.446 3.756 13.822-5.256c1.187-.451 1.892-1.18 1.892-1.958 0-.777-.705-1.507-1.892-1.958l-13.822-5.256 15.446 3.756c1.326.323 2.863.284 4.125-.105s2.094-1.079 2.234-1.853zm4.697 37v18h-97.5v-18z" style="fill:#dc1a1a" transform="matrix(.53333 0 0 1 128.8 -2850)"/>
|
||||
<path d="m484 3322.5-31.25 54.127h-62.5L359 3322.5l31.25-54.127h62.5z" style="fill:#fff;stroke:#fff;stroke-width:.9px" transform="translate(-35.208 -3224.431)scale(1.112)"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,15 @@
|
||||
<svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.5">
|
||||
<desc>Traced by Dogo314</desc>
|
||||
<g transform="translate(-276 -306)">
|
||||
<path style="fill:none" d="M276 306h256v256H276z"/>
|
||||
<clipPath id="a">
|
||||
<path d="M276 306h256v256H276z"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#a)">
|
||||
<path d="M276 3412v-256h480v256zm465-248H291v240h450zm-200.625 28 2.026 11.243c.173.966 1.212 1.827 2.786 2.312s3.492.533 5.146.131l19.27-4.686-17.244 6.557c-1.48.563-2.359 1.473-2.359 2.443s.879 1.88 2.359 2.443l17.244 6.557-19.27-4.686c-1.654-.402-3.571-.353-5.146.131-1.574.485-2.613 1.346-2.786 2.312L540.375 3228l-2.026-11.243c-.173-.966-1.212-1.827-2.786-2.312s-3.492-.533-5.146-.131l-19.27 4.686 17.244-6.557c1.48-.563 2.359-1.473 2.359-2.443s-.879-1.88-2.359-2.443L511.147 3201l19.27 4.686c1.654.402 3.571.353 5.146-.131 1.574-.485 2.613-1.346 2.786-2.312zm-206.25 71v-69c0-2.122 1.58-4.157 4.393-5.657s6.629-2.343 10.607-2.343h58.125v22h-61.875v28H381v27h-13.125v24.5c0 1.459-1.086 2.858-3.02 3.889-1.934 1.032-4.557 1.611-7.293 1.611-5.695 0-10.312-2.462-10.312-5.5V3263zm113.428-87 1.624 9.012c.14.774.972 1.464 2.234 1.853s2.799.428 4.125.105l15.446-3.756-13.822 5.256c-1.187.451-1.892 1.181-1.892 1.958 0 .778.705 1.507 1.892 1.958l13.822 5.256-15.446-3.756c-1.326-.322-2.863-.283-4.125.105-1.262.389-2.094 1.079-2.234 1.853l-1.624 9.012-1.623-9.012c-.14-.774-.972-1.464-2.234-1.853-1.262-.388-2.799-.427-4.125-.105l-15.446 3.756 13.822-5.256c1.187-.451 1.892-1.18 1.892-1.958 0-.777-.705-1.507-1.892-1.958l-13.822-5.256 15.446 3.756c1.326.323 2.863.284 4.125-.105s2.094-1.079 2.234-1.853zm4.697 37v18h-97.5v-18z" style="fill:#dc1a1a" transform="matrix(.53333 0 0 1 128.8 -2850)"/>
|
||||
<path d="M439 490H327l-15-27 85-36 36-85 27 15v112l29 29 7 28-28-7zm-79-100 16-48 12 12v64h-64l-12-12z" style="fill:#fff" transform="translate(149.043 165.663)scale(.67935)"/>
|
||||
<path d="m116.565 123.375 3.321.475-2.372 2.371z" style="fill:#fff" transform="translate(276 306)"/>
|
||||
<path d="M171.277 192.543H95.19L85 174.201l57.745-24.456L167.201 92l18.342 10.19v76.087l19.702 19.701L210 217l-19.022-4.755zm-53.668-67.934L128.478 92l8.152 8.152v43.478H93.152L85 135.478z" style="fill:none;stroke:#fff;stroke-width:1px" transform="translate(276 306)"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,13 @@
|
||||
<svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.5">
|
||||
<desc>Traced by Dogo314</desc>
|
||||
<g transform="translate(-276 -306)">
|
||||
<path style="fill:none" d="M276 306h256v256H276z"/>
|
||||
<clipPath id="a">
|
||||
<path d="M276 306h256v256H276z"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#a)">
|
||||
<path d="M276 3412v-256h480v256zm465-248H291v240h450zm-200.625 28 2.026 11.243c.173.966 1.212 1.827 2.786 2.312s3.492.533 5.146.131l19.27-4.686-17.244 6.557c-1.48.563-2.359 1.473-2.359 2.443s.879 1.88 2.359 2.443l17.244 6.557-19.27-4.686c-1.654-.402-3.571-.353-5.146.131-1.574.485-2.613 1.346-2.786 2.312L540.375 3228l-2.026-11.243c-.173-.966-1.212-1.827-2.786-2.312s-3.492-.533-5.146-.131l-19.27 4.686 17.244-6.557c1.48-.563 2.359-1.473 2.359-2.443s-.879-1.88-2.359-2.443L511.147 3201l19.27 4.686c1.654.402 3.571.353 5.146-.131 1.574-.485 2.613-1.346 2.786-2.312zm-206.25 71v-69c0-2.122 1.58-4.157 4.393-5.657s6.629-2.343 10.607-2.343h58.125v22h-61.875v28H381v27h-13.125v24.5c0 1.459-1.086 2.858-3.02 3.889-1.934 1.032-4.557 1.611-7.293 1.611-5.695 0-10.312-2.462-10.312-5.5V3263zm113.428-87 1.624 9.012c.14.774.972 1.464 2.234 1.853s2.799.428 4.125.105l15.446-3.756-13.822 5.256c-1.187.451-1.892 1.181-1.892 1.958 0 .778.705 1.507 1.892 1.958l13.822 5.256-15.446-3.756c-1.326-.322-2.863-.283-4.125.105-1.262.389-2.094 1.079-2.234 1.853l-1.624 9.012-1.623-9.012c-.14-.774-.972-1.464-2.234-1.853-1.262-.388-2.799-.427-4.125-.105l-15.446 3.756 13.822-5.256c1.187-.451 1.892-1.18 1.892-1.958 0-.777-.705-1.507-1.892-1.958l-13.822-5.256 15.446 3.756c1.326.323 2.863.284 4.125-.105s2.094-1.079 2.234-1.853zm4.697 37v18h-97.5v-18z" style="fill:#dc1a1a" transform="matrix(.53333 0 0 1 128.8 -2850)"/>
|
||||
<path d="m3740 442.2-4-8.2v-32h32v32l-4 8.2V478l-12 12-12-12zm28-54.118v8h-32v-8zm-66 32.118-4-8.2v-32h32v32l-4 8.2V456l-12 12-12-12zm28-54.118v8h-32v-8zm-66 40.118-4-8.2v-32h32v32l-4 8.2V442l-12 12-12-12zm28-54.118v8h-32v-8z" style="fill:#fff;stroke:#fff;stroke-width:1px" transform="translate(-3279 50.918)"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 928 B |
@@ -0,0 +1,4 @@
|
||||
<svg viewBox="0 0 100 170" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
|
||||
<desc>Traced by Dogo314</desc>
|
||||
<path d="M307 3263v-69a8 8 0 0 1 8-8h31v22h-33v28h19v27h-7v24.5a5.496 5.496 0 0 1-5.5 5.5 5.5 5.5 0 0 1-5.5-5.5V3263zm63-50v18h-52v-18z" style="fill:#fff" transform="translate(-487.302 -5057.143)scale(1.5873)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 424 B |
|
After Width: | Height: | Size: 3.4 KiB |
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 100.00 100.00" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path style="fill:none" d="M0 0h100.0v100.0H0z"/><g transform="translate(0.0027 0.0027) scale(1.0001)"><path style="fill:none" d="M0 0h100.0v100.0H0z"/><g transform="translate(-33.2759 -33.7186) scale(0.1724)"><desc>effect-factory-hub</desc><path style="fill:none" d="M0 0h1v1H0z" /><path d="M594,685V597c-14-4-90-6-124-2-4,14-2,29-2,44s0,29,0,43-12,6-18,6H261l-10-2V533c20-5,39,0,59-4,1-4,2-8,2-13,0-30,0-60,1-90,0-6-2-13,4-18l164,74c9,14-4,31,4,49H655c3,51,0,100,1,149-6,7-13,6-20,7H594Zm94-1h26c0-4,1-6,1-7-2-34-3-67-5-101-1-17-2-34-4-50-4-45-8-89-11-134-2-30-3-61-5-91,0-7-1-13-9-18H654c-9,0-19-2-28,2-7,44-17,199-14,215,24,3,48-1,75,1ZM518,498c35,3,47,3,58-4-2-35-3-70-6-105s-1-71-8-105c-16-4-46-4-62-1-4,55-10,111-12,170C510,462,512,482,518,498Z" style="fill:#fff" /></g></g></svg>
|
||||
|
After Width: | Height: | Size: 962 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 5.9 KiB |