/// <summary> /// Returns the appropriate background sprite based on the current time of day. /// </summary> /// <returns></returns> private Sprite GetAppropriateBackgroundSprite() { // if singleton references are NOT setup if (_gameManager == null) { // setup vars that hold reference to components InitializeComponentReferences(); } // get game's current calendar data TimeCalendarSystem currentCalendar = _gameManager.HavenData.calendarSystem; // get background spite based on current time of day switch (currentCalendar.currentTimeSlot) { case TimeSlotType.Morning: return(bgSpriteMorning); case TimeSlotType.Afternoon: return(bgSpriteAfternoon); case TimeSlotType.Evening: return(bgSpriteEvening); default: // print warning to console Debug.LogWarning("In GetAppropriateBackgroundSpite(), got invalid case value: " + $"{currentCalendar.currentTimeSlot.ToString()}"); // return default invalid sprite return(null); } }
/// <summary> /// Returns list of all unique activites that should appear on given calendar day. /// </summary> /// <param name="currentTimeCalendarArg"></param> /// <returns></returns> private List <HavenActivityData> GetUniqueActivitiesBasedOnCurrentDay( TimeCalendarSystem currentTimeCalendarArg) { // initialize return list as empty list List <HavenActivityDataTemplate> uniqueActivityTemplates = new List <HavenActivityDataTemplate>(); // check cases based on current day's day of week switch (currentTimeCalendarArg.GetCurrentDayOfWeek()) { case DayOfWeek.Tuesday: /*uniqueActivityTemplates.Add(AssetRefMethods. * LoadBundleAssetUniqueHavenActivityTemplate("1"));*/ break; case DayOfWeek.Thursday: /*uniqueActivityTemplates.Add(AssetRefMethods. * LoadBundleAssetUniqueHavenActivityTemplate("1"));*/ break; } // initialize return list as empty list List <HavenActivityData> returnList = new List <HavenActivityData>(); // loop through all loaded templates foreach (HavenActivityDataTemplate iterTemplate in uniqueActivityTemplates) { // add iterating template's activity to return list returnList.Add(new HavenActivityData(iterTemplate)); } // return populated list return(returnList); }
private void Setup(TimeCalendarSystem templateArg) { currentDateTime = new DateTime(templateArg.currentDateTime.Year, templateArg.currentDateTime.Month, templateArg.currentDateTime.Day); currentTimeSlot = templateArg.currentTimeSlot; }
/// <summary> /// Returns random day activities based on given calendar day. /// </summary> /// <param name="timeCalendarArg"></param> /// <returns></returns> private List <HavenActivityData> GetAvailableActivities(TimeCalendarSystem timeCalendarArg) { // initialize day's activites as empty list List <HavenActivityData> dayActivities = new List <HavenActivityData>(); // if today is when the shooter game state mode is supposed to take place if (timeCalendarArg.GetCurrentDayOfWeek() == GetShooterGameplayDayOfWeek()) { // stop code early, return populated activity list return(dayActivities); } // add all unique activities based on given time day dayActivities.AddRange(GetUniqueActivitiesBasedOnCurrentDay(timeCalendarArg)); // get remaining activites needed for the given day int remainingActivitiesNeeded = GetNumberOfActivityOptionsPerDay() - dayActivities.Count; // if still need some activites for day if (remainingActivitiesNeeded > 0) { // add random activites dayActivities.AddRange(GetRandomNonUniqueActivities(remainingActivitiesNeeded)); } // return populated activity list return(dayActivities); }
private void Setup(HavenData templateArg) { havenProgression = new HavenProgressionData(templateArg.havenProgression); calendarSystem = new TimeCalendarSystem(templateArg.calendarSystem); havenDialogue = new HavenDialogueData(templateArg.havenDialogue); activityPlanning = new HavenActivityPlanningData(templateArg.activityPlanning); locationEventPlanning = new HavenLocationEventPlanningData(templateArg.locationEventPlanning); }
private void Setup() { havenProgression = new HavenProgressionData(); calendarSystem = new TimeCalendarSystem(); havenDialogue = new HavenDialogueData(); activityPlanning = new HavenActivityPlanningData(); locationEventPlanning = new HavenLocationEventPlanningData(); }
/// <summary> /// Sets all the HUD calendar properties appropriately. /// </summary> public void RefreshHudCalendar() { // if singleton references NOT setup yet if (_gameManager == null) { // DONT continue code return; } // get game's current calendar data TimeCalendarSystem currentCalendar = _gameManager.HavenData.calendarSystem; // set day of week text to current abreviated version of current day of week dayOfWeekText.text = GetDayOfWeekAbbreviation(currentCalendar.GetCurrentDayOfWeek()); // time of day image to current time slot's icon timeOfDayImage.sprite = GetTimeOfDayIcon(currentCalendar.currentTimeSlot); }
/// <summary> /// Refreshes all factors that require player planning. /// </summary> /// <param name="timeCalendarArg"></param> public void ResetAllPlanning(TimeCalendarSystem timeCalendarArg, List <CharacterData> allActivityPartnersArg) { SetupAvailableActivities(timeCalendarArg); ResetAvailableActivityPartners(allActivityPartnersArg); }
/// <summary> /// Sets up day's activities based on given calendar day. /// </summary> /// <param name="timeCalendarArg"></param> private void SetupAvailableActivities(TimeCalendarSystem timeCalendarArg) { availableActivities = GetAvailableActivities(timeCalendarArg); }
public TimeCalendarSystem(TimeCalendarSystem templateArg) { Setup(templateArg); }