private void OnLocoDeptPaidMessage(Message message) { using (DarkRiftReader reader = message.GetReader()) { Main.Log($"[CLIENT] < DEBT_LOCO_PAID"); while (reader.Position < reader.Length) { IsChangeByNetwork = true; DebtPaid data = reader.ReadSerializable <DebtPaid>(); if (data.isDestroyed) { StagedLocoDebt debt = SingletonBehaviour <LocoDebtController> .Instance.destroyedLocosDebts.FirstOrDefault(t => t.ID == data.Id); if (debt != null) { debt.Pay(); } } else { ExistingLocoDebt debt = SingletonBehaviour <LocoDebtController> .Instance.trackedLocosDebts.FirstOrDefault(t => t.ID == data.Id); if (debt != null) { debt.Pay(); } } IsChangeByNetwork = false; } } }
private static void Postfix(ExistingLocoDebt locoDebtToPay) { if (NetworkManager.IsClient() && SingletonBehaviour <NetworkTrainManager> .Exists && SingletonBehaviour <NetworkTrainManager> .Instance.IsSynced && SingletonBehaviour <NetworkDebtManager> .Exists && !SingletonBehaviour <NetworkDebtManager> .Instance.IsChangeByNetwork) { SingletonBehaviour <NetworkDebtManager> .Instance.OnLocoDeptPaid(locoDebtToPay.ID, false); } }