The idea is pretty solid. But could you clarify?Three type damage could just be nixed for a simplified single value with very little change in how the system works. Basically, you have a single value that represents the gradient between EM > Thermal > Kinetic. Let's say for example %0= pure Thermal, %100= pure Kinetic.
Beams (thermal) = Default to 25% but can be shifted from 0-50% using chambers or other modifiers.
Missiles (ballenced) = Default to 50% but can be shifted from 25-75% using chambers or other modifiers.
Cannons (kinetic) = Default to 75% but can be shifted from 50-100% using chambers or other modifiers.
Armor = Default to 66% but can be shifted from 25-100% using chambers. (Protects best against kinetics weapons by default.)
Shields = Defaults to 33% but can be shifted from 0-75% using chambers. (Protects best against thermal weapons by default.)
(these could be swapped if you wanted shields to block cannons and armor to block beams)A basic system for handling this would be:
$damageMultiplier = 1+Math.Abs($defenseBallence - $weaponBallence) /100;
First, how would you protect against EM, is EM damage the middle-ground in your system? Or is Thermal the middle ground in your system? Why not just use EM weapons? Could you clarify that, and clarify your sliders slightly?
Secondly, just to clarify the math for everyone else. It's:
%DamageDealt = 1 + TheAbsoluteValueOf( %DefenseOfType - %TypeOfWeapon)/100
Correct? Your variables have me slightly confused.