using OWML.Utils; using QSB.Utility; using QSB.WorldSync; namespace QSB.ShipSync.WorldObjects { class QSBShipComponent : WorldObject { public override void Init(ShipComponent component, int id) { ObjectId = id; AttachedObject = component; } public void SetDamaged() { DebugLog.DebugWrite($"[S COMPONENT] {AttachedObject} Set damaged."); AttachedObject.SetValue("_damaged", true); AttachedObject.SetValue("_repairFraction", 0f); AttachedObject.GetType().GetAnyMethod("OnComponentDamaged").Invoke(AttachedObject, null); QSBWorldSync.RaiseEvent(AttachedObject, "OnDamaged", AttachedObject); AttachedObject.GetType().GetAnyMethod("UpdateColliderState").Invoke(AttachedObject, null); var damageEffect = AttachedObject.GetValue("_damageEffect"); damageEffect.SetEffectBlend(1f); } } }