HISP/Horse Isle Server/HorseIsleServer/Player/Trade.cs
2021-02-24 22:36:15 +13:00

64 lines
1.9 KiB
C#

using HISP.Game;
using HISP.Game.Horse;
using HISP.Game.Items;
using HISP.Security;
using HISP.Server;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HISP.Player
{
public class Trade
{
public Trade(User me)
{
RandomId = RandomID.NextRandomId();
Trader = me;
}
public int RandomId;
public User Trader;
public Trade OtherTrade;
public string Stage = "OPEN";
public int MoenyOffered = 0;
public List<HorseInstance> HorsesOffered = new List<HorseInstance>();
public List<ItemInstance[]> ItemsOffered = new List<ItemInstance[]>();
private void endTrade()
{
Trader.PendingTradeTo = 0;
Trader.TradingWith = null;
OtherTrade.Trader.PendingTradeTo = 0;
OtherTrade.Trader.TradingWith = null;
GameServer.UpdateArea(Trader.LoggedinClient);
GameServer.UpdateArea(OtherTrade.Trader.LoggedinClient);
}
public void CancelTrade()
{
byte[] tradeCanceled = PacketBuilder.CreateChat(Messages.TradeCanceledByYouMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeCanceled);
byte[] tradeCanceledOther = PacketBuilder.CreateChat(Messages.FormatTradeCanceledByPlayer(Trader.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
OtherTrade.Trader.LoggedinClient.SendPacket(tradeCanceledOther);
endTrade();
}
public void CancelTradeMoved()
{
byte[] playerMoved = PacketBuilder.CreateChat(Messages.TradeCanceledBecuasePlayerMovedMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(playerMoved);
OtherTrade.Trader.LoggedinClient.SendPacket(playerMoved);
endTrade();
}
}
}