让武器模式与目标分工保持一致
组合替代弹体、模式记忆和地空筛选,避免两层规则互相抵消
单位许可与炮塔许可都要看
attack 决定整辆车可以考虑哪些目标,turret_main 还可以继续限制这门炮,防空变体需要同时允许整车和炮塔攻击空中单位,只改一层可能仍然无法开火
[attack]
canAttack: true
canAttackFlyingUnits: true
canAttackLandUnits: false
canAttackUnderwaterUnits: false
[turret_main]
canAttackFlyingUnits: true
canAttackLandUnits: false
canAttackUnderwaterUnits: false同一门炮按状态选择弹体
普通弹和稳定弹共用炮口,altProjectileCondition 读取当前模式,条件成立时使用 focused,否则使用 normal,这种写法适合只替换弹体而无需再复制整门炮的场景
[turret_main]
x: 0
y: 0
projectile: normal
altProjectile: focused
altProjectileCondition: memory.focused
[projectile_normal]
directDamage: 20
life: 1.8s
speed: 4
[projectile_focused]
directDamage: 34
life: 1.8s
speed: 5模式获得好处,也承担代价
稳定射击提高伤害,同时降低移动速度,恢复巡航时要把状态和速度一起还原,isLocked 控制按钮提示,requireConditional 则在执行时再次检查,减少排队期间状态变化造成的意外
[action_focus]
text: 稳定射击 / Stabilize
buildSpeed: 0
isLocked: if memory.focused
requireConditional: if not memory.focused
setUnitMemory: focused=true
setUnitStats: movespeed=0.35
[action_cruise]
text: 恢复巡航 / Resume cruise
buildSpeed: 0
isLocked: if not memory.focused
requireConditional: if memory.focused
setUnitMemory: focused=false
setUnitStats: movespeed=0.85先对照弹体,再比较总表现
先在相同距离对同一目标观察普通弹和稳定弹,再检查移动速度,最后换成防空变体面对空中目标,测试时保持其他条件一致,避免把射程、装甲或目标类型差异误认为模式带来的提升
动手练习
把稳定弹伤害改为 30,再写下你会如何调整移速代价