Torque Compensation for Strafe Input

Adjusted thruster firing to compensate for torque introduced by uniform application of strafe input to lateral thrusters.
This commit is contained in:
Reinier Vens 2021-03-03 01:53:23 +00:00
commit fae3b85213
4 changed files with 165 additions and 34 deletions

View file

@ -90,6 +90,8 @@ public abstract class Entity
public Subject<(int2 pos, float damage)> ArmorDamage = new Subject<(int2, float)>();
public Subject<(EquippedItem item, float damage)> ItemDamage = new Subject<(EquippedItem, float)>();
public Subject<EquippedItem> ItemOffline = new Subject<EquippedItem>();
public Subject<EquippedItem> ItemOnline = new Subject<EquippedItem>();
public Subject<float> HullDamage = new Subject<float>();
public Subject<Entity> Docked = new Subject<Entity>();
@ -474,25 +476,26 @@ public abstract class Entity
{
equippedItem = new EquippedItem(ItemManager, item, hullCoord, this);
Equipment.Add(equippedItem);
foreach (var b in equippedItem.Behaviors)
{
if(b is Capacitor capacitor)
_capacitors.Add(capacitor);
}
}
}
else
{
equippedItem = new EquippedItem(ItemManager, item, hullCoord, this);
Equipment.Add(equippedItem);
foreach (var b in equippedItem.Behaviors)
{
if (b is Weapon weapon)
_weapons.Add(weapon);
if(b is Reactor reactor)
_reactors.Add(reactor);
}
}
foreach (var b in equippedItem.Behaviors)
{
if (b is Weapon weapon)
_weapons.Add(weapon);
if(b is Capacitor capacitor)
_capacitors.Add(capacitor);
if(b is Reactor reactor)
_reactors.Add(reactor);
}
equippedItem.OnEnable += () => ItemOnline.OnNext(equippedItem);
equippedItem.OnDisable += () => ItemOffline.OnNext(equippedItem);
foreach (var i in itemData.Shape.Coordinates)
{