Esempio n. 1
0
    /// <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);
        }
    }
Esempio n. 2
0
    /// <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;
    }
Esempio n. 4
0
    /// <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);
    }
Esempio n. 5
0
    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);
    }
Esempio n. 6
0
    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);
    }
Esempio n. 8
0
    /// <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);
    }
Esempio n. 9
0
 /// <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);
 }