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(); } } } }
/// <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); }
void DayTicks() { OnDayComplete?.Invoke(); DayCounter += 1; GameManager.instance.UI.UpdateDayTimeUI(); }
/// <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); }