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

feat: skip to quest

parent 4eec0bd6
No related merge requests found
...@@ -51,5 +51,5 @@ ...@@ -51,5 +51,5 @@
"temp/": true, "temp/": true,
"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 ...@@ -23,6 +23,7 @@ public class InGameTimelineManager : TimelineManager
[SerializeField] private Animator bossAnim; [SerializeField] private Animator bossAnim;
[SerializeField] private int[] questStartMark; [SerializeField] private int[] questStartMark;
[SerializeField] private DialogueManager dialogueManager; [SerializeField] private DialogueManager dialogueManager;
[SerializeField] private GameObject parentHouse;
private AudioManager audioManager; private AudioManager audioManager;
...@@ -43,9 +44,15 @@ public class InGameTimelineManager : TimelineManager ...@@ -43,9 +44,15 @@ public class InGameTimelineManager : TimelineManager
audioManager.PlayBGMOverwrite("Night"); audioManager.PlayBGMOverwrite("Night");
} }
public void SyncFromQuest(int questIndex) { public void SkipToQuest(int questIndex) {
dialogueManager.MoveToMark(questIndex); for (int i = 0; i < questIndex; i++)
MoveToMark(questStartMark[questIndex]); {
dialogueManager.MoveToMark(questIndex);
MoveToMark(questStartMark[questIndex]);
QuestManager.Instance.StartQuestUnbothered(i);
QuestManager.Instance.SkipCurrentQuest();
}
} }
protected override void OnStartTimelineMark() protected override void OnStartTimelineMark()
...@@ -113,8 +120,10 @@ public class InGameTimelineManager : TimelineManager ...@@ -113,8 +120,10 @@ public class InGameTimelineManager : TimelineManager
case 16: case 16:
unityChan_4.gameObject.SetActive(false); unityChan_4.gameObject.SetActive(false);
shop.enabled = true; shop.enabled = true;
paman.SetActive(true);
SwitchToGameplay(); SwitchToGameplay();
weaponSwitching.SelectWeapon(0);
Vector3 pos2 = unityChan_4.transform.position; Vector3 pos2 = unityChan_4.transform.position;
pos2.y += 2.5f; pos2.y += 2.5f;
...@@ -135,6 +144,8 @@ public class InGameTimelineManager : TimelineManager ...@@ -135,6 +144,8 @@ public class InGameTimelineManager : TimelineManager
break; break;
case 20: case 20:
SwitchToGameplay(); SwitchToGameplay();
weaponSwitching.SelectWeapon(0);
paman.SetActive(true);
unityChan_5.gameObject.SetActive(false); unityChan_5.gameObject.SetActive(false);
...@@ -189,22 +200,22 @@ public class InGameTimelineManagerEditor : Editor ...@@ -189,22 +200,22 @@ public class InGameTimelineManagerEditor : Editor
InGameTimelineManager timelineManager = (InGameTimelineManager)target; InGameTimelineManager timelineManager = (InGameTimelineManager)target;
if (GUILayout.Button("Start from Quest 1")) if (GUILayout.Button("Start from Quest 1"))
{ {
timelineManager.SyncFromQuest(0); timelineManager.SkipToQuest(0);
} }
if (GUILayout.Button("Start from Quest 2")) if (GUILayout.Button("Start from Quest 2"))
{ {
timelineManager.SyncFromQuest(1); timelineManager.SkipToQuest(1);
} }
if (GUILayout.Button("Start from Quest 3")) if (GUILayout.Button("Start from Quest 3"))
{ {
timelineManager.SyncFromQuest(2); timelineManager.SkipToQuest(2);
} }
if (GUILayout.Button("Start from Quest 4")) if (GUILayout.Button("Start from Quest 4"))
{ {
timelineManager.SyncFromQuest(3); timelineManager.SkipToQuest(3);
} }
} }
} }
......
...@@ -55,7 +55,7 @@ public class TimelineManager : MonoBehaviour ...@@ -55,7 +55,7 @@ public class TimelineManager : MonoBehaviour
} }
currentMarkIndex = markIndex; currentMarkIndex = markIndex;
playableDirector.time = marks[currentMarkIndex] / 60; playableDirector.time = (marks[currentMarkIndex] / 60) - Time.deltaTime;
playableDirector.Resume(); playableDirector.Resume();
isPlaying = true; isPlaying = true;
OnStartTimelineMark(); OnStartTimelineMark();
......
...@@ -16,13 +16,9 @@ public class QuestManager : MonoBehaviour ...@@ -16,13 +16,9 @@ public class QuestManager : MonoBehaviour
public GameObject Thrower; public GameObject Thrower;
public GameObject General; public GameObject General;
public GameObject Boss; public GameObject Boss;
public GameObject IncreaseDamage;
public GameObject IncreaseHealth;
public GameObject IncreaseSpeed;
public Transform spawnTransform; public Transform spawnTransform;
public WaveSpawner waveSpawner; public WaveSpawner waveSpawner;
public SphereRadius ParentHouse; public SphereRadius ParentHouse;
public SphereRadius Forest;
public OrbsSpawner orbsSpawner; public OrbsSpawner orbsSpawner;
public GameObject InGameTimelineManager; public GameObject InGameTimelineManager;
...@@ -52,7 +48,7 @@ public class QuestManager : MonoBehaviour ...@@ -52,7 +48,7 @@ public class QuestManager : MonoBehaviour
public void SetQuestIndex(int index) public void SetQuestIndex(int index)
{ {
InGameTimelineManager.GetComponent<InGameTimelineManager>().SyncFromQuest(index); InGameTimelineManager.GetComponent<InGameTimelineManager>().SkipToQuest(index);
for(int i = 0; i < index; i++) for(int i = 0; i < index; i++)
{ {
Debug.Log("Quest " + i + " completed"); Debug.Log("Quest " + i + " completed");
...@@ -161,7 +157,7 @@ public class QuestManager : MonoBehaviour ...@@ -161,7 +157,7 @@ public class QuestManager : MonoBehaviour
public void StartQuest(int index) 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) if (index < quests.Count)
{ {
Quest currentQuest = quests[index]; Quest currentQuest = quests[index];
...@@ -176,6 +172,21 @@ public class QuestManager : MonoBehaviour ...@@ -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() public void StartSpawning()
{ {
waveSpawner.spawnFlag = true; waveSpawner.spawnFlag = true;
...@@ -215,6 +226,18 @@ public class QuestManager : MonoBehaviour ...@@ -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() void Update()
{ {
if (currentQuestIndex < quests.Count && !questCompleted) if (currentQuestIndex < quests.Count && !questCompleted)
...@@ -262,7 +285,32 @@ public class QuestManager : MonoBehaviour ...@@ -262,7 +285,32 @@ public class QuestManager : MonoBehaviour
if (currentQuestIndex < quests.Count) if (currentQuestIndex < quests.Count)
{ {
quests[currentQuestIndex].CompleteAllGoals(); 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