Skip to content
Snippets Groups Projects
Commit 10e9223f authored by Addin Munawwar's avatar Addin Munawwar
Browse files

feat: skip to quest

parent 4eec0bd6
Branches
Tags
No related merge requests found
......@@ -51,5 +51,5 @@
"temp/": true,
"Temp/": true
},
"dotnet.defaultSolution": "if3210-2024-unity-ngk.sln"
"dotnet.defaultSolution": "GamePBD.sln"
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
fileFormatVersion: 2
guid: 016ac2ee0f4b1fd4f8f1d46a26117acf
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
......@@ -23,6 +23,7 @@ public class InGameTimelineManager : TimelineManager
[SerializeField] private Animator bossAnim;
[SerializeField] private int[] questStartMark;
[SerializeField] private DialogueManager dialogueManager;
[SerializeField] private GameObject parentHouse;
private AudioManager audioManager;
......@@ -43,9 +44,15 @@ public class InGameTimelineManager : TimelineManager
audioManager.PlayBGMOverwrite("Night");
}
public void SyncFromQuest(int questIndex) {
dialogueManager.MoveToMark(questIndex);
MoveToMark(questStartMark[questIndex]);
public void SkipToQuest(int questIndex) {
for (int i = 0; i < questIndex; i++)
{
dialogueManager.MoveToMark(questIndex);
MoveToMark(questStartMark[questIndex]);
QuestManager.Instance.StartQuestUnbothered(i);
QuestManager.Instance.SkipCurrentQuest();
}
}
protected override void OnStartTimelineMark()
......@@ -113,8 +120,10 @@ public class InGameTimelineManager : TimelineManager
case 16:
unityChan_4.gameObject.SetActive(false);
shop.enabled = true;
paman.SetActive(true);
SwitchToGameplay();
weaponSwitching.SelectWeapon(0);
Vector3 pos2 = unityChan_4.transform.position;
pos2.y += 2.5f;
......@@ -135,6 +144,8 @@ public class InGameTimelineManager : TimelineManager
break;
case 20:
SwitchToGameplay();
weaponSwitching.SelectWeapon(0);
paman.SetActive(true);
unityChan_5.gameObject.SetActive(false);
......@@ -189,22 +200,22 @@ public class InGameTimelineManagerEditor : Editor
InGameTimelineManager timelineManager = (InGameTimelineManager)target;
if (GUILayout.Button("Start from Quest 1"))
{
timelineManager.SyncFromQuest(0);
timelineManager.SkipToQuest(0);
}
if (GUILayout.Button("Start from Quest 2"))
{
timelineManager.SyncFromQuest(1);
timelineManager.SkipToQuest(1);
}
if (GUILayout.Button("Start from Quest 3"))
{
timelineManager.SyncFromQuest(2);
timelineManager.SkipToQuest(2);
}
if (GUILayout.Button("Start from Quest 4"))
{
timelineManager.SyncFromQuest(3);
timelineManager.SkipToQuest(3);
}
}
}
......
......@@ -55,7 +55,7 @@ public class TimelineManager : MonoBehaviour
}
currentMarkIndex = markIndex;
playableDirector.time = marks[currentMarkIndex] / 60;
playableDirector.time = (marks[currentMarkIndex] / 60) - Time.deltaTime;
playableDirector.Resume();
isPlaying = true;
OnStartTimelineMark();
......
......@@ -16,13 +16,9 @@ public class QuestManager : MonoBehaviour
public GameObject Thrower;
public GameObject General;
public GameObject Boss;
public GameObject IncreaseDamage;
public GameObject IncreaseHealth;
public GameObject IncreaseSpeed;
public Transform spawnTransform;
public WaveSpawner waveSpawner;
public SphereRadius ParentHouse;
public SphereRadius Forest;
public OrbsSpawner orbsSpawner;
public GameObject InGameTimelineManager;
......@@ -52,7 +48,7 @@ public class QuestManager : MonoBehaviour
public void SetQuestIndex(int index)
{
InGameTimelineManager.GetComponent<InGameTimelineManager>().SyncFromQuest(index);
InGameTimelineManager.GetComponent<InGameTimelineManager>().SkipToQuest(index);
for(int i = 0; i < index; i++)
{
Debug.Log("Quest " + i + " completed");
......@@ -161,7 +157,7 @@ public class QuestManager : MonoBehaviour
public void StartQuest(int index)
{
GameObject.Find("Gameplay UI/GameOver UI/GameOverPanel").SetActive(false);
// GameObject.Find("Gameplay UI/GameOver UI/GameOverPanel").SetActive(false);
if (index < quests.Count)
{
Quest currentQuest = quests[index];
......@@ -176,6 +172,21 @@ public class QuestManager : MonoBehaviour
}
}
public void StartQuestUnbothered(int index)
{
if (index < quests.Count)
{
Quest currentQuest = quests[index];
questCompleted = false;
waveSpawner.spawnFlag = true;
orbsSpawner.spawnFlag = true;
Debug.Log("Starting quest " + index);
buyingPhase = false;
currentQuest.InitGoals(this);
UpdateUI();
}
}
public void StartSpawning()
{
waveSpawner.spawnFlag = true;
......@@ -215,6 +226,18 @@ public class QuestManager : MonoBehaviour
}
}
public void QuestCompletedUnbothered()
{
Quest currentQuest = quests[currentQuestIndex];
if (currentQuest.AreAllGoalsCompleted() && !questCompleted)
{
questCompleted = true;
waveSpawner.spawnFlag = false;
waveSpawner.DestroyAllMobs();
OrbsSpawner.Instance.spawnFlag = false;
}
}
void Update()
{
if (currentQuestIndex < quests.Count && !questCompleted)
......@@ -262,7 +285,32 @@ public class QuestManager : MonoBehaviour
if (currentQuestIndex < quests.Count)
{
quests[currentQuestIndex].CompleteAllGoals();
UpdateUI();
if (currentQuestIndex < quests.Count + 1)
{
QuestCompletedUnbothered();
}
else
{
buyingPhase = true;
waveSpawner = null;
QuestUI.Instance.UpdateQuestUI(new List<string> { "All quests completed!" });
}
buyingPhase = true;
QuestUI.Instance.HideRewardPanel();
questCompleted = false;
currentQuestIndex++;
if (currentQuestIndex >= quests.Count)
{
QuestUI.Instance.UpdateQuestUI(new List<string> { "All quests completed!" });
}
else
{
QuestUI.Instance.UpdateQuestUI("QUEST:", "Press (C) to begin next quest");
}
ParentHouse.gameObject.SetActive(false);
}
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment