このドキュメントは、現行実装における艦種仕様をまとめたものです。
実装参照:
src/ts/catalog.tssrc/ts/components.tssrc/ts/starship.tssrc/ts/scenes.ts
各艦は次のコンポーネントで構成されます。
- 船体(Hull)
- 推進エンジン(Thruster Engine)
- 射撃ユニット(Turret)
- レーダー(Radar)
基本ルール:
- 各コンポーネントは
massを持つ - 加速度 = 総推進力 ÷ 総質量
- 旋回速度 = (エンジン旋回力合計)÷ 総質量
- 初期化時および損傷時に
engines.length <= weapons.lengthを維持 - コスト = 総質量(
Starship#getCost())
- HullA (
HullA)- mass: 1
- hp/maxHp: 100/100
- size: 12
- HullB (
HullB)- mass: 3
- hp/maxHp: 300/300
- size: 28
- HullC (
HullC)- mass: 5
- hp/maxHp: 500/500
- size: 47
- ThrusterA (
ThrusterEngine)- mass: 1
- thrust: 0.15
- rotationSpeed: 0.1
- RadarA
- mass: 0
- detectionRange: 120
- RadarB
- mass: 1
- detectionRange: 160
- RadarC
- mass: 2
- detectionRange: 200
注記:
- レーダーの
detectionRangeは索敵ロジックに反映済み(Starship#getDetectionRange()経由)
- TurretA (
IndependentTurretA)- mass: 1
- hp/maxHp: 100/100
- fireInterval: 60
- bulletDamage: 10
- bulletSpeed: 5
- maxRange: 160
- rotationSpeed: 0
- TurretB (
IndependentTurretB)- mass: 2
- hp/maxHp: 150/150
- fireInterval: 60
- bulletDamage: 10
- bulletSpeed: 5
- maxRange: 200
- rotationSpeed: 0.1
- TurretC (
IndependentTurretC)- mass: 4
- hp/maxHp: 200/200
- fireInterval: 90
- bulletDamage: 20
- bulletSpeed: 5
- maxRange: 260
- rotationSpeed: 0.1
src/ts/starship.ts の SHIP_PRESETS と src/ts/scenes.ts の配置定義に基づく。
構成:
- HullA x1
- ThrusterA x1
- TurretB x1
- RadarA x1
注記:
SHIP_PRESETS.corvetteにweaponClass指定がないため、StarshipデフォルトのIndependentTurretBを使用
統合値:
- 総質量:
1 + 1 + 2 + 0 = 4 - 総推進力:
0.15 - 加速度:
0.15 / 4 = 0.0375 - 旋回速度:
0.1 / 4 = 0.025 - 索敵範囲: 120
- コスト: 4
構成:
- HullB x1
- ThrusterA x2
- TurretB x2
- RadarB x1
注記:
SHIP_PRESETS.destroyerでweaponMaxRange: 270を上書き
統合値:
- 総質量:
3 + 2 + 4 + 1 = 10 - 総推進力:
0.15 x 2 = 0.3 - 加速度:
0.3 / 10 = 0.03 - 旋回速度:
(0.1 x 2) / 10 = 0.02 - 索敵範囲: 160
- コスト: 10
構成:
- HullC x1
- ThrusterA x3
- TurretC x3
- RadarC x1
統合値:
- 総質量:
5 + 3 + 12 + 2 = 22 - 総推進力:
0.15 x 3 = 0.45 - 加速度:
0.45 / 22 = 0.02045... - 旋回速度:
(0.1 x 3) / 22 = 0.01363... - 索敵範囲: 200
- コスト: 22
hasBeenDamaged === trueのときだけHPバーを描画- 武装が残っている間は武装ごとのHPバーを表示
- 武装が0になった後は船体HPバーを表示
- ダメージはまず
weapons[0]に入る - 武装破壊時:
- 破壊武装を
shift()で除去 engines.length > weapons.lengthの間、エンジンをpop()して除去
- 破壊武装を
- 武装0で残骸状態に遷移
- 残骸判定:
ship.weapons.length === 0 - 残骸への攻撃は
attackWrecksで切替
- HullA: 1
- HullB: 3
- HullC: 5
- ThrusterA: 1
- TurretA: 1
- TurretB: 2
- TurretC: 4
- RadarA: 0
- RadarB: 1
- RadarC: 2