武器
定义的武器:伤害如何作用于各类装甲,以及武器自己的外观:弹药、枪口焰、爆炸和光束。
定义用它的 weapons 作战,每一项是一门有自己类型、伤害、射程和射速的武器。用了 extends 时,不写 weapons 就保留基础单位的武器,写自己的列表就整个替换。
伤害
伤害 = dmg × 装甲倍率表中该武器类型对目标装甲的格子,mult 可覆盖单个格子。克制体系解释了各类型;倍率表如下:
| 武器 | 轻甲 | 中甲 | 重甲 | 建筑 | 舰船 | 潜艇 | 飞行器 |
|---|---|---|---|---|---|---|---|
| ×1.50 | ×0.80 | ×0.40 | ×0.35 | — | — | — | |
| ×1.50 | ×1 | ×0.50 | ×0.50 | ×0.70 | — | — | |
| ×0.60 | ×1.30 | ×1 | ×0.80 | ×0.90 | — | ×0.70 | |
| ×0.60 | ×1.30 | ×1.10 | ×1 | ×0.90 | — | ×0.70 | |
| ×0.40 | ×1.10 | ×1.80 | ×0.70 | ×0.75 | — | — | |
| ×0.90 | ×0.60 | ×0.25 | ×0.30 | ×0.40 | — | ×1 | |
| — | — | — | — | — | — | ×1 | |
| ×1.20 | ×1 | ×0.75 | ×1.60 | ×1 | — | — | |
| ×1.20 | ×1 | ×0.75 | ×1.60 | ×1 | — | — | |
| ×1.20 | ×1 | ×0.60 | ×1.60 | ×1 | — | — | |
| ×1.50 | ×1.10 | ×0.45 | ×1.30 | ×0.50 | — | — | |
| ×1.50 | ×1 | ×0.50 | ×0.50 | ×0.70 | — | — | |
| ×0.40 | ×1.10 | ×1.80 | ×0.70 | ×0.75 | — | — | |
| ×1.20 | ×1 | ×0.75 | ×1.60 | ×1 | — | — | |
| ×1.50 | ×1 | ×0.50 | ×0.50 | ×0.80 | — | ×0.25 | |
| — | — | — | — | ×1.60 | — | — | |
| ×1 | ×1 | ×0.75 | ×0.75 | ×1 | ×1.90 | ×1 | |
| ×1 | ×1.10 | ×0.80 | ×0.80 | ×1 | ×1.90 | ×0.60 | |
| — | — | — | — | ×1.30 | ×1.20 | — | |
| ×1.20 | ×1 | ×1 | ×1.60 | ×1.20 | — | ×1 | |
| ×1 | ×1 | ×0.75 | ×0.75 | ×1 | — | ×1 | |
| ×1.20 | ×1 | ×0.75 | ×1.60 | — | — | — | |
| — | — | — | — | — | — | ×1 | |
| ×0.60 | ×1.10 | ×1.80 | ×0.80 | ×0.75 | — | — | |
| ×1.40 | ×1.40 | ×0.90 | ×0.70 | ×0.90 | — | — | |
| — | — | — | — | ×1.70 | — | — | |
| ×1.20 | ×1.20 | ×1 | ×1.60 | ×1.10 | — | — | |
| ×1.20 | ×1.20 | ×0.80 | ×0.80 | ×0.70 | — | — | |
| ×1 | ×0.90 | ×0.60 | ×1.60 | ×1 | — | — | |
| — | — | — | — | ×0.90 | ×1.80 | — | |
| ×1.50 | ×0.90 | ×0.50 | ×0.30 | ×0.70 | — | ×0.80 | |
| ×1.50 | ×0.90 | ×0.50 | ×0.30 | ×0.70 | — | ×0.80 | |
| ×1.50 | ×0.80 | ×0.40 | ×0.30 | ×0.60 | — | ×0.70 | |
| ×1.50 | ×0.90 | ×0.50 | ×0.30 | ×0.70 | — | ×0.80 | |
| ×0.60 | ×1.30 | ×1.10 | ×0.60 | ×1 | — | — | |
| ×0.60 | ×1.30 | ×1.20 | ×0.60 | ×1.10 | — | — | |
| — | — | — | — | — | — | ×1 | |
| — | — | — | — | — | — | ×1 | |
| ×1.20 | ×1 | ×0.25 | ×0.10 | — | — | — | |
| — | — | — | — | ×1 | ×1 | — |
自己的外观
武器可以用 look 拥有自己的样子:自己的弹药(prj.<名字> 精灵图)、枪口焰和命中爆炸(fx.<名字> 精灵图),或光束——从枪口画到目标的激光或特斯拉电弧,即时命中。
sound 引用了模组某段录音的武器就用它开火;没写的武器用其类型的游戏音效。建筑上会转动的炮,以及一个车体上的多门炮,都按炮塔绘制。
参考
武器(defs[].weapons[])
| 字段 | 类型 | 必填 | 默认 | 含义 |
|---|---|---|---|---|
| extensions | { capability: configuration } | 可选引擎武器配置(格式 3) | ||
| id | string | w1, w2… | 武器名 | |
| cls | mg | autocannon | cannon | at | he | rocket | navgun | ashm | torpedo | aa | 必填 | 设计用途,决定装甲倍率表中的行 | |
| dmg | number 0–100000 | 必填 | 每次命中伤害 | |
| reload | number 0.05–600 | 必填 | 两次射击/齐射间隔秒数 | |
| range | number 0.5–64 | 必填 | 射程(格) | |
| minRange | number 0–64 | 最小射程(格) | ||
| projectile | bullet | shell | missile | rocket | bomb | torpedo | flak | flame | by class | 弹药样式 | |
| speed | number 1–5000 | by projectile | 弹速(世界像素/秒) | |
| targets | (ground | ship | sub | air)[] | by class | 可攻击目标:ground、ship、sub、air | |
| mult | { armour: number } | 按装甲类型覆盖倍率 | ||
| splash | number 0–500 | 溅射半径(世界像素) | ||
| burst | integer 1–32 | 每次齐射发数 | ||
| burstDelay | number 0–5 | 齐射内各发间隔秒数 | ||
| ammo | integer 1–9999 | 携弹量,一次齐射算一发:打空后单位自行返回补给(飞机回机场,舰船回造船厂,其余回战车工厂),建筑原地补充;不填则永不耗尽 | ||
| vsWarhead | number 0–10 | 1 | 对飞行中的弹头,造成对飞机伤害的此比例 | |
| homing | boolean | 弹药追踪目标 | ||
| interceptable | boolean | 可被拦截 | ||
| arc | boolean | 抛物线弹道(火炮) | ||
| turret | boolean | true when the def has a turretSprite | 由旋转部件发射 | |
| recoil | number 0–10 | 炮管后坐的视觉行程(美术像素);炮塔图像须带炮管区域,不改变武器属性 | ||
| vertical | boolean | 从艇体垂直发射,如潜艇的导弹发射筒:任何方向都能开火,艇体无需转向;此时 `muzzleOffset` 沿艇身纵轴量到发射筒 | ||
| muzzleOffset | number 0–200 | 枢轴到炮口距离(世界像素);单位美术按 1.5625 倍绘制,量图后需乘以该倍数 | ||
| bores | integer 1–8 | 1 | 炮管数,逐根轮流开火 | |
| boreSpacing | number 0–60 | 相邻炮管间距(世界像素) | ||
| muzzlePoints | string | 按列表顺序开火的炮口位置:1–8 个 `{ forward, lateral }` 点,单位为距开火枢轴的世界像素(forward 沿炮管向前,lateral 向右,均可为负);替代 `muzzleOffset`、`bores` 和 `boreSpacing` | ||
| spread | number 0–200 | 最大射程处的散布(世界像素) | ||
| friendlyFire | boolean | 溅射也会伤及己方 | ||
| fan | number 0–1.5 | `flame` 喷流:喷射张角的一半(弧度) | ||
| burn | number 0–1000 | `flame` 喷流:残留火焰每秒伤害,敌我通吃 | ||
| burnLife | number 0–120 | `flame` 喷流:火焰持续秒数 | ||
| sound | string | by class | 开火音效:mg、autocannon、cannon、missile、flak、arty、rocket、torpedo、bomb、flame,或本模组 `sounds` 中的一个键 | |
| look | look | 外观,替代其类别默认的样子:自己的弹药、枪口焰、命中爆炸,或光束(见“武器外观”) |
武器外观(weapons[].look)
| 字段 | 类型 | 必填 | 默认 | 含义 |
|---|---|---|---|---|
| sprite | string | 弹药图像:本模组的 `prj.<名字>` 精灵图——飞行时播放其帧;若为 `rotated`,则朝向飞行方向 | ||
| scale | number 0.1–8 | 1 | 弹药与枪口焰的缩放倍数 | |
| beam | { color, width, style, life } | 弹药是光束:`{ color, width, style, life }`——从枪口到命中点的一条线,`laser` 为直线,`lightning` 为闪电折线,持续 `life` 秒;即时命中 | ||
| muzzle | string | the class's flash | 枪口焰:本模组的 `fx.<名字>` 精灵图,或 `none` | |
| impact | string | the class's burst | 命中处的爆炸:本模组的 `fx.<名字>` 精灵图、fx.expl.s、fx.expl.m、fx.expl.l、fx.spark、fx.flak、fx.smoke、fx.splash、fx.splash.l、fx.muzzle、fx.repair、fx.emp、fx.nuke 之一,或 `none` | |
| impactScale | number 0.1–8 | 1 | 爆炸的缩放倍数 | |
| impactLife | number 0.05–5 | 0.5 | 爆炸播放的秒数 | |
| trail | smoke | none | smoke | 火箭或导弹的尾烟,或无 |
最后编辑