Structs Combat
Important: Entity IDs containing dashes (like 5-10, 9-3) are misinterpreted as flags by the CLI parser. All transaction commands in this skill use -- before positional arguments to prevent this.
Procedure
- 1. Scout —
structsd query structs planet [id], structsd query structs struct [id] for targets, shield, defenses. - Optional stealth —
structsd tx structs struct-stealth-activate --from [key-name] --gas auto --gas-adjustment 1.5 -y -- [struct-id] before attack. - Attack structs —
structsd tx structs struct-attack --from [key-name] --gas auto --gas-adjustment 1.5 -y -- [operating-struct-id] [target-struct-id,target-id2,...] [weapon-system]. Can target multiple structs. - Raid flow — Move fleet to target:
structsd tx structs fleet-move --from [key-name] --gas auto --gas-adjustment 1.5 -y -- [fleet-id] [destination-location-id]. Then structsd tx structs planet-raid-compute -D 3 --from [key-name] --gas auto --gas-adjustment 1.5 -y -- [fleet-id]. Compute auto-submits the complete transaction. Move fleet home. Refine stolen ore immediately. - Defense setup —
structsd tx structs struct-defense-set --from [key] --gas auto -y -- [defender-struct-id] [protected-struct-id] to assign; structsd tx structs struct-defense-clear --from [key] --gas auto -y -- [defender-struct-id] to remove.
Commands Reference
| Action | CLI Command |
|---|
| Attack | INLINECODE11 |
| Raid compute (PoW + auto-complete) |
structsd tx structs planet-raid-compute -D 3 -- [fleet-id] |
| Raid complete (manual, rarely needed) |
structsd tx structs planet-raid-complete -- [fleet-id] |
| Fleet move |
structsd tx structs fleet-move -- [fleet-id] [destination-location-id] |
| Set defense |
structsd tx structs struct-defense-set -- [defender-id] [protected-id] |
| Clear defense |
structsd tx structs struct-defense-clear -- [defender-id] |
| Stealth on |
structsd tx structs struct-stealth-activate -- [struct-id] |
| Stealth off |
structsd tx structs struct-stealth-deactivate -- [struct-id] |
| Move Command Ship (ambit) |
structsd tx structs struct-move -- [struct-id] [new-ambit] [new-slot] [new-location] |
Raid flow: fleet-move → planet-raid-compute (auto-submits complete) → fleet-move home → refine stolen ore. Common tx flags: --from [key-name] --gas auto --gas-adjustment 1.5 -y.
Raid Timing
Fleet movement (fleet-move) is instant — no transit time. The only time cost in a raid cycle is the PoW compute.
INLINECODE22 uses -D flag (range 1-64) to wait until difficulty drops before hashing. Raid PoW difficulty depends on the target planet's properties. Launch raid compute in a background terminal — it may take minutes to hours depending on difficulty. Use -D 3 for zero wasted CPU. Compute auto-submits the complete transaction.
Important: Your fleet is locked "away" during the raid compute. You cannot build on your planet while your fleet is away. Plan accordingly — complete all planet builds before moving fleet for a raid.
Ambit Targeting
Each weapon can only hit specific ambits. Before attacking, verify your struct's weapon can reach the target's ambit.
| Struct | Lives In | Primary Targets | Secondary Targets |
|---|
| Command Ship | Any (movable) | Current ambit only | — |
| Battleship |
Space | Space, Land, Water | — |
| Starfighter | Space | Space | Space |
| Frigate | Space | Space, Air | — |
| Pursuit Fighter | Air | Air | — |
| Stealth Bomber | Air | Land, Water | — |
| High Altitude Interceptor | Air | Space, Air | — |
| Mobile Artillery | Land | Land, Water | — |
| Tank | Land | Land | — |
| SAM Launcher | Land | Space, Air | — |
| Cruiser | Water | Land, Water | Air |
| Destroyer | Water | Air, Water | — |
| Submersible | Water | Space, Water | — |
Command Ship positioning: The Command Ship is the only struct that can change ambits via struct-move. It can only attack structs in its current ambit (ambit flag 32 = "Local"). Move it to the target's ambit before attacking. Move it away from enemy weapon ranges as a defensive tactic.
Weapon Control vs Defense Type
The interaction between weapon control (guided/unguided) and target defense determines evasion. This is the core of combat tactics:
| Target Defense | vs Guided | vs Unguided |
|---|
| Signal Jamming (Battleship, Pursuit Fighter, Cruiser) | 66% miss | Full hit |
| Defensive Maneuver (High Alt Interceptor) |
Full hit |
66% miss |
| Armour (Tank) | Full hit, -1 dmg | Full hit, -1 dmg |
| Stealth Mode (Stealth Bomber, Submersible) | Same-ambit only | Same-ambit only |
| Indirect Combat (Mobile Artillery) | Full hit | Full hit |
| None | Full hit | Full hit |
Tactics: Use unguided weapons vs Signal Jamming, guided vs Defensive Maneuver. Armour always reduces by 1.
Stealth rules:
- - Stealthed structs can still be attacked from the same ambit -- stealth only blocks cross-ambit targeting
- Attacking instantly deactivates stealth (firing reveals position)
- Re-activation costs 1 charge (
struct-stealth-activate)
Strategic Positioning
Offensive: Move your Command Ship to the ambit where you want to deal damage. Use cross-ambit attackers (Battleship, Stealth Bomber, SAM Launcher, Submersible) for coverage without repositioning.
Defensive: If the enemy fleet can only target specific ambits, move your Command Ship to an ambit they cannot reach. Diversify defenders across ambits so you can block attacks from any direction.
High-value cross-ambit units: Battleship (Space→Space/Land/Water), SAM Launcher (Land→Space/Air), Stealth Bomber (Air→Land/Water), Submersible (Water→Space/Water), Cruiser (Water→Land/Water + Air secondary). These structs threaten multiple ambits and are the foundation of flexible fleet composition.
Verification
- - Query planet shield, struct health
- Query fleet location (onStation vs away)
- Stolen ore: refine immediately; verify with struct/player queries
- Attack results include health values (remaining health after attack) -- use to assess damage dealt
- Raid
seized_ore is tracked on planet_raid record -- query to see total ore stolen
Combat Notes
- - Minimum damage after reduction is 1 -- attacks always deal at least 1 damage
- Offline/destroyed structs cannot counter-attack
- Each struct can counter-attack at most once per
struct-attack invocation -- not per target, not per shot - Defender counter-attack fires before block, and fires even on evaded shots
- Target counter-attack fires after all shots resolve -- destroyed targets cannot counter
- Block does NOT fire on evaded shots -- only counter-attacks happen on evasion
- Evasion is per-target (entire volley evaded), while shot accuracy is per-projectile
- Each projectile gets its own EventAttackShotDetail --
targetPlayerId is on EventAttackShotDetail (not EventAttackDetail) - PDC does not counter-attack -- it only auto-fires after all targets are resolved
- Multiple players' PDCs on the same planet stack correctly
- Target struct existence is validated before attack proceeds
- Hashing for raid-compute is open by default -- any valid proof accepted
- Successful raids seize ALL of the target's storedOre -- one raid takes everything
- Destroyed structs are gone forever but can be replaced by building a new struct of the same type (full PoW required)
- Protect your Command Ship -- losing it disables your entire fleet until a replacement is built
Combat Readiness Checklist
Before engaging in combat, verify all conditions:
- - [ ] Command Ship online —
structsd query structs struct [cmd-ship-id], status = Online - [ ] Fleet on station (for defense) or fleet away (for raids) — INLINECODE33
- [ ] Sufficient charge — Weapons cost 1-20 charge. At ~6 sec/block, 20 charge = 2 minutes
- [ ] Power capacity headroom — Total load must stay below capacity during combat
- [ ] Defense structs assigned — PDC, Orbital Shield, defenders set via INLINECODE34
- [ ] Available struct slot — If building combat structs, check planet slots (0-3 per ambit)
- [ ] Ore refined or secured — Unrefined ore is stealable. Refine before engaging in raids that may invite retaliation
Defense Formations
Assign defenders to protect high-value structs. Defenders absorb incoming attacks before the protected struct takes damage.
Minimum viable defense: Assign at least one combat struct per ambit to defend your Command Ship. Command Ship has 6 HP; most fleet structs have 3 HP. Without defenders, a Command Ship can be destroyed in just a few attacks.
Example formation (4 Starfighters defending Command Ship):
CODEBLOCK0
Rules:
- - Defenders must be in the same ambit as the target being defended to block (not the attacker's ambit)
- A struct cannot block for a friendly in a different ambit
- Defenders counter-attack once per
struct-attack invocation (before block, even on evaded shots) -- for multi-shot weapons (Attack Run with 3 projectiles), the defender counters on the first shot only but can attempt to block all 3 shots - Counter-attacks are ambit-independent from the defended target (a space defender can counter a space attacker while defending a land struct)
- Attacking Signal Jamming targets (Battleship, Pursuit Fighter, Cruiser) with guided weapons is riskier -- you miss AND get countered
- Each defender assignment costs 1 charge -- stagger 6s apart (same account)
- Build defense BEFORE economy or offense -- always
- Defense protects structs from destruction but does NOT prevent ore seizure -- the only defense for ore is immediate refining
Error Handling
- - "insufficient charge" — Weapon needs charge; check struct state.
- "target invalid" — Target may be destroyed, stealthed, or out of range.
- "unreachable" / "outofrange" — Your weapon cannot target that ambit. Check the targeting matrix above and reposition your Command Ship or use a different struct.
- "fleet not away" — Raids require fleet away; move fleet first.
- "proof invalid" — Re-run raid-compute with correct difficulty.
- Stolen ore — Refine immediately; ore is stealable until refined.
See Also
Structs Combat
重要提示: 包含连字符的实体ID(如5-10、9-3)会被CLI解析器误判为标志位。本技能中的所有交易命令均使用--作为位置参数的前缀,以避免此问题。
流程
- 1. 侦察 — structsd query structs planet [id]、structsd query structs struct [id],用于查看目标、护盾和防御。
- 可选潜行 — 攻击前执行 structsd tx structs struct-stealth-activate --from [key-name] --gas auto --gas-adjustment 1.5 -y -- [struct-id]。
- 攻击结构体 — structsd tx structs struct-attack --from [key-name] --gas auto --gas-adjustment 1.5 -y -- [operating-struct-id] [target-struct-id,target-id2,...] [weapon-system]。可同时攻击多个结构体。
- 掠夺流程 — 将舰队移动至目标:structsd tx structs fleet-move --from [key-name] --gas auto --gas-adjustment 1.5 -y -- [fleet-id] [destination-location-id]。然后执行 structsd tx structs planet-raid-compute -D 3 --from [key-name] --gas auto --gas-adjustment 1.5 -y -- [fleet-id]。计算完成后会自动提交完整交易。将舰队移动回家。立即精炼掠夺的矿石。
- 防御设置 — structsd tx structs struct-defense-set --from [key] --gas auto -y -- [defender-struct-id] [protected-struct-id] 用于分配;structsd tx structs struct-defense-clear --from [key] --gas auto -y -- [defender-struct-id] 用于移除。
命令参考
| 操作 | CLI命令 |
|---|
| 攻击 | structsd tx structs struct-attack -- [operating-struct-id] [target-ids] [weapon-system] |
| 掠夺计算(工作量证明+自动完成) |
structsd tx structs planet-raid-compute -D 3 -- [fleet-id] |
| 掠夺完成(手动,极少需要) | structsd tx structs planet-raid-complete -- [fleet-id] |
| 舰队移动 | structsd tx structs fleet-move -- [fleet-id] [destination-location-id] |
| 设置防御 | structsd tx structs struct-defense-set -- [defender-id] [protected-id] |
| 清除防御 | structsd tx structs struct-defense-clear -- [defender-id] |
| 开启潜行 | structsd tx structs struct-stealth-activate -- [struct-id] |
| 关闭潜行 | structsd tx structs struct-stealth-deactivate -- [struct-id] |
| 移动指挥舰(领域) | structsd tx structs struct-move -- [struct-id] [new-ambit] [new-slot] [new-location] |
掠夺流程:舰队移动 → 行星掠夺计算(自动提交完成) → 舰队移动回家 → 精炼掠夺矿石。常用交易标志:--from [key-name] --gas auto --gas-adjustment 1.5 -y。
掠夺时机
舰队移动(fleet-move)是即时的——没有航行时间。掠夺周期中唯一的时间成本是工作量证明计算。
planet-raid-compute 使用 -D 标志(范围1-64)来等待难度降低后再进行哈希计算。掠夺工作量证明的难度取决于目标行星的属性。在后台终端启动掠夺计算——根据难度可能需要几分钟到几小时。使用 -D 3 可避免CPU浪费。计算完成后会自动提交完整交易。
重要提示:在掠夺计算期间,你的舰队会被锁定为离开状态。舰队离开期间,你无法在你的行星上进行建造。请相应规划——在移动舰队进行掠夺之前,完成所有行星建造。
领域瞄准
每种武器只能攻击特定的领域。攻击前,请确认你的结构体武器能够到达目标的领域。
| 结构体 | 所在领域 | 主要目标 | 次要目标 |
|---|
| 指挥舰 | 任意(可移动) | 仅当前领域 | — |
| 战列舰 |
太空 | 太空、陆地、水域 | — |
| 星际战斗机 | 太空 | 太空 | 太空 |
| 护卫舰 | 太空 | 太空、空中 | — |
| 追击战斗机 | 空中 | 空中 | — |
| 隐形轰炸机 | 空中 | 陆地、水域 | — |
| 高空拦截机 | 空中 | 太空、空中 | — |
| 机动火炮 | 陆地 | 陆地、水域 | — |
| 坦克 | 陆地 | 陆地 | — |
| 地对空导弹发射器 | 陆地 | 太空、空中 | — |
| 巡洋舰 | 水域 | 陆地、水域 | 空中 |
| 驱逐舰 | 水域 | 空中、水域 | — |
| 潜水器 | 水域 | 太空、水域 | — |
指挥舰定位:指挥舰是唯一可以通过 struct-move 改变领域的结构体。它只能攻击其当前领域(领域标志 32 = 本地)内的结构体。攻击前将其移动到目标的领域。将其移出敌方武器射程作为防御策略。
武器控制 vs 防御类型
武器控制(制导/非制导)与目标防御之间的相互作用决定了闪避率。这是战斗战术的核心:
| 目标防御 | 对抗制导 | 对抗非制导 |
|---|
| 信号干扰(战列舰、追击战斗机、巡洋舰) | 66%未命中 | 完全命中 |
| 防御机动(高空拦截机) |
完全命中 |
66%未命中 |
| 装甲(坦克) | 完全命中,伤害-1 | 完全命中,伤害-1 |
| 潜行模式(隐形轰炸机、潜水器) | 仅同领域 | 仅同领域 |
| 间接战斗(机动火炮) | 完全命中 | 完全命中 |
| 无 | 完全命中 | 完全命中 |
战术:对抗信号干扰使用非制导武器,对抗防御机动使用制导武器。装甲总是减少1点伤害。
潜行规则:
- - 潜行状态的结构体仍可被同领域攻击——潜行仅阻止跨领域瞄准
- 攻击会立即解除潜行(开火会暴露位置)
- 重新激活消耗1点充能(struct-stealth-activate)
战略定位
进攻:将你的指挥舰移动到你想造成伤害的领域。使用跨领域攻击者(战列舰、隐形轰炸机、地对空导弹发射器、潜水器)进行覆盖,无需重新定位。
防御:如果敌方舰队只能瞄准特定领域,将你的指挥舰移动到一个他们无法到达的领域。在多个领域部署防御者,以便能够阻挡来自任何方向的攻击。
高价值跨领域单位:战列舰(太空→太空/陆地/水域)、地对空导弹发射器(陆地→太空/空中)、隐形轰炸机(空中→陆地/水域)、潜水器(水域→太空/水域)、巡洋舰(水域→陆地/水域+空中次要)。这些结构体威胁多个领域,是灵活舰队构成的基础。
验证
- - 查询行星护盾、结构体生命值
- 查询舰队位置(在站 vs 离开)
- 掠夺的矿石:立即精炼;通过结构体/玩家查询验证
- 攻击结果包含生命值(攻击后剩余生命值)——用于评估造成的伤害
- 掠夺的 seizedore 记录在 planetraid 记录中——查询可查看掠夺的矿石总量
战斗说明
- - 减伤后的最小伤害为1——攻击总是造成至少1点伤害
- 离线/被摧毁的结构体无法反击
- 每个结构体每次 struct-attack 调用最多反击一次——不是每个目标,也不是每次射击
- 防御者反击在阻挡之前触发,即使在闪避的射击中也会触发
- 目标反击在所有射击结算后触发——被摧毁的目标无法反击
- 阻挡不会在闪避的射击中触发——只有反击会在闪避时发生
- 闪避是按目标计算的(整轮齐射被闪避),而射击精度是按弹丸计算的
- 每个弹丸都有自己的EventAttackShotDetail——targetPlayerId 在EventAttackShotDetail上(不在EventAttackDetail上)
- 点防御系统不反击——它只在所有目标结算后自动开火
- 同一行星上多个玩家的点防御系统可以正确叠加
- 攻击进行前会验证目标结构体是否存在
- 掠夺计算的哈希默认是开放的——任何有效的证明都会被接受