private void Update()
        {
            if (timerStarted)
            {
                if (!gameData.gameIsPaused)
                {
                    gameData.dayCountdownSeconds += Time.deltaTime * gameData.gameSpeed;

                    float nightTime = Mathf.Floor(gameData.dayCountdownSeconds);
                    if (nightTime == gameData.daySpeedInSeconds * 0.5f && !hasTriggeredNightStart)
                    {
                        hasTriggeredNightStart = true;
                        OnDayComplete?.Invoke();
                    }

                    if (gameData.dayCountdownSeconds >= gameData.daySpeedInSeconds)
                    {
                        gameData.dayCountdownSeconds = 0;

                        hasTriggeredNightStart = false;

                        OnDayStarted?.Invoke();
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Draw the summury section
        /// </summary>
        /// <param name="mainSectionLine"></param>
        /// <param name="companyName"></param>
        /// <param name="totalYears"></param>
        /// <param name="initialCapital"></param>
        /// <param name="a"></param>
        static void DrawSummarySection(string companyName, string status, int dayNumber, int initialCapital, OnDayComplete a)
        {
            WriteLine(MainSectionLine, " Simbolo {0} - {1}", companyName, status);
            DrawLine(MainSectionLine + 1);
            WriteLine(MainSectionLine + 2, " Periodo: ");
            WriteLine(MainSectionLine + 3, " Fecha {0} - Open: {1:C} - High: {2:C} - Low: {3:C} - Close: {4:C} \t\t\t Incremento: {5:P2}", a.Date.ToShortDateString(), a.Period.Open, a.Period.High, a.Period.Low, a.Period.Close, (a.Period.Close - initialValue) / initialValue);
            WriteLine(MainSectionLine + 4);
            DrawLine(MainSectionLine + 5);
            WriteLine(MainSectionLine + 6, " Indicadores Bursatiles: ");
            WriteLine(MainSectionLine + 7);

            var indicatorsSection = MainSectionLine + 8;
            var indicators        = a.Period.ToString().Split('|');

            for (int i = 0; i < indicators.Length; i++)
            {
                var val = indicators[i];
                WriteLine(indicatorsSection + i, "\t" + val.Trim());
            }

            var agentSummary = indicatorsSection + indicators.Length + 1;

            WriteLine(agentSummary);
            DrawLine(agentSummary + 1);
            WriteLine(agentSummary + 2, " Estado del Agente - Año {0} - Dia {1}", a.TotalOfYears, dayNumber);
            WriteLine(agentSummary + 3);
            WriteLine(agentSummary + 4, " Accion: {0}\t Recompenza: {1:N9}\t", a.SelectedAction, a.Reward);
            WriteLine(agentSummary + 5, " Capital Actual: {0:C}\t Cantidad de Acciones: {1}\t Ganancia Acumulada: {2:C}\t\t Renta Anual: {3:P2}", a.Period.CurrentCapital, a.Period.ActualPosition, a.AccumulatedProfit, a.AnnualRent);
        }
Exemplo n.º 3
0
 void DayTicks()
 {
     OnDayComplete?.Invoke();
     DayCounter += 1;
     GameManager.instance.UI.UpdateDayTimeUI();
 }
Exemplo n.º 4
0
        /// <summary>
        /// Called when [day complete].
        /// </summary>
        /// <param name="args">The arguments.</param>
        public void OnDayComplete(OnDayComplete args)
        {
            var group = Clients.Group(string.Format(GroupNameTemplate, args.AgentId));

            group?.onDayComplete(args);
        }