public void LoadGame(Mode mode = Mode.Simple) { gameMode = mode; switch (gameMode) { case Mode.Simple: { //Создаём отрисовщик графика chartDataManager = CreateRandomDataManager(); //Задаём рандомную временнУю область игры. Некоторое количество свечей предыстории, некоторое количество свечей на игру int fluctuationCount = DateTimeTools.CountFramesInPeriod(chartDataManager.TFrame, chartDataManager.DataBeginTime, chartDataManager.DataEndTime, TimeSpan.Zero); SetRandomGameTime(fluctuationCount); chartDataManager.SetWorkDataRange(fluctuation1ID, fluctuationsCountToLoad); } break; default: { Debug.LogError("Не создан сценарий для данного мода"); } break; } //задаём систему координат coordGrid = new CoordinateGrid(chartDataManager.WorkBeginTime, chartDataManager.TFrame); chartDrawer.ReloadData(); chartDrawer.ChartDataManager = chartDataManager; chartDrawer.CoordGrid = coordGrid; chartDrawer.CalculateMovingAverage(0, gamePrefs.Fast_ma_length); chartDrawer.CalculateMovingAverage(1, gamePrefs.Slow_ma_length); coordGrid.OnScaleChange += chartDrawer.UpdateInNextFrame; //Передаём ссылки на необходимые классы контроллеру навигации на графике NavigationController.Instance.ChartDataManager = chartDataManager; NavigationController.Instance.CoordGrid = coordGrid; NavigationController.Instance.Initialize(); PlayerManager.Instance.InitializeData(chartDataManager); PlayerManager.Instance.TradeIsClosed += ClosedTradeEffect; PlayerManager.Instance.TradeIsOpened += (price, position) => { current_price = (double)price; }; UpdatePlayersInfoFields(); chartDataManager.WorkFlowChanged += () => { chartDrawer.UpdateMovingAverage(0, gamePrefs.Fast_ma_length); }; chartDataManager.WorkFlowChanged += () => { chartDrawer.UpdateMovingAverage(1, gamePrefs.Slow_ma_length); }; gamePrefs.FastMALengthChanged += (x) => { chartDrawer.CalculateMovingAverage(0, x); }; gamePrefs.SlowMALengthChanged += (x) => { chartDrawer.CalculateMovingAverage(1, x); }; GameButtonsSetActive(true); chartInterface.InterfaceSetActive(true); }
public void InitializeData(IScalableDataManager chartData) { this.chartData = chartData; tmpPlayerCap = PlayerCurrentBalance = (decimal)PlayerPrefs.GetFloat("Deposit", 10000); PositionSize = 0; bestTrade = decimal.MinValue; worstTrade = decimal.MaxValue; posTradesCount = negTradesCount = 0; TradeIsClosed = null; TradeIsOpened = null; playerOrders = new List <Order>(); }