public void Sell(MarketState marketstate, int stockstosell) { try { if (OnClientSellStocksEvent != null) { if (stockstosell > 0 && stockstosell <= Count && Stock.CalculatePrice(stockstosell) >= Stock.CalculateBrokerage(marketstate, stockstosell)) { OnClientSellStocksEvent(Stock.Id, this, marketstate, stockstosell); } } else if (stockstosell > 0 && stockstosell <= Count && Stock.CalculatePrice(stockstosell) >= Stock.CalculateBrokerage(marketstate, stockstosell)) { Count -= stockstosell; Stock.OwnedByPlayers -= stockstosell; Stock.Available += stockstosell; if (Count <= 0) { LastBuyPrice = 0; LastSellPrice = 0; } else { LastBuyPrice = Stock.Price; } Deposit.Player.Capital += Stock.CalculatePrice(stockstosell) - Stock.CalculateBrokerage(marketstate, stockstosell); } } catch (System.Exception ex) { throw ex; } }
public void Buy(MarketState marketstate, int stockstobuy) { try { if (OnClientBuyStocksEvent != null) { if (stockstobuy > 0 && stockstobuy <= Stock.Available && Deposit.Player.Capital >= Stock.CalculatePrice(stockstobuy) + Stock.CalculateBrokerage(marketstate, stockstobuy)) { OnClientBuyStocksEvent(Stock.Id, this, marketstate, stockstobuy); } } else if (stockstobuy > 0 && stockstobuy <= Stock.Available && Deposit.Player.Capital >= Stock.CalculatePrice(stockstobuy) + Stock.CalculateBrokerage(marketstate, stockstobuy)) { Count += stockstobuy; Stock.Available -= stockstobuy; Stock.OwnedByPlayers += stockstobuy; LastBuyPrice = Stock.Price; Deposit.Player.Capital -= Stock.CalculatePrice(stockstobuy) + Stock.CalculateBrokerage(marketstate, stockstobuy); } } catch (System.Exception ex) { throw ex; } }