private static void HandleLockOffer(GameSession session) { TradeInventory tradeInventory = session.Player.TradeInventory; tradeInventory.IsLocked = true; session.Send(TradePacket.FinalizeOffer(true)); tradeInventory.OtherPlayer.Session?.Send(TradePacket.FinalizeOffer(false)); }
public void SetUp(Survivor survivor) { this.survivor = survivor; survivor.action.survivorCard = this; rearrangeInventory = GetComponent <RearrangeInventory>(); tradeInventory = GetComponent <TradeInventory>(); storeInventory = GetComponent <StoreInventory>(); itemStats = GetComponent <ItemStats>(); rearrangeInventory.survivor = survivor; tradeInventory.survivor = survivor; storeInventory.survivor = survivor; }
private static void HandleFinalizeTrade(GameSession session) { TradeInventory tradeInventory = session.Player.TradeInventory; Player otherPlayer = tradeInventory.OtherPlayer; if (!otherPlayer.Session.Connected()) { HandleCloseTrade(session); return; } TradeInventory otherPlayerTradeInventory = tradeInventory.OtherPlayer?.TradeInventory; if (otherPlayerTradeInventory is null) { return; } if (!otherPlayerTradeInventory.IsLocked && !tradeInventory.IsLocked) { return; } session.Send(TradePacket.FinalizeTrade(true)); otherPlayer.Session.Send(TradePacket.FinalizeTrade(false)); // Trade items GetSumMesos(session.Player, -tradeInventory.Mesos, otherPlayerTradeInventory.Mesos); otherPlayerTradeInventory.SendItems(session.Player, true); GetSumMesos(otherPlayer, -otherPlayerTradeInventory.Mesos, tradeInventory.Mesos); tradeInventory.SendItems(otherPlayer, true); session.Send(TradePacket.TradeStatus(true)); otherPlayer.Session?.Send(TradePacket.TradeStatus(true)); session.Player.TradeInventory = null; otherPlayer.TradeInventory = null; }
private static void HandleCloseTrade(GameSession session) { TradeInventory tradeInventory = session.Player.TradeInventory; if (tradeInventory is null) { return; } Player otherPlayer = tradeInventory.OtherPlayer; // Return items back to player's inventory tradeInventory.SendItems(session.Player, false); tradeInventory = null; if (otherPlayer?.TradeInventory is null) { return; } session.Send(TradePacket.TradeStatus(false)); otherPlayer.Session?.Send(TradePacket.TradeStatus(false)); }