Integrate minigame and courses

This commit is contained in:
Dries Van Schuylenbergh
2023-03-08 19:07:57 +00:00
parent 7e98fea538
commit 852a17b0b4
56 changed files with 1431 additions and 1300 deletions

View File

@@ -1,3 +1,4 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
@@ -9,57 +10,49 @@ public class CourseScreenManager : MonoBehaviour
// Reference to text that displays when there are no recent courses
public GameObject noRecentCourses;
// Reference to recent-courses-list holder object
public Transform recentCourses;
public Transform recentCoursesContainer;
// Reference to recommended-courses-list holder object
public Transform recommendedCourses;
public Transform recommendedCoursesContainer;
[Header("Prefabs")]
// CourseItem prefab
public GameObject course_item;
public GameObject courseItem;
// TODO: change to ScriptableObject;
[Header("ScriptableObjects")]
public int numberOfRecentCourses;
public string[] recentCourseTitle;
public float[] recentCourseProgress;
public Sprite[] recentCourseThumbnail;
public string[] recentCourseScene;
public int numberOfRecommendedCourses;
public string[] recommendedCourseTitle;
public float[] recommendedCourseProgress;
public Sprite[] recommendedCourseThumbnail;
public string[] recommendedCourseScene;
[Header("User")]
// Reference to the users so we can get the current user;
public UserList userList;
// Reference to the courses
public CourseList courseList;
void Start()
{
// Recent courses
noRecentCourses.SetActive(numberOfRecentCourses <= 0);
User user = userList.users[userList.currentUserIndex];
for (int i = 0; i < numberOfRecentCourses; i++)
// Recent courses
List<Tuple<CourseIndex, float>> recentCourses = user.GetRecentCourses();
noRecentCourses.SetActive(recentCourses.Count <= 0);
foreach (Tuple<CourseIndex, float> course in recentCourses)
{
// Create instance of prefab
GameObject instance = GameObject.Instantiate(course_item, recentCourses);
GameObject instance = GameObject.Instantiate(courseItem, recentCoursesContainer);
// Dynamically load appearance
CourseItem item = instance.GetComponent<CourseItem>();
item.courseTitle = recentCourseTitle[i];
item.courseThumbnail = recentCourseThumbnail[i];
item.courseProgress = recentCourseProgress[i];
item.courseScene = recentCourseScene[i];
item.course = courseList.courses.Find((j) => j.index == course.Item1);
item.progress = course.Item2;
}
// Recommended courses
for (int i = 0; i < numberOfRecommendedCourses; i++)
List<Tuple<CourseIndex, float>> recommenedCourses = user.GetRecommendedCourses();
foreach (Tuple<CourseIndex, float> course in recommenedCourses)
{
// Create instance of prefab
GameObject instance = GameObject.Instantiate(course_item, recommendedCourses);
GameObject instance = GameObject.Instantiate(courseItem, recommendedCoursesContainer);
// Dynamically load appearance
CourseItem item = instance.GetComponent<CourseItem>();
item.courseTitle = recommendedCourseTitle[i];
item.courseThumbnail = recommendedCourseThumbnail[i];
item.courseProgress = 0.0f; // So progress bar doesn't show
item.courseScene = recommendedCourseScene[i];
item.course = courseList.courses.Find((j) => j.index == course.Item1);
item.progress = course.Item2;
}
}