In tevent.txt 'doing/taking X points of damage' means before ShieldLevel or DamageControl, so one must do the math based on 'Shields/Hull at X%'
Combat Damage against:
SHIELDS = (WeaponBaseDamage - [TargetShieldLevel - BeamShieldPenetration, min 0]) * WeaponMultiplier
HULL (if NOT destroyed by hit) = TotalDamage (ram or rest after shield depletion) * TargetHullDamageConductance % (damage control)
Thus no REAL Shield Penetration, it just lowers/bypasses the target's Shield Level vs this weapon, not the shields themselves.
Exception is the Ram feature ignoring shields i.e. a real shield penetration of 100%.
Damage Control reduces Hull damage after every hit i.e. the deadly blow isn't reduced (otherwise ram wouldn't work).
At 0x1956A0 (trek.exe) hull damage percentages (damage conductance) 100 (full damage, green level) to 25 (1/4 damage, legendary).
So torpedoes have an advantage against hull since stronger base damage, not reduced by distance, increases the chance to bypass damage control.
Star Trek weapons is strong fantasy stuff (torpedoes in particular). Impact/blasting power effect vs distance, shields and hull never made any sense (even by the figures of trek manuals). That being said, the popular belief is that:
Shield Penetration (torpedo standard 10% or 5%, unless special) usually means "bleeds" through then faces what ever hull resistances are in place:The important thing to remember about nearly all torpedoes, is that the base damage is Kinetic. Shields are very effective against kinetic damage. Essentially only 25% of torpedo damage is applied against shields.
Romulan torpedoes also offer some extra shield penetration in the sense that the plasma fire does extra damage.a torpedo attack that delivers 3000 damage looks like this against a standard shield facing. Shield takes 90% and 10% “bleeds” through, so 2700 to shield, 300 to hull. The shield shrugs off 75% of kinetic damage so only 675 is applied to shields
-> their torpedo base damage will be slightly higher to simulate this and to compensate that their surprise attack is somewhat weakened
Most games ship’s hulls will have around 50% resistance based on the crew and special ship features setup.
-> this would be Damage Control & stuff like ablative armor
Reduced Torpedo Efficiency against Shields (for realism and longer battles) 25% in Vanilla BotF (Romulan Plasma 40%)
Shield Level and Shield Penetration ought to be percentage values with a different functionality, which restricts us to intricate workarounds:
1.) Determining and setting the lowest useful Torpedo Base Damage values and Multipliers.
All vanilla card-kling & minor torpedo damage values are divisible by 4, rom by 5 (fits, they should do a bit better against shields, see above).
In shiplist.sst set e.g. fed 44 to damage 4 & multiplier 11 resp. rom 70 to damage 5 & multiplier 14 (in game display is still 44 resp. 70)
For 'special' torpedoes (more effective against shields) set higher base damage with lower multiplier.
2.) Shield Level (our range here is 0-3) default 3 = shields 'shrug off' 75% torpedo damage (resp. 60% vs romulan), SL 2 = 50% resp. 40% a.s.o.
SL 4 would be immune to torpedoes, except to romulan plasma with still 20%; SL 5 even to romulan torpedoes.
3.) Beam Shield Penetration 3+ means ignore/bypass the target Shield Level (desired behavior, remember it's not real shield penetration).
We can also modify lower beam efficiencies vs shields, even easier than torpedoes due to the extra Shield Penetration value.
E.g. for a primitive laser beam: Base damage 12 vs shield (level 3) 'shrugs off' 25% resp. 6 = 50% a.s.o.
4.) Monsters should NOT be modded due to game balance issues (defaults 'Shield Level' and 'Beam Shield Penetration' 0 and 'Torpedo Multiplier' 1).
The AI understands all of the features and will adapt to them
But of course this simple example barely scratches the surface of possibilities....
Gowron wrote:"Interesting" is a great understatementSpocks-cuddly-tribble wrote:Joker's page refers to Beam/Torpedo multipliers to create different effects against shields and hull. Could be an interesting feature.
It would be incredibly useful. There could be counter ships against certain ship types.
A real counter system for ships could probably be implemented with current state of knowledge, but would be a LOT of work, too much for the moment.
A counter system means that certain ships are designed to counter certain other ships. Think of it as an enhanced rock-paper-scissors game.
With such a system, players would be rewarded for adapting their fleet composition to that of their respective opponent.
EDIT: Sadly the vanilla code is out of sync due to pre-calculated, wrong total damage (after weapon multipliers).
Code: Select all
NAME: ECMS - Shield Level Fix Patch - Reduced Torpedo Efficiency against Shields for realism and longer battles
DESC: Workaround for semi-implemented, out of sync code inconsistencies (shield level, penetration and weapon multipliers).
AUTHOR: Spocks-cuddly-tribble
URL: https://www.armadafleetcommand.com/onscreen/botf/viewtopic.php?p=54617#p54617
>> 0x000fedd7 8b ac
>> 0x000fedde 55 68 40 29 58 00 b9 06 00
>> 0x000ff092 00 00 00 00 00
>> 0x000ff098 00 00 00 00 00 00 00
>> 0x00128c90 dc 8c
>> 0x00128c97 dd 9c 24 84 00 00 00 8b 85 f8 01 00 00 8b 95 f4 01 00 00 0f af c2 89
>> 0x00128caf 24 8c
>> 0x00128cb3 00 85 f6 7e 0b 83 7c 24 04 00 0f 84 a6
>> 0x00128cc1 00 00
>> 0x00128d72 4d
>> 0x0012ab93 8b 78 08
>> 0x0012abba 31 fb
<< 0x000fedd7 8d b4
<< 0x000fedde 8b 46 fc 0f af 06 e9 a9 02
<< 0x000ff092 50 68 40 29 58
<< 0x000ff098 b2 06 e9 4a fd ff ff
<< 0x00128c90 8d 84
<< 0x00128c97 dc 08 dd 18 8d 95 f4 01 00 00 8b 42 04 85 f6 7e 0f 83 7c 24 04 00 0f
<< 0x00128caf b6 00
<< 0x00128cb3 2b 44 24 08 0f af 02 89 84 24 8c 00 00
<< 0x00128cc1 90 90
<< 0x00128d72 3D
<< 0x0012ab93 33 ff 90
<< 0x0012abba 33 db
# Redeploy Screen - Torpedo Stats Fix
# 004FF9D7 8DB424 9C0A0000 LEA ESI,[ESP+A9C]
# 004FF9DE 8B46 FC MOV EAX,[ESI-4] // topedo muliplier
# 004FF9E1 0FAF06 IMUL EAX,[ESI] // * torpedo base damage
# 004FF9E4 E9 A9020000 JMP 4FFC92
# 004FFC92 50 PUSH EAX
# 004FFC93 68 40295800 PUSH 582940 ; ASCII "%d"
# 004FFC98 B2 06 MOV DL,6
# 004FFC9A ^E9 4AFDFFFF JMP 4FF9E9
# torpedo damage -> real
# 00529890 8D8424 84000000 LEA EAX,[ESP+84]
# 00529897 DC08 FMUL QWORD [EAX]
# 00529899 DD18 FSTP QWORD [EAX]
# 0052989B 8D95 F4010000 LEA EDX,[EBP+1F4]
# 005298A1 8B42 04 MOV EAX,[EDX+4] // torpedo base damage
# 005298A4 85F6 TEST ESI,ESI // shields down?
# 005298A6 7E 0F JLE SHORT 5298B7 // go full torpedo damage
# 005298A8 837C24 04 00 CMP DWORD [ESP+4],0
# 005298AD 0F84 B6000000 JE 529969
# 005298B3 2B4424 08 SUB EAX,[ESP+8] // - taregt shield level
# 005298B7 0FAF02 IMUL EAX,[EDX] // torpedo base base damage * weapon multiplier
# 005298BA 898424 8C000000 MOV [ESP+8C],EAX // torpedo damage total -> real
# 005298C1 90 90 NOP
# 00529971 ^E9 3DFFFFFF JMP 5298B3 // go old shield level
# Disable Default Shield Level Code & unfinished Beam Shield Penetration
# 0052B793 33FF XOR EDI,EDI
# 0052B795 90 NOP
# 0052B7BA 33DB XOR EBX,EBX