In response to this post
Goals of this design:
- Until there is visual representation of ship combat that can express distance and speed better, keep it dirt simple. Unless there is a compelling case, explain it away as the 'chaos of combat'.
- Make the result of ranged combat reasonably expected.
- For simplicity, player should not have to look up any ship design in the 'pedia to know the relevant combat information.
- Range/Speed should have a unique value in combat (different from weapons/hull/shields and stealth/detection).
- Range/Speed should be complimentary to other combat aspects (currently weapons/hull/shields and stealth/detection).
- Have siege units, similar to StarCraft's tank, that have very long range.
- Have siege units that have a minimum firing range, which makes them susceptible to shorter range fire.
- For simplicity, speed is relative.
- For simplicity, use existing starlane speed for combat speed (code has these as distinct values (m_battle_speed vs m_starlane_speed), but we already have a speed stat on the ship/fleet summary UI)
- Don't deviate from existing FO design as much as possible.
- Require as little code change as possible. Ideally, changes would be restricted to CombatSystem.cpp and hull definitions.
OTHER NOTE: In reviewing the code, there are existing pieces of code and design that this would utilize, which makes me think that this would be inline with long term designs - in so much as there is no visualization yet.
Attack Ranges:
Give hulls an attack range. Available attack ranges are as follows:
- Very Short Range (VSR)
- Short Range (SR)
- Medium Range (MR)
- Long Range (LR)
- Very Long Range (VLR)
Weapon Range in Combat:
Weapon ranges would translate to 5 "phases" of combat (planets get to fire in every phase*). This represents and models the benefits and drawbacks of range. This replaces the old N combat turns per attacker mechanism.**
1. VLR
2. VLR, LR
3. VLR*, LR, MR
4. LR, MR, SR
5. MR, SR, VSR***
** While this replaces the old 3 x NumShip mechanism, most range classes of ships still get 3 combat turns.
*** Phase 5 could repeat as many times as necessary to ensure that there are always at least 3 phases of combat, which would make the duration of battles similar to the current 3 x NumShips mechanism.
*** Phase 5 could be modified to have N combat turns, depending how powerful we want to make MR, SR and VSR ships relative to the other ships. Have they "broken through the line" and are free to run amonk, or have they spent all of their energy/fuel(!) getting to this phase of the fight?
(!) And here is where fuel could become relevant to combat, taking 1 unit of fuel to move from one phase of combat to the next. Combat would end when all targets are destroyed or no ships have any fuel.
* Planets
Existing code has planet defense as PC_SHORT_RANGE. I would almost recommend that planets get Long Range with no VSR penalty (min=Very Short Range, max=Long Range). This would allow for VLR ships to "siege" a planet - attacking without taking damage. The extra benefit to VLRs ships might suggest nerfing VLRs by taking them out of phase 3 firing. But this seems to be getting into too-much-code-change territory
An Example:
1 Very Long Range (VLR) vs 5 Very Short Range (VSR). (equal in every other way)
Old way: 6 ships x 3 "combat duration" = max: 18 combat turns.
New way: between 5-8 combat turns
1. VLR - 1 VLR ships = 1 VLR only discharge of shots
2. VLR, LR - 1 VLR ships = 1 VLR only discharge of shots
3. VLR, LR, MR - 1 VLR ships = 1 VLR only discharge of shots
4. LR, MR, SR - <nothing here: skip>
5. MR, SR, VSR - 5 VSR ships* = 5* VSR only shots
*minus any destroyed
In this case, if one shot equals one kill (and all ships have 1 weapon) the results would be 2 Very Short Range ships left.
UI Changes:
- New range icon in fleet summary panel. Value would be averaged (similar to how shields are now). Value would be expressed as one of "VLR", "Long", "Med", "Short", "VSR".
- New range icon in ship summary panel. Value would be expressed as one of "VLR", "Long", "Med", "Short", "VSR".
- The format of the combat report would change as follows*:
* fleet compositions ignored for the purpose of showing format.Combat at Shaula on turn 199:
Ships engage at Very Long Range
Round 1: A attacks B and does 38 damage
Round 2: C attacks D and does 15 damage
Ships engage at Long to Very Long Range
Round 3: E attacks F and does 38 damage
Round 4: G attacks H and does 15 damage
Ships engage at Medium to Very Long Range
Round 5: I attacks J and does 38 damage, destroying target
Round 6: K attacks L and does 15 damage
Ships engage at Short to Long Range
Round 7: M attacks N and does 38 damage
Round 8: O attacks P and does 15 damage, destroying target
Ships engage at Very Short to Medium Range
Round 9: Q attacks R and does 38 damage
Round 10: S attacks T and does 15 damage