3605 lines
155 KiB
C#
3605 lines
155 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System;
|
||
using UnityEngine;
|
||
using TMPro;
|
||
using System.Linq;
|
||
using UnityEngine.SceneManagement;
|
||
|
||
|
||
/*
|
||
This script handles all the Missions. It uses listeners which are optimized for the current week
|
||
*/
|
||
|
||
|
||
public class MissionHandler : MonoBehaviour{
|
||
//Access the missions list
|
||
GameStatsManager game_statsManager;
|
||
Missions missions;
|
||
private bool MissionPopupShown = false; // Flag to track completion
|
||
|
||
// Reference to the popup UI element
|
||
public GameObject popup;
|
||
public GameObject completed_missions_canvas;
|
||
|
||
// Time when the scene started
|
||
private float sceneStartTime;
|
||
|
||
[HideInInspector]
|
||
public MissionProgress Player_missionProgress;
|
||
|
||
|
||
void OnEnable(){
|
||
popup.SetActive(false);
|
||
|
||
missions = GetComponent<Missions>();
|
||
missionInfox = missions.getAllWeeklyMissions();
|
||
|
||
}
|
||
|
||
|
||
public List<MissionInfo> missionInfox;
|
||
private void Start(){
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
// Assuming you have a reference to the MissionsManager script
|
||
game_statsManager = GetComponent<GameStatsManager>();
|
||
|
||
// Record the time when the scene starts
|
||
sceneStartTime = Time.time;
|
||
|
||
StartCoroutine(ShowPopupsContinuously());
|
||
|
||
}
|
||
|
||
|
||
private void Update(){
|
||
//Continuously check for Mission Progress
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
int count = Player_missionProgress.completed_missions.Count();
|
||
|
||
//Weekly missions completed
|
||
if (count == 5){
|
||
|
||
//End of month
|
||
if (Player_missionProgress.current_week == 4){
|
||
Player_missionProgress.current_month = Player_missionProgress.current_month + 1;
|
||
Player_missionProgress.current_week = 1;
|
||
|
||
}else{
|
||
Player_missionProgress.current_week = Player_missionProgress.current_week + 1;
|
||
}
|
||
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
}
|
||
|
||
|
||
string result_ids1 = ListToString(Player_missionProgress.completed_missions);
|
||
//Debug.LogWarning("CM's: " + result_ids1);
|
||
|
||
|
||
// Check for mission completion continuously
|
||
CheckMissions();
|
||
}
|
||
|
||
|
||
/* Function that calls functions for missions in the current week, only the current week missions
|
||
which are not already completed are considered, for Optimization */
|
||
public static List<int> weeklyMissions_ID;
|
||
public static List<int> static_weeklyMissionsID = new List<int>(){ 0 };
|
||
|
||
private void CheckMissions(){
|
||
// Create a new empty list of integers
|
||
weeklyMissions_ID = new List<int>();
|
||
|
||
playerData = LoadPlayerData();
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
//Change this part to call missions where month and week from the player data are same as those in the recorded missions
|
||
foreach(MissionInfo mission_info1 in missionInfox){
|
||
if ((mission_info1.month == Player_missionProgress.current_month) && (mission_info1.week == Player_missionProgress.current_week)){
|
||
if (!(Player_missionProgress.completed_missions.Contains(mission_info1.missionID))){ //If Mission is not completed
|
||
CallWeeklyMissionFunction(mission_info1.missionID);
|
||
weeklyMissions_ID.Add(mission_info1.missionID);
|
||
}
|
||
}
|
||
}
|
||
|
||
// Only update static_weeklyMissionsID if it contains the default value and weeklyMissions_ID has items
|
||
if (static_weeklyMissionsID.Count == 1 && static_weeklyMissionsID[0] == 0 && weeklyMissions_ID.Count > 0){
|
||
static_weeklyMissionsID = new List<int>(weeklyMissions_ID);
|
||
}
|
||
|
||
string result_ids = ListToString(weeklyMissions_ID);
|
||
}
|
||
|
||
|
||
|
||
// Call Function Dynamically, based on current week's missions
|
||
void CallWeeklyMissionFunction(int missionID){
|
||
string functionName = "mission" + missionID + "_weekly";
|
||
|
||
// Use reflection to dynamically invoke the function
|
||
System.Reflection.MethodInfo methodInfo = GetType().GetMethod(functionName);
|
||
|
||
if (methodInfo != null){
|
||
methodInfo.Invoke(this, null);
|
||
}
|
||
}
|
||
|
||
|
||
string ListToString<T>(List<T> list){
|
||
// Use string.Join to concatenate the elements of the list into a string
|
||
return string.Join(", ", list);
|
||
}
|
||
|
||
|
||
// Gets the mission's value, checking that missions's progress
|
||
public string getMissionValue(string mission22_MissionSearch_Result){
|
||
string[] parts = mission22_MissionSearch_Result.Split(':');
|
||
string missionID_StoredFound = parts[1].Trim(); //Get the value (num value), Trim() removes removes whitespaces if any, then Parses to int value
|
||
return missionID_StoredFound;
|
||
}
|
||
|
||
|
||
//Plug Functions (PFS)
|
||
#region
|
||
//N.B: The 9 Functions below are called in other scripts so as to Track/Check missions
|
||
/*
|
||
1. StartOfEachMatch()
|
||
2. EndOfEachMatch()
|
||
3. StartOfEachRound()
|
||
4. EndOfEachRound()
|
||
5. PlayerHasHitEnemy()
|
||
6. EnemyHasHitPlayer()
|
||
7. CharacterUnlocked()
|
||
8. AdsWatched()
|
||
9. PlayerHasMoved() ***
|
||
*/
|
||
|
||
Completed_Missions_toAnimate completedMissionsToAnimate;
|
||
|
||
//Function for START OF A MATCH, Call this function at the START of Match
|
||
public static List<int> weeklyMatchStarted = new List<int>(){ 5, 14, 21, 25, 26 };
|
||
public void StartOfEachMatch(){
|
||
// CallWeeklyMissionFunction("MatchHasStarted");
|
||
completedMissionsToAnimate = LoadPlayerData_CompletedMission_toAnimate();
|
||
completedMissionsToAnimate.animation_status = 0;
|
||
SaveCompleted_Missions_toAnimate(completedMissionsToAnimate);
|
||
|
||
Debug.Log($"Start of Every Match {completedMissionsToAnimate.animation_status}");
|
||
|
||
|
||
StartCoroutine(Execute_WeeklyMissionFunctions(weeklyMatchStarted, "_MatchHasStarted"));
|
||
|
||
|
||
// foreach (int mID in weeklyMissions_ID){
|
||
// if (weeklyMatchStarted.Contains(mID)){ //If Character Unlock mission function contain current week missions ID
|
||
|
||
// string functionName = "mission" + mID + "_MatchHasStarted";
|
||
|
||
// // Use reflection to dynamically invoke the function
|
||
// System.Reflection.MethodInfo methodInfo = GetType().GetMethod(functionName);
|
||
|
||
// if (methodInfo != null){
|
||
// methodInfo.Invoke(this, null); //null refers to no arguments
|
||
// }
|
||
// }
|
||
// }
|
||
|
||
// mission5_MatchHasStarted();
|
||
// mission14_MatchHasStarted();
|
||
// mission21_MatchHasStarted();
|
||
// mission25_MatchHasStarted();
|
||
// mission26_MatchHasStarted();
|
||
}
|
||
|
||
|
||
int round = 0;
|
||
public void a_bStartRound(){
|
||
//Debug.LogError("R = " + round.ToString());
|
||
StartOfEachRound(round);
|
||
|
||
round++;
|
||
}
|
||
|
||
public void scene1(){
|
||
SceneManager.LoadSceneAsync(2);
|
||
}
|
||
|
||
public void scene2(){
|
||
SceneManager.LoadSceneAsync(3);
|
||
}
|
||
|
||
|
||
|
||
//Function for END OF A MATCH, Call this function at the END of Match
|
||
public static List<int> weeklyMatchEnd = new List<int>(){ 7, 14, 17, 21, 25, 26, 33, 46, 47, 51, 56 };
|
||
public void EndOfEachMatch(){
|
||
|
||
foreach (int mID in weeklyMissions_ID){
|
||
if (weeklyMatchEnd.Contains(mID)){ //If Character Unlock mission function contain current week missions ID
|
||
|
||
string functionName = "mission" + mID + "_MatchHasEnded";
|
||
|
||
// Use reflection to dynamically invoke the function
|
||
System.Reflection.MethodInfo methodInfo = GetType().GetMethod(functionName);
|
||
|
||
if (methodInfo != null){
|
||
methodInfo.Invoke(this, null); //null refers to no arguments
|
||
}
|
||
}
|
||
}
|
||
|
||
// mission7_MatchHasEnded();
|
||
// mission14_MatchHasEnded();
|
||
// mission17_MatchHasEnded();
|
||
// mission21_MatchHasEnded();
|
||
// mission25_MatchHasEnded();
|
||
// mission26_MatchHasEnded();
|
||
// mission33_MatchHasEnded();
|
||
// mission46_MatchHasEnded();
|
||
// mission47_MatchHasEnded();
|
||
// mission51_MatchHasEnded();
|
||
}
|
||
|
||
|
||
//Function for START OF A ROUND, Call this function at the START of each round
|
||
public static List<int> weeklyRoundStarted = new List<int>(){ 1, 2, 3, 4, 11, 13, 15, 21, 23, 24, 25, 27, 31, 38, 41, 42, 51, 56, 57 };
|
||
public void StartOfEachRound(int roundNum){
|
||
//Match has started
|
||
if (roundNum == 1){
|
||
StartOfEachMatch();
|
||
}
|
||
|
||
StartCoroutine(Execute_WeeklyMissionFunctions(weeklyRoundStarted, "_RoundHasStarted"));
|
||
|
||
// foreach (int mID in weeklyMissions_ID){
|
||
// if (weeklyRoundStarted.Contains(mID)){ //If Character Unlock mission function contain current week missions ID
|
||
|
||
// string functionName = "mission" + mID + "_RoundHasStarted";
|
||
|
||
// // Use reflection to dynamically invoke the function
|
||
// System.Reflection.MethodInfo methodInfo = GetType().GetMethod(functionName);
|
||
|
||
// if (methodInfo != null){
|
||
// methodInfo.Invoke(this, null); //null refers to no arguments
|
||
// }
|
||
// }
|
||
// }
|
||
|
||
// mission1_RoundHasStarted();
|
||
// mission2_RoundHasStarted();
|
||
// mission3_RoundHasStarted();
|
||
// mission4_RoundHasStarted();
|
||
// mission11_RoundHasStarted();
|
||
// mission13_RoundHasStarted();
|
||
// mission15_RoundHasStarted();
|
||
// mission21_RoundHasStarted();
|
||
// mission23_RoundHasStarted();
|
||
// mission24_RoundHasStarted();
|
||
// mission25_RoundHasStarted();
|
||
// mission27_RoundHasStarted();
|
||
// mission38_RoundHasStarted();
|
||
// mission41_RoundHasStarted();
|
||
// mission42_RoundHasStarted();
|
||
// mission51_RoundHasStarted();
|
||
// mission57_RoundHasStarted();
|
||
}
|
||
|
||
|
||
public IEnumerator Execute_WeeklyMissionFunctions(List<int> Mission_List, string Mission_FunctionSuffix, params object[] Mission_Params){
|
||
foreach (int mID in weeklyMissions_ID){
|
||
if (Mission_List.Contains(mID)){ //If Character Unlock mission function contain current week missions ID
|
||
|
||
string functionName = "mission" + mID + Mission_FunctionSuffix;
|
||
|
||
// string functionName = "mission" + mID + "_RoundHasEnded";
|
||
|
||
// Use reflection to dynamically invoke the function
|
||
System.Reflection.MethodInfo methodInfo = GetType().GetMethod(functionName);
|
||
|
||
if (methodInfo != null){
|
||
methodInfo.Invoke(this, Mission_Params ); //null refers to no arguments
|
||
yield return new WaitForSeconds(20f);//3f,5f works for pc not mobile, mobile
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
//Function for END OF A ROUND
|
||
//(int roundNum, string round_status, int player_health, int player_points, string player_CharacterName, int enemy_health)
|
||
public static List<int> weeklyRoundEnd = new List<int>(){ 5, 7, 8, 12, 13, 15, 16, 17, 21, 23, 24, 25, 26, 31, 32, 33, 34, 42, 46, 47, 51, 56, 57 };
|
||
public void EndOfEachRound(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
//Debug.LogWarning("PH = " + playerHealth.ToString() + " XR Status = " + round_status + " CharName = " + player_CharacterName);
|
||
// PH = 62 XR Status = player_won CharName = Cheetah(Clone)
|
||
|
||
StartCoroutine(Execute_WeeklyMissionFunctions(weeklyRoundEnd, "_RoundHasEnded", roundNum, round_status, playerHealth, playerPoints, player_CharacterName, enemyHealth));
|
||
|
||
// foreach (int mID in weeklyMissions_ID){
|
||
// if (weeklyRoundEnd.Contains(mID)){ //If Character Unlock mission function contain current week missions ID
|
||
|
||
// string functionName = "mission" + mID + "_RoundHasEnded";
|
||
|
||
// // Use reflection to dynamically invoke the function
|
||
// System.Reflection.MethodInfo methodInfo = GetType().GetMethod(functionName);
|
||
|
||
// if (methodInfo != null){
|
||
// methodInfo.Invoke(this, new object[] { roundNum, round_status, playerHealth, playerPoints, player_CharacterName, enemyHealth }); //null refers to no arguments
|
||
// }
|
||
// }
|
||
// }
|
||
|
||
|
||
|
||
|
||
|
||
// mission5_RoundHasEnded(round_status); //Win status
|
||
// mission7_RoundHasEnded(round_status); //Win status
|
||
// mission8_RoundHasEnded(round_status, playerHealth); //Win status and Player health
|
||
// mission12_RoundHasEnded(round_status, playerHealth); //Win status and Player health
|
||
// mission13_RoundHasEnded(round_status); //Win status
|
||
// mission15_RoundHasEnded(round_status); //Win status
|
||
// mission16_RoundHasEnded(round_status, playerHealth); //Win status and Player health
|
||
// mission17_RoundHasEnded(round_status); //Win status
|
||
// mission21_RoundHasEnded(round_status); //Win status
|
||
// mission23_RoundHasEnded(round_status, playerHealth); //Win status and Player health
|
||
// mission24_RoundHasEnded(round_status); //Win status
|
||
// mission25_RoundHasEnded(round_status); //Win status
|
||
// mission26_RoundHasEnded(round_status, roundNum, playerHealth); //Round number, Win status, Player health
|
||
// mission32_RoundHasEnded(round_status, player_CharacterName); //Win status and Winner Character name
|
||
// mission33_RoundHasEnded(round_status, playerHealth); //Win status and Player health
|
||
// mission34_RoundHasEnded(round_status, playerHealth); //Win status and Player health
|
||
// mission42_RoundHasEnded(round_status); //Win status, Player and Opponent's health
|
||
// mission46_RoundHasEnded(round_status); //Win status
|
||
// mission47_RoundHasEnded(round_status, playerHealth); //Win status and Player health
|
||
// mission51_RoundHasEnded();
|
||
// mission57_RoundHasEnded(round_status); //Win Status
|
||
|
||
|
||
|
||
//End of Match
|
||
int TotalRounds = 3;
|
||
if (roundNum == TotalRounds){ //Last Round
|
||
EndOfEachMatch();
|
||
}
|
||
}
|
||
|
||
|
||
//Function for when Player hits Enemy
|
||
public static List<int> weeklyPlayerHitEnemy = new List<int>(){ 2, 3, 4, 11, 15, 23, 25, 27, 38, 41, 57 };
|
||
public void PlayerHasHitEnemy(string action_type, string action_source, int enemyHealth){
|
||
StartCoroutine(Execute_WeeklyMissionFunctions(weeklyPlayerHitEnemy, "_PlayerHasHitEnemy", action_type, action_source, enemyHealth));
|
||
|
||
// foreach (int mID in weeklyMissions_ID){
|
||
// if (weeklyEnemyHitPlayer.Contains(mID)){ //If Character Unlock mission function contain current week missions ID
|
||
|
||
// string functionName = "mission" + mID + "_PlayerHasHitEnemy";
|
||
|
||
// // Use reflection to dynamically invoke the function
|
||
// System.Reflection.MethodInfo methodInfo = GetType().GetMethod(functionName);
|
||
|
||
// if (methodInfo != null){
|
||
// methodInfo.Invoke(this, new object[] { action_type, action_source, enemyHealth }); //null refers to no arguments
|
||
// }
|
||
// }
|
||
// }
|
||
|
||
|
||
// mission2_PlayerHasHitEnemy(action_type, action_source); //Player Hit Enemy
|
||
// mission3_PlayerHasHitEnemy(action_type, action_source);
|
||
// mission4_PlayerHasHitEnemy(action_type, action_source);
|
||
// mission11_PlayerHasHitEnemy(action_type, action_source);
|
||
// mission15_PlayerHasHitEnemy(action_type, action_source);
|
||
// mission23_PlayerHasHitEnemy(action_type, action_source);
|
||
// mission25_PlayerHasHitEnemy(action_type, action_source);
|
||
// mission27_PlayerHasHitEnemy(action_type, action_source);
|
||
// mission38_PlayerHasHitEnemy(action_type, action_source);
|
||
// mission57_PlayerHasHitEnemy(action_type, action_source);
|
||
// mission41_PlayerHasHitEnemy(enemyHealth); //Requires Enemy health
|
||
}
|
||
|
||
|
||
//Function for when Enemy hits Player
|
||
public static List<int> weeklyEnemyHitPlayer = new List<int>(){ 1, 2, 3, 4, 11, 24, 27, 41 };
|
||
public void EnemyHasHitPlayer(string action_type, string action_source){
|
||
StartCoroutine(Execute_WeeklyMissionFunctions(weeklyEnemyHitPlayer, "_EnemyHasHitPlayer"));
|
||
|
||
// foreach (int mID in weeklyMissions_ID){
|
||
// if (weeklyEnemyHitPlayer.Contains(mID)){ //If Character Unlock mission function contain current week missions ID
|
||
|
||
// string functionName = "mission" + mID + "_EnemyHasHitPlayer";
|
||
|
||
// // Use reflection to dynamically invoke the function
|
||
// System.Reflection.MethodInfo methodInfo = GetType().GetMethod(functionName);
|
||
|
||
// if (methodInfo != null){
|
||
// methodInfo.Invoke(this, null); //null refers to no arguments
|
||
// }
|
||
// }
|
||
// }
|
||
|
||
// mission1_EnemyHasHitPlayer(); //Does not need any params
|
||
// mission2_EnemyHasHitPlayer();
|
||
// mission3_EnemyHasHitPlayer();
|
||
// mission4_EnemyHasHitPlayer();
|
||
// mission11_EnemyHasHitPlayer();
|
||
// mission24_EnemyHasHitPlayer();
|
||
// mission27_EnemyHasHitPlayer();
|
||
// mission41_EnemyHasHitPlayer(); //Requires Enemy health
|
||
}
|
||
|
||
|
||
//Character has been Unlocked
|
||
public static List<int> weeklyCharacter_Unlock = new List<int>(){ 31, 56 };
|
||
public void CharacterUnlocked(string characterName){
|
||
Start();
|
||
Debug.LogWarning("Char = " + characterName);
|
||
|
||
string result3xr = ListToString(static_weeklyMissionsID);
|
||
//Debug.LogWarning("Completed Missions: " + result3xr);
|
||
|
||
foreach (int CharUnlock_ID in static_weeklyMissionsID){
|
||
if (weeklyCharacter_Unlock.Contains(CharUnlock_ID)){ //If Character Unlock mission function contain current week missions ID
|
||
|
||
string CharacterUnlock_functionName = "mission" + CharUnlock_ID + "_CharacterUnlocked";
|
||
//Debug.LogWarning("XM " + CharacterUnlock_functionName);
|
||
|
||
// Use reflection to dynamically invoke the function
|
||
System.Reflection.MethodInfo CharacterUnlock_methodInfo = GetType().GetMethod(CharacterUnlock_functionName);
|
||
|
||
if (CharacterUnlock_methodInfo != null){
|
||
if (CharUnlock_ID == 31){ //Invoke the method with arguments passed in
|
||
CharacterUnlock_methodInfo.Invoke(this, new object[] { characterName }); //Pass Character Name
|
||
//Debug.LogWarning("Char31 = " + characterName);
|
||
|
||
}else{
|
||
CharacterUnlock_methodInfo.Invoke(this, null); //null refers to no arguments
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
// mission31_CharacterUnlocked(); //Character Name
|
||
// mission56_CharacterUnlocked();
|
||
}
|
||
|
||
|
||
//Ads have been Watched
|
||
public static List<int> weeklyMissions_Ads = new List<int>(){ 18, 22, 32, 37, 52 };
|
||
public void AdsWatched(){
|
||
|
||
//Invoke all Ad missions in the current month and week
|
||
foreach (int Ad_ID in weeklyMissions_ID){
|
||
if (weeklyMissions_Ads.Contains(Ad_ID)){ //If Ads missions function contain current week missions ID
|
||
|
||
// mission22_AdsWatchedIncrement
|
||
string AdfunctionName = "mission" + Ad_ID + "_AdsWatchedIncrement";
|
||
//Debug.LogWarning("XM " + AdfunctionName);
|
||
|
||
// Use reflection to dynamically invoke the function
|
||
System.Reflection.MethodInfo AdmethodInfo = GetType().GetMethod(AdfunctionName);
|
||
|
||
if (AdmethodInfo != null){
|
||
AdmethodInfo.Invoke(this, null);
|
||
}
|
||
}
|
||
}
|
||
|
||
// mission18_AdsWatchedIncrement();
|
||
// mission22_AdsWatchedIncrement();
|
||
// mission37_AdsWatchedIncrement();
|
||
// mission52_AdsWatchedIncrement();
|
||
}
|
||
|
||
|
||
//Player has Moved
|
||
public static List<int> weeklyMissions_Move = new List<int>(){ 21 };
|
||
public void PlayerHasMoved(){
|
||
|
||
foreach (int Move_ID in weeklyMissions_ID){
|
||
if (weeklyMissions_Move.Contains(Move_ID)){ //If Ads missions function contain current week missions ID
|
||
//Debug.LogWarning("21 Called");
|
||
|
||
// mission22_AdsWatchedIncrement
|
||
string AdfunctionName = "mission" + Move_ID + "_PlayerHasWalked";
|
||
|
||
//Debug.LogWarning("21 Called " + AdfunctionName);
|
||
|
||
// Use reflection to dynamically invoke the function
|
||
System.Reflection.MethodInfo AdmethodInfo = GetType().GetMethod(AdfunctionName);
|
||
|
||
if (AdmethodInfo != null){
|
||
AdmethodInfo.Invoke(this, null);
|
||
}
|
||
}
|
||
}
|
||
|
||
// mission21_PlayerHasWalked();
|
||
}
|
||
|
||
#endregion
|
||
|
||
|
||
|
||
//START OF WEEKLY MISSIONS
|
||
#region
|
||
//1, 9, 5, 19, 3, 28, 21, 24, 26, 39, 42, 43, 48, 53, 58
|
||
//3, 9, 1, 19, 2, 28, 11, 39, 43, 48, 53, 58, 5, 13, 21, 24, 26, 42, 51, 57
|
||
|
||
//MONTH 1, ID 1 - 20
|
||
#region
|
||
|
||
//Weekly Mission ID = 1 || Survive the first 20 seconds of the game without taking a hit.
|
||
#region
|
||
//Functions used: mission1_RoundHasStarted(), mission1_EnemyHasHitPlayer()
|
||
public bool mission1_RoundIsStarted = false, mission1_PlayerWasHit = false, mission1_20SecondsPassed = false;
|
||
|
||
//INSTRUCTIONS: Creates a timer for 20 seconds, within that time checks if any collisions happened
|
||
public void mission1_weekly(){
|
||
// Debug.LogWarning("Mission1 Called");
|
||
|
||
//Checks if round has started, Counts for 20 seconds, After those 20 seconds, checks if hit occured
|
||
//Debug.LogWarning("Round = " + mission1_RoundIsStarted + " 20Secs = " + mission1_20SecondsPassed + " PlayerHit = " + mission1_PlayerWasHit);
|
||
|
||
|
||
if ((mission1_RoundIsStarted == true) && (mission1_20SecondsPassed == true)){ //If Round has started, 20 Seconds have passed and Player was NOT HIT
|
||
if (mission1_PlayerWasHit == false){ //Player has not taken a hit after 20 seconds a round has started
|
||
instantiate_completedMissionCanvas(1);
|
||
game_statsManager.updateMission(1);
|
||
|
||
// Debug.LogWarning("Mission1 Completed!");
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
//Called at the Start of each Round after the Countdown (3 2 1 Fight!), Then counts 20 seconds
|
||
public void mission1_RoundHasStarted(){
|
||
mission1_20SecondsPassed = false;
|
||
mission1_PlayerWasHit = false;
|
||
mission1_RoundIsStarted = false;
|
||
|
||
//Debug.LogWarning("Round Mission1 Started");
|
||
if (mission1_RoundIsStarted == false){
|
||
mission1_RoundIsStarted = true;
|
||
}
|
||
|
||
StartCoroutine(mission1_Delay20SecCountdown(20f)); //Count for 20 seconds
|
||
}
|
||
|
||
//Counts for 20 seconds time Parameters are (delaytime in seconds)
|
||
IEnumerator mission1_Delay20SecCountdown(float delaytime){
|
||
|
||
//Wait for 20 seconds
|
||
yield return new WaitForSeconds(delaytime);
|
||
|
||
//After 20 seconds, create flag that 20 seconds have passed
|
||
if (mission1_20SecondsPassed == false){
|
||
mission1_20SecondsPassed = true;
|
||
}
|
||
}
|
||
|
||
public void mission1_EnemyHasHitPlayer(){
|
||
//For Mission 1
|
||
mission1_PlayerWasHit = true;
|
||
}
|
||
|
||
|
||
//DLT
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public void a_mission1_RoundStarted(){
|
||
// startOfEachRound(1);
|
||
mission1_RoundHasStarted();
|
||
}
|
||
|
||
public void a_mission1_EnemyHasHitPlayer(){
|
||
EnemyHasHitPlayer("kick", "Player(Clone)");
|
||
}
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 1
|
||
|
||
|
||
|
||
//Weekly Mission ID = 2 || Punch opponent 5 times in a row
|
||
#region
|
||
//Functions used: mission2_RoundHasStarted(), mission2_EnemyHasHitPlayer(), mission2_PlayerHasHitEnemy()
|
||
public static bool mission2_RoundIsStarted = false;
|
||
public static int mission2_PunchCounter = 0, mission2_KickCounter = 0;
|
||
|
||
public void mission2_weekly(){
|
||
// Debug.LogWarning("Mission2 Called");
|
||
|
||
// Debug.LogWarning("2PUNCH " + mission2_PunchCounter.ToString());
|
||
|
||
string result3r = ListToString(Player_missionProgress.completed_missions);
|
||
//Debug.LogWarning("Completed Missions: " + result3r);
|
||
|
||
//If round has started
|
||
if (mission2_RoundIsStarted == true){
|
||
//Debug.LogWarning("Mission2 Start of Round");
|
||
// if (mission2_PunchCounter == 5){ //If Punch Counter reaches 5
|
||
|
||
|
||
//Colliders register punch as 2
|
||
// if (mission2_PunchCounter == 5){ //10, If Punch Counter reaches 5
|
||
if ((mission2_PunchCounter > 5) && (mission2_PunchCounter < 13)){ //10, If Punch Counter reaches 5
|
||
instantiate_completedMissionCanvas(2); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(2);
|
||
|
||
// Debug.Log("Mission2 Completed");
|
||
}
|
||
}
|
||
}
|
||
|
||
public void mission2_RoundHasStarted(){
|
||
mission2_RoundIsStarted = false;
|
||
mission2_PunchCounter = 0;
|
||
mission2_KickCounter = 0;
|
||
|
||
if (mission2_RoundIsStarted == false){
|
||
mission2_RoundIsStarted = true;
|
||
}
|
||
}
|
||
|
||
|
||
//If Enemy has Hit Player, Reset Punch Counter
|
||
public void mission2_EnemyHasHitPlayer(){
|
||
//For Mission 2
|
||
mission2_PunchCounter = 0;
|
||
mission2_KickCounter = 0;
|
||
//Debug.LogWarning("PUNCH " + mission2_PunchCounter.ToString());
|
||
}
|
||
|
||
public void mission2_PlayerHasHitEnemy(string action_type, string action_source, int enemyHealth){
|
||
if (action_type == "punch"){
|
||
mission2_PunchCounter = mission2_PunchCounter + 1; //Increment number of punches
|
||
|
||
//For Mission 2
|
||
mission2_KickCounter = 0;
|
||
}
|
||
|
||
if (action_type == "kick"){
|
||
mission2_KickCounter = mission2_KickCounter + 1; //Increment number of punches
|
||
// Debug.LogWarning("2KICK " + mission2_KickCounter.ToString());
|
||
|
||
//For Mission 2
|
||
mission2_PunchCounter = 0;
|
||
}
|
||
|
||
// Debug.LogWarning("****** 2PUNCH " + mission2_PunchCounter.ToString());
|
||
// Debug.LogWarning("****** 2KICK " + mission2_KickCounter.ToString());
|
||
}
|
||
|
||
|
||
//DLT
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public void a_mission2_RoundStarted(){
|
||
mission2_RoundHasStarted();
|
||
}
|
||
|
||
public void a_mission2_EnemyHitPlayer(){
|
||
mission2_EnemyHasHitPlayer();
|
||
// EnemyHasHitPlayer("kick", "Player(Clone)");
|
||
}
|
||
|
||
public void a_mission2_PlayerKick(){
|
||
mission2_PlayerHasHitEnemy("kick", "Player(Clone)", 100);
|
||
// playerHasHitEnemy("kick", "Player(Clone)");
|
||
}
|
||
|
||
public void a_mission2_PlayerPunch(){
|
||
mission2_PlayerHasHitEnemy("punch", "Player(Clone)", 100);
|
||
// playerHasHitEnemy("punch", "Player(Clone)");
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 2
|
||
|
||
|
||
|
||
//Weekly Mission ID = 3 || Kick opponent 3 times in a row.
|
||
#region
|
||
//Functions used: mission3_RoundHasStarted(), mission3_EnemyHasHitPlayer(), mission3_PlayerHasHitEnemy()
|
||
public static int mission3_KickCounter = 0;
|
||
public static bool mission3_RoundIsStarted = false;
|
||
|
||
public void mission3_weekly(){
|
||
// Debug.LogWarning("Mission3 Called");
|
||
|
||
// Debug.LogWarning("3KICK " + mission3_KickCounter.ToString());
|
||
|
||
//If round has started
|
||
if (mission3_RoundIsStarted == true){
|
||
// if (mission3_KickCounter == 3){
|
||
|
||
// if (mission3_KickCounter == 3){ //12, Kick collider registers as 4
|
||
if ((mission3_KickCounter > 9) && (mission3_KickCounter < 15)){ //12, Kick collider registers as 4
|
||
instantiate_completedMissionCanvas(3); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(3);
|
||
|
||
// Debug.Log("Mission3 Completed");
|
||
}
|
||
}
|
||
}
|
||
|
||
public void mission3_RoundHasStarted(){
|
||
mission3_RoundIsStarted = false;
|
||
mission3_KickCounter = 0;
|
||
|
||
if (mission3_RoundIsStarted == false){
|
||
mission3_RoundIsStarted = true;
|
||
}
|
||
}
|
||
|
||
|
||
public void mission3_EnemyHasHitPlayer(){
|
||
//For Mission 2
|
||
mission3_KickCounter = 0;
|
||
}
|
||
|
||
public void mission3_PlayerHasHitEnemy(string action_type, string action_source, int enemyHealth){
|
||
//Debug.LogError("player_HasHitEnemy_detected");
|
||
|
||
if (action_type == "punch"){
|
||
mission3_KickCounter = 0;
|
||
}
|
||
|
||
if (action_type == "kick"){
|
||
mission3_KickCounter = mission3_KickCounter + 1; //Increment number of punches
|
||
}
|
||
|
||
//Debug.LogWarning("3KICK " + mission3_KickCounter.ToString());
|
||
}
|
||
|
||
|
||
//DLT
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public void a_mission3_RoundStarted(){
|
||
// startOfEachRound(1);
|
||
mission3_RoundHasStarted();
|
||
}
|
||
|
||
public void a_mission3_EnemyHitPlayer(){
|
||
mission3_EnemyHasHitPlayer();
|
||
}
|
||
|
||
public void a_mission3_PlayerKick(){
|
||
mission3_PlayerHasHitEnemy("kick", "Player(Clone)", 100);
|
||
}
|
||
|
||
public void a_mission3_PlayerPunch(){
|
||
mission3_PlayerHasHitEnemy("punch", "Player(Clone)", 100);
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 3
|
||
|
||
|
||
|
||
//Weekly Mission ID = 4 || Perform Kick-Punch-Kick combo (KPK)
|
||
#region
|
||
//Functions used: mission4_RoundHasStarted(), mission4_EnemyHasHitPlayer(), mission4_PlayerHasHitEnemy()
|
||
public static string kick_punch_kick_Combo = "";
|
||
public static bool mission4_RoundIsStarted = false;
|
||
|
||
public void mission4_weekly(){
|
||
// Debug.LogWarning("Mission4 Called");
|
||
|
||
//Debug.LogWarning("KPK value = " + kick_punch_kick_Combo);
|
||
|
||
if (mission4_RoundIsStarted == true){ //Round has started
|
||
if (kick_punch_kick_Combo == "KPK"){
|
||
instantiate_completedMissionCanvas(4); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(4);
|
||
|
||
// Debug.Log("Mission4 Completed");
|
||
|
||
//Debug.LogWarning("KPK Combo achieved!");
|
||
}
|
||
}
|
||
}
|
||
|
||
public void mission4_RoundHasStarted(){
|
||
mission4_RoundIsStarted = false;
|
||
kick_punch_kick_Combo = "";
|
||
|
||
if (mission4_RoundIsStarted == false){
|
||
mission4_RoundIsStarted = true;
|
||
}
|
||
}
|
||
|
||
public void mission4_EnemyHasHitPlayer(){
|
||
kick_punch_kick_Combo = "";
|
||
}
|
||
|
||
public void mission4_PlayerHasHitEnemy(string action_type, string action_source, int enemyHealth){
|
||
mission4_CheckCombo(action_type);
|
||
}
|
||
|
||
public void mission4_CheckCombo(string action_performed){ //Looking for KPK
|
||
string action_done_initial = (action_performed == "punch") ? "P" : "K";
|
||
|
||
switch(kick_punch_kick_Combo){
|
||
//First letter
|
||
case "":
|
||
if (action_done_initial == "P"){
|
||
kick_punch_kick_Combo = "";
|
||
break;
|
||
}else{
|
||
// Add the first "K"
|
||
kick_punch_kick_Combo += "K";
|
||
break;
|
||
}
|
||
|
||
//Second letter
|
||
case "K":
|
||
if (action_done_initial == "K"){
|
||
kick_punch_kick_Combo = "";
|
||
break;
|
||
}else{
|
||
// Add the "P"
|
||
kick_punch_kick_Combo += "P";
|
||
break;
|
||
}
|
||
|
||
//Third letter
|
||
case "KP":
|
||
if (action_done_initial == "P"){
|
||
kick_punch_kick_Combo = "";
|
||
break;
|
||
}else{
|
||
// Add the last "K"
|
||
kick_punch_kick_Combo += "K";
|
||
break;
|
||
}
|
||
}
|
||
// Debug.LogWarning("Combo val = " + kick_punch_kick_Combo);
|
||
}
|
||
|
||
|
||
//DLT
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public void a_mission4_RoundStarted(){
|
||
StartOfEachRound(1);
|
||
}
|
||
|
||
public void a_mission4_EnemyHitPlayer(){
|
||
EnemyHasHitPlayer("kick", "Player(Clone)");
|
||
}
|
||
|
||
public void a_mission4_PlayerKick(){
|
||
PlayerHasHitEnemy("kick", "Player(Clone)", 100);
|
||
}
|
||
|
||
public void a_mission4_PlayerPunch(){
|
||
PlayerHasHitEnemy("punch", "Player(Clone)", 100);
|
||
}
|
||
#endregion
|
||
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public void addletters(){
|
||
mission4_CheckCombo("kick");
|
||
}
|
||
|
||
public void addletters_ruin(){
|
||
mission4_CheckCombo("punch");
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 4
|
||
|
||
|
||
|
||
//Weekly Mission ID = 5 || Win 2 rounds in a row.
|
||
#region
|
||
//Functions used: mission5_RoundHasEnded(), mission5_MatchHasStarted()
|
||
public static int roundsWon_counter = 0;
|
||
|
||
public void mission5_weekly(){
|
||
// Debug.LogWarning("Mission5 Called");
|
||
//Debug.LogWarning("Mission5stat = " + roundsWon_counter.ToString() + " Total Rounds = " + total_rounds.ToString());
|
||
|
||
//If Rounds Won are 2 or more
|
||
if (roundsWon_counter >= 2){
|
||
instantiate_completedMissionCanvas(5); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(5);
|
||
|
||
// Debug.LogWarning("Mission5 completed");
|
||
}
|
||
}
|
||
|
||
//Call each time a Round is Over, Params are (round_status: player_won or player_lost, currentRound: 1 or other)
|
||
// public void mission5_RoundHasEnded(int currentRound, string round_status){ //XTParam: Param required for winning status
|
||
public void mission5_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){ //XTParam: Param required for winning status
|
||
if (round_status == "player_won"){
|
||
roundsWon_counter++;
|
||
// playerHasWon = true;
|
||
}
|
||
|
||
//Reset Win counter if Player loses a round
|
||
if (round_status == "player_lost"){
|
||
roundsWon_counter = 0;
|
||
}
|
||
}
|
||
|
||
public void mission5_MatchHasStarted(){
|
||
roundsWon_counter = 0;
|
||
}
|
||
|
||
|
||
//DLT
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public static int total_rounds = 5;
|
||
public void a_mission5_btn_playerWon(){
|
||
roundsWon_counter++;
|
||
total_rounds--;
|
||
}
|
||
|
||
public void a_mission5_btn_playerLost(){
|
||
roundsWon_counter = 0;
|
||
total_rounds--;
|
||
}
|
||
|
||
public void a_bmission5test(){
|
||
instantiate_completedMissionCanvas(5); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(5);
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 5
|
||
|
||
|
||
|
||
//Weekly Mission ID = 6 || Complete any 2 missions
|
||
#region
|
||
public void mission6_weekly(){
|
||
//Debug.LogWarning("Mission6 Called");
|
||
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
string result3 = ListToString(Player_missionProgress.completed_missions);
|
||
//Debug.LogWarning("Completed Missions: " + result3);
|
||
|
||
//Count how many completed missions are between 7 to 10
|
||
int count = Player_missionProgress.completed_missions.Count(mission => mission >= 7 && mission <= 10);
|
||
|
||
//Debug.LogWarning("missionID6_counter " + count.ToString());
|
||
|
||
if (count >= 2){
|
||
instantiate_completedMissionCanvas(6); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(6);
|
||
|
||
//Debug.LogWarning("Mission6 Completed");
|
||
}
|
||
}
|
||
|
||
|
||
//DLT
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public static int missID = 7;
|
||
public void a_mission6_missionDone(){
|
||
instantiate_completedMissionCanvas(missID); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(missID);
|
||
|
||
missID++;
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 6
|
||
|
||
|
||
|
||
//Weekly Mission ID = 7 || Win 2 matches in a row
|
||
//Winning a Match means Winning Each Round
|
||
//Functions used: mission7_RoundHasEnded(), mission7_MatchHasEnded()
|
||
#region
|
||
public static int mission7_WinStreakOf2Matches = 0, mission7_MissionSearch_Index = 0, mission7_TotalRounds = 3, mission7_CountRoundWins = 0;
|
||
public static string mission7_MissionSearch = "", mission7_SearchTerm = "Mission7";
|
||
public static bool mission7_MatchIsEnded = false;
|
||
|
||
public void mission7_weekly(){
|
||
//Debug.LogWarning("RoundWin = " + mission7_CountRoundWins.ToString() + " Matchwin = " + mission7_WinStreakOf2Matches.ToString());
|
||
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
mission7_MissionSearch = Player_missionProgress.completed_missions_inprogress.FirstOrDefault(s => s.StartsWith(mission7_SearchTerm));
|
||
mission7_MissionSearch_Index = Player_missionProgress.completed_missions_inprogress.FindIndex(s => s.StartsWith(mission7_SearchTerm));
|
||
|
||
|
||
//If the Mission exists, value has been saved
|
||
if (mission7_MissionSearch != null){
|
||
mission7_WinStreakOf2Matches = int.Parse(getMissionValue(mission7_MissionSearch));
|
||
|
||
Debug.LogWarning("Miss7 " + mission7_WinStreakOf2Matches.ToString() + " XTL");
|
||
}else{
|
||
Player_missionProgress.completed_missions_inprogress.Add("Mission7: 0");
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning ("XTL No Results");
|
||
}
|
||
|
||
|
||
if (mission7_WinStreakOf2Matches == 2){
|
||
instantiate_completedMissionCanvas(7); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(7);
|
||
|
||
Debug.LogWarning("Mission7 Completed!");
|
||
}
|
||
}
|
||
|
||
public void mission7_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
//If Won
|
||
if (round_status == "player_won"){
|
||
mission7_CountRoundWins++;
|
||
}
|
||
}
|
||
|
||
public void mission7_MatchHasEnded(){
|
||
// mission7_MatchIsEnded = true;
|
||
|
||
//If all Rounds are Won in 1 Match
|
||
if (mission7_CountRoundWins == mission7_TotalRounds){
|
||
mission7_WinStreakOf2Matches++;
|
||
|
||
Player_missionProgress.completed_missions_inprogress[mission7_MissionSearch_Index] = "Mission7: " + mission7_WinStreakOf2Matches.ToString();
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
Debug.LogWarning("Total WinStreak Mission7 = " + mission7_WinStreakOf2Matches.ToString());
|
||
}
|
||
else{
|
||
//Reset the Win Streak if all rounds are not won in a match
|
||
mission7_WinStreakOf2Matches = 0;
|
||
|
||
Player_missionProgress.completed_missions_inprogress[mission7_MissionSearch_Index] = "Mission7: 0";
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
Debug.LogWarning("Total WinStreak Mission7 = " + mission7_WinStreakOf2Matches.ToString());
|
||
}
|
||
|
||
mission7_CountRoundWins = 0;
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission7_MatchEnd(){
|
||
mission7_MatchHasEnded();
|
||
}
|
||
|
||
public void a_mission7_RoundEnd(){
|
||
mission7_RoundHasEnded(1, "player_won", 100, 50, "C", 100);
|
||
}
|
||
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 7
|
||
|
||
|
||
|
||
//Weekly Mission ID = 8 || Win a round with health not less than 50%
|
||
#region
|
||
//Functions used: mission8_RoundHasEnded()
|
||
public static bool mission8_PlayerHealthMoreThan50 = false;
|
||
public void mission8_weekly(){
|
||
Debug.LogWarning("Mission8 Called");
|
||
|
||
if (mission8_PlayerHealthMoreThan50 == true){
|
||
instantiate_completedMissionCanvas(8); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(8); //For registering the completed mission with the ID
|
||
|
||
Debug.LogWarning("Mission8 done");
|
||
}
|
||
}
|
||
|
||
public static int mission8_PlayerHealth = 5;
|
||
public void mission8_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){ //Round has Ended, Param should be Player's final health, and Current Round
|
||
mission8_PlayerHealth = playerHealth;
|
||
if ((round_status == "player_won") && (mission8_PlayerHealth > 50)){ //Check if final round and the health is not less than 60
|
||
mission8_PlayerHealthMoreThan50 = true;
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission8_RoundOver(){
|
||
Debug.LogWarning("CLICK");
|
||
mission8_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
}
|
||
#endregion
|
||
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 8
|
||
|
||
|
||
|
||
//Weekly Mission ID = 9 || Reach 200 XP
|
||
#region
|
||
public void mission9_weekly(){
|
||
//Debug.Log("Mission9 Called");
|
||
|
||
//Debug.LogError((playerData.xp).ToString());
|
||
playerData = LoadPlayerData();
|
||
|
||
// if ((playerData.xp >= 1000) && (playerData.xp < 3000)){
|
||
if (playerData.xp >= 1000){
|
||
instantiate_completedMissionCanvas(9); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(9); //For registering the completed mission with the ID
|
||
//Debug.Log("Mission9 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 9
|
||
|
||
|
||
|
||
//Weekly Mission ID = 10 || Rank up to Level 2 Bronze
|
||
#region
|
||
public void mission10_weekly(){
|
||
playerData = LoadPlayerData();
|
||
|
||
if ((playerData.rank_level == 2) && (playerData.rank == "Bronze")){
|
||
instantiate_completedMissionCanvas(10);
|
||
game_statsManager.updateMission(10);
|
||
|
||
Debug.Log("Mission10 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 10
|
||
|
||
|
||
|
||
//Weekly Mission ID = 11 || Land a 5-hit punch combo
|
||
#region
|
||
//Functions used: mission11_RoundHasStarted(), mission11_EnemyHasHitPlayer(), mission11_PlayerHasHitEnemy()
|
||
public static string punch_Combo = "";
|
||
public void mission11_weekly(){
|
||
Debug.LogWarning("P value = " + punch_Combo);
|
||
|
||
if (punch_Combo == "PPPPP"){
|
||
instantiate_completedMissionCanvas(11); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(11);
|
||
|
||
Debug.LogWarning("5P Combo achieved!");
|
||
}
|
||
}
|
||
|
||
public void mission11_RoundHasStarted(){
|
||
punch_Combo = ""; //Reset Punch Combo at the start of each round
|
||
}
|
||
|
||
public void mission11_PlayerHasHitEnemy(string action_type, string action_source, int enemyHealth){
|
||
mission11_CheckCombo(action_type);
|
||
}
|
||
|
||
public void mission11_EnemyHasHitPlayer(){
|
||
punch_Combo = "";
|
||
}
|
||
|
||
public void mission11_CheckCombo(string action_performed){ //Looking for KPK
|
||
string action_done_initial = (action_performed == "punch") ? "P" : "K";
|
||
|
||
if (action_done_initial == "P"){
|
||
punch_Combo += "P";
|
||
}
|
||
|
||
if (action_done_initial == "K"){
|
||
punch_Combo = "";
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public void a_mission11_add11letters(){
|
||
mission11_PlayerHasHitEnemy("punch", "Player(Clone)", 100);
|
||
}
|
||
|
||
public void a_mission11_add11letters_ruin(){
|
||
mission11_PlayerHasHitEnemy("kick", "Player(Clone)", 100);
|
||
}
|
||
|
||
public void a_mission11_enemyHit(){
|
||
mission11_EnemyHasHitPlayer();
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 11
|
||
|
||
|
||
|
||
//Weekly Mission ID = 12 || Win a round without taking damage
|
||
#region
|
||
//Functions used: mission12_RoundHasEnded()
|
||
public static bool mission12_PlayerPerfectHealth = false;
|
||
|
||
//Check if the player has won and health is at a certain amount
|
||
public void mission12_weekly(){
|
||
if (mission12_PlayerPerfectHealth == true){
|
||
instantiate_completedMissionCanvas(12); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(12);
|
||
|
||
Debug.LogWarning("Mission12 Completed");
|
||
}
|
||
}
|
||
|
||
public static int mission12_PlayerHealthEndOfRound = 100;
|
||
public void mission12_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
mission12_PlayerHealthEndOfRound = playerHealth;
|
||
if ((round_status == "player_won") && (mission12_PlayerHealthEndOfRound >= 98)){ //Check if the Player's health at the end of a round is above 98 (Perfect Health)
|
||
mission12_PlayerPerfectHealth = true;
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public void a_mission12_RoundOver(){
|
||
mission12_RoundHasEnded(1, "player_won", 100, 50, "C", 100);
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 12
|
||
|
||
|
||
|
||
//Weekly Mission ID = 13 || Complete a round in under 30 seconds.
|
||
#region
|
||
//Functions used: mission13_RoundHasStarted, mission13_RoundHasEnded()
|
||
public static bool mission13_RoundIsStarted = false, mission13_RoundIsOver = false, mission13_count30seconds = false;
|
||
|
||
//Check if a round has started
|
||
public void mission13_weekly(){
|
||
Debug.LogWarning("RoundStarted = " + mission13_RoundIsStarted + " RoundOver = " + mission13_RoundIsOver + " 30Sec = " + mission13_count30seconds);
|
||
|
||
if (mission13_RoundIsStarted == true){ //Round has started
|
||
if ((mission13_RoundIsOver == true) && (mission13_count30seconds == false)){ //Round has Ended, Before 30 second count
|
||
instantiate_completedMissionCanvas(13); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(13); //For registering the completed mission with the ID
|
||
|
||
Debug.Log("Mission13 Completed!");
|
||
}
|
||
}
|
||
}
|
||
|
||
public void mission13_RoundHasStarted(){
|
||
mission13_RoundIsStarted = false;
|
||
mission13_RoundIsOver = false;
|
||
mission13_count30seconds = false;
|
||
|
||
if (mission13_RoundIsStarted == false){
|
||
mission13_RoundIsStarted = true;
|
||
}
|
||
|
||
StartCoroutine(mission13_Delay30SecCountdown(5f)); //Count the 30 seconds
|
||
}
|
||
|
||
public void mission13_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
if (round_status == "player_won"){
|
||
if (mission13_RoundIsOver == false){
|
||
mission13_RoundIsOver = true;
|
||
}
|
||
}
|
||
}
|
||
|
||
IEnumerator mission13_Delay30SecCountdown(float delaytime){
|
||
|
||
//Wait for 30 seconds
|
||
yield return new WaitForSeconds(delaytime);
|
||
|
||
if (mission13_count30seconds == false){
|
||
mission13_count30seconds = true;
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartRound(), RoundOver()
|
||
#region
|
||
public void a_mission13_RoundStarted(){
|
||
StartOfEachRound(1);
|
||
}
|
||
|
||
public void a_mission13_RoundOver(){
|
||
mission13_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
}
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 13
|
||
|
||
|
||
|
||
//Weekly Mission ID = 14 || Complete 3 missions in a single match
|
||
#region
|
||
//Functions used: mission14_MatchHasStarted(), mission14_MatchHasEnded()
|
||
public static bool mission14_MatchIsStarted = false, mission14_MatchIsEnded = false;
|
||
public void mission14_weekly(){
|
||
Debug.LogWarning("MatchStarted = " + mission14_MatchIsStarted + " MatchEnded = " + mission14_MatchIsEnded);
|
||
if ((mission14_MatchIsStarted == true) && (mission14_MatchIsEnded == true)){ //If Match has started and Match has ended
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
string result3 = ListToString(Player_missionProgress.completed_missions);
|
||
Debug.LogWarning("Completed Missions: " + result3);
|
||
|
||
int count = Player_missionProgress.completed_missions.Count(mission => (mission >= 11 && mission <= 15) && mission != 14);
|
||
|
||
Debug.LogWarning("missionID14_counter " + count.ToString());
|
||
|
||
if (count >= 3){ //Check if 3 missions have been completed
|
||
instantiate_completedMissionCanvas(14); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(14);
|
||
|
||
Debug.LogWarning("Mission14 Completed");
|
||
}
|
||
}
|
||
}
|
||
|
||
public void mission14_MatchHasStarted(){
|
||
mission14_MatchIsStarted = false;
|
||
mission14_MatchIsEnded = false;
|
||
|
||
if (mission14_MatchIsStarted == false){
|
||
mission14_MatchIsStarted = true;
|
||
}
|
||
Debug.LogWarning("Mission14 Match Started");
|
||
}
|
||
|
||
public void mission14_MatchHasEnded(){
|
||
if (mission14_MatchIsEnded == false){
|
||
mission14_MatchIsEnded = true;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission14_MatchStarted(){
|
||
StartOfEachMatch();
|
||
}
|
||
|
||
public static int mission_comp = 11;
|
||
public void a_mission14_MissionCompleted(){
|
||
Debug.LogWarning("Missions Done " + mission_comp.ToString());
|
||
|
||
if (mission_comp != 14){
|
||
instantiate_completedMissionCanvas(mission_comp); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(mission_comp);
|
||
}
|
||
mission_comp++;
|
||
}
|
||
|
||
public void a_mission14_MatchEnded(){
|
||
EndOfEachMatch();
|
||
}
|
||
#endregion
|
||
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 14
|
||
|
||
|
||
|
||
//Weekly Mission ID = 15 || Win a round using only punches
|
||
#region
|
||
//Functions used: mission15_RoundHasStarted(), mission15_RoundHasEnded(), mission15_PlayerHasHitEnemy()
|
||
public static int mission15_PunchCounter = 0, mission15_KickCounter = 0;
|
||
public static bool mission15_RoundIsStarted = false, mission15_RoundIsOver = false;
|
||
public void mission15_weekly(){
|
||
Debug.LogWarning("15Kick = " + mission15_KickCounter.ToString() + " Punch = " + mission15_PunchCounter.ToString());
|
||
|
||
if (mission15_RoundIsOver == true){ //Player has Won
|
||
if (mission15_KickCounter == 0){ //No Kicks were used, Only Punches
|
||
instantiate_completedMissionCanvas(15); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(15);
|
||
|
||
Debug.LogWarning("Mission15 Completed!");
|
||
}
|
||
}
|
||
}
|
||
|
||
public void mission15_RoundHasStarted(){
|
||
mission15_RoundIsStarted = true;
|
||
|
||
//Restarts variables for a new round
|
||
mission15_PunchCounter = 0;
|
||
mission15_KickCounter = 0;
|
||
mission15_RoundIsOver = false;
|
||
}
|
||
|
||
|
||
public void mission15_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
if (round_status == "player_won"){
|
||
mission15_RoundIsOver = true;
|
||
}
|
||
}
|
||
|
||
|
||
public void mission15_PlayerHasHitEnemy(string action_type, string action_source, int enemyHealth){
|
||
if (action_type == "kick"){
|
||
mission15_KickCounter++;
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission15_RoundOver(){
|
||
mission15_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
}
|
||
|
||
public void a_mission15_punch(){
|
||
mission15_PunchCounter++;
|
||
}
|
||
|
||
public void a_mission15_kick(){
|
||
mission15_KickCounter++;
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 15
|
||
|
||
|
||
|
||
//Weekly Mission ID = 16 || Win a round with less than 10% health remaining
|
||
#region
|
||
//Functions used: mission16_RoundHasEnded()
|
||
public static bool mission16_PlayerHealthLessThan10 = false;
|
||
public void mission16_weekly(){
|
||
Debug.LogWarning("Mission16 Called");
|
||
|
||
if (mission16_PlayerHealthLessThan10 == true){
|
||
instantiate_completedMissionCanvas(16); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(16); //For registering the completed mission with the ID
|
||
|
||
Debug.Log("Mission16 done");
|
||
}
|
||
}
|
||
|
||
public static int mission16_PlayerHealth = 5;
|
||
public void mission16_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){ //Round has Ended, Param should be Player's final health, and Current Round
|
||
mission16_PlayerHealth = playerHealth;
|
||
if ((round_status == "player_won") && (mission16_PlayerHealth < 10)){ //Check if final round and the health is not less than 60
|
||
mission16_PlayerHealthLessThan10 = true;
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission16_RoundOver(){
|
||
mission16_RoundHasEnded(1, "player_won", 5, 50, "C", 100);
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 16
|
||
|
||
|
||
|
||
//Weekly Mission ID = 17 || Achieve a win streak of 5 matches in a row
|
||
#region
|
||
//Functions used: mission17_RoundHasEnded(), mission17_MatchHasEnded()
|
||
public static int mission17_WinStreakOf5Matches = 0, mission17_MissionSearch_Index = 0, mission17_TotalRounds = 3, mission17_CountRoundWins = 0;
|
||
public static string mission17_MissionSearch = "", mission17_SearchTerm = "Mission17";
|
||
public static bool mission17_MatchIsEnded = false;
|
||
|
||
public void mission17_weekly(){
|
||
Debug.LogWarning("Mission17 Called");
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
mission17_MissionSearch = Player_missionProgress.completed_missions_inprogress.FirstOrDefault(s => s.StartsWith(mission17_SearchTerm));
|
||
mission17_MissionSearch_Index = Player_missionProgress.completed_missions_inprogress.FindIndex(s => s.StartsWith(mission17_SearchTerm));
|
||
|
||
|
||
//If the Mission exists, value has been saved
|
||
if (mission17_MissionSearch != null){
|
||
mission17_WinStreakOf5Matches = int.Parse(getMissionValue(mission17_MissionSearch));
|
||
|
||
Debug.LogWarning("Miss17 " + mission17_WinStreakOf5Matches.ToString() + " XTL");
|
||
}else{
|
||
Player_missionProgress.completed_missions_inprogress.Add("Mission17: 0");
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning ("XTL No Results");
|
||
}
|
||
|
||
|
||
if (mission17_WinStreakOf5Matches == 5){
|
||
instantiate_completedMissionCanvas(17); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(17);
|
||
|
||
Debug.LogWarning("Mission17 Completed!");
|
||
}
|
||
}
|
||
|
||
public void mission17_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
//If Won
|
||
if (round_status == "player_won"){
|
||
mission17_CountRoundWins++;
|
||
}
|
||
}
|
||
|
||
public void mission17_MatchHasEnded(){
|
||
// mission17_MatchIsEnded = true;
|
||
|
||
//If all Rounds are Won in 1 Match
|
||
if (mission17_CountRoundWins == mission17_TotalRounds){
|
||
mission17_WinStreakOf5Matches++;
|
||
|
||
Player_missionProgress.completed_missions_inprogress[mission17_MissionSearch_Index] = "Mission17: " + mission17_WinStreakOf5Matches.ToString();
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
Debug.LogWarning("Total WinStreak Mission17 = " + mission17_WinStreakOf5Matches.ToString());
|
||
}
|
||
else{
|
||
//Reset the Win Streak if all rounds are not won in a match
|
||
mission17_WinStreakOf5Matches = 0;
|
||
|
||
Player_missionProgress.completed_missions_inprogress[mission17_MissionSearch_Index] = "Mission17: 0";
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
Debug.LogWarning("Total WinStreak Mission17 = " + mission17_WinStreakOf5Matches.ToString());
|
||
}
|
||
|
||
mission17_CountRoundWins = 0;
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission17_MatchEnd(){
|
||
mission17_MatchHasEnded();
|
||
}
|
||
|
||
public void a_mission17_RoundEnd(){
|
||
mission17_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
}
|
||
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 17
|
||
|
||
|
||
|
||
//Weekly Mission ID = 18 || Watch 2 Ads
|
||
#region
|
||
//Functions used: mission18_AdsWatchedIncrement
|
||
public static string mission18_MissionSearch = "", mission18_SearchTerm = "Mission18";
|
||
public static int mission18_AdsWatchedCount, mission18_MissionSearch_Index;
|
||
public void mission18_weekly(){
|
||
Debug.LogWarning("Mission18 Called");
|
||
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
string result3dx = ListToString(Player_missionProgress.completed_missions_inprogress);
|
||
Debug.LogWarning("Completed Missions18 In Progress: " + result3dx);
|
||
|
||
mission18_MissionSearch = Player_missionProgress.completed_missions_inprogress.FirstOrDefault(s => s.StartsWith(mission18_SearchTerm));
|
||
mission18_MissionSearch_Index = Player_missionProgress.completed_missions_inprogress.FindIndex(s => s.StartsWith(mission18_SearchTerm));
|
||
|
||
|
||
//If the Mission exists, value has been saved
|
||
if (mission18_MissionSearch != null){
|
||
mission18_AdsWatchedCount = int.Parse(getMissionValue(mission18_MissionSearch));
|
||
|
||
Debug.LogWarning("Miss " + mission18_AdsWatchedCount.ToString() + " XTL");
|
||
}else{
|
||
Player_missionProgress.completed_missions_inprogress.Add("Mission18: 0");
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
}
|
||
|
||
if (mission18_AdsWatchedCount == 2){
|
||
instantiate_completedMissionCanvas(18); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(18);
|
||
|
||
Debug.LogWarning("Mission18 Completed!");
|
||
}
|
||
}
|
||
|
||
public void mission18_AdsWatchedIncrement(){
|
||
mission18_AdsWatchedCount++;
|
||
Player_missionProgress.completed_missions_inprogress[mission18_MissionSearch_Index] = "Mission18: " + mission18_AdsWatchedCount.ToString();
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning("Total Ads Watched Mission18 = " + mission18_AdsWatchedCount.ToString());
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission18_AddAds(){
|
||
AdsWatched();
|
||
// mission18_AdsWatchedIncrement();
|
||
}
|
||
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 18
|
||
|
||
|
||
|
||
//Weekly Mission ID = 19 || Reach 300 XP
|
||
#region
|
||
public void mission19_weekly(){
|
||
//Retrieve XP of the player, then check if reaches the expected value, i.e 300 XP
|
||
|
||
Debug.LogError("Mission19 " + (playerData.xp).ToString());
|
||
playerData = LoadPlayerData();
|
||
|
||
if ((playerData.xp >= 3000) && (playerData.xp <= 4000)){
|
||
instantiate_completedMissionCanvas(19); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(19); //For registering the completed mission with the ID
|
||
Debug.Log("Mission19 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 19
|
||
|
||
|
||
|
||
//Weekly Mission ID = 20 || Rank up to Level 2 Silver.
|
||
#region
|
||
public void mission20_weekly(){
|
||
playerData = LoadPlayerData();
|
||
|
||
if ((playerData.rank_level == 2) && (playerData.rank == "Silver")){
|
||
instantiate_completedMissionCanvas(20);
|
||
game_statsManager.updateMission(20);
|
||
|
||
Debug.Log("Mission20 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 20
|
||
|
||
#endregion
|
||
//END OF MONTH 1
|
||
|
||
|
||
|
||
|
||
//MONTH 2, ID 21 - 40
|
||
#region
|
||
|
||
//Weekly Mission ID = 21 || Win a match without walking around
|
||
#region
|
||
//Functions used: mission21_RoundHasStarted, mission21_RoundHasEnded(), mission21_MatchHasStarted, mission21_MatchHasEnded(), mission21_PlayerHasWalked()
|
||
public static bool mission21_PlayerWalkStatus = false, mission21_MatchIsEndedWonMatch = false;
|
||
public static int mission21_TotalRounds = 3, mission21_CountRoundWins = 0;
|
||
|
||
public void mission21_weekly(){
|
||
Debug.LogWarning("Mission21x PlayerMovedStatus = " + mission21_PlayerWalkStatus);
|
||
|
||
if ((mission21_MatchIsEndedWonMatch == true) && (mission21_PlayerWalkStatus == false)){ //If match was won and player has not walked
|
||
instantiate_completedMissionCanvas(21);
|
||
game_statsManager.updateMission(21);
|
||
|
||
Debug.Log("Mission21 done"); //Show which mission is done
|
||
}
|
||
}
|
||
|
||
public void mission21_RoundHasStarted(){
|
||
mission21_PlayerWalkStatus = false;
|
||
}
|
||
|
||
public void mission21_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
//If Won
|
||
if (round_status == "player_won"){
|
||
mission21_CountRoundWins++;
|
||
}
|
||
}
|
||
|
||
//Player has moved
|
||
public void mission21_PlayerHasWalked(){
|
||
mission21_PlayerWalkStatus = true;
|
||
}
|
||
|
||
public void mission21_MatchHasStarted(){
|
||
mission21_MatchIsEndedWonMatch = false;
|
||
mission21_CountRoundWins = 0;
|
||
}
|
||
|
||
public void mission21_MatchHasEnded(){
|
||
if (mission21_CountRoundWins == mission21_TotalRounds){ //A match has been Won
|
||
mission21_MatchIsEndedWonMatch = true; //If match has been Won
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission21_PlayerMoved(){
|
||
PlayerHasMoved();
|
||
}
|
||
|
||
public void a_mission21_MatchEnd(){
|
||
mission21_MatchHasEnded();
|
||
}
|
||
|
||
public void a_mission21_RoundOver(){
|
||
mission21_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
}
|
||
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 21
|
||
|
||
|
||
|
||
//Weekly Mission ID = 22 || Watch 10 Ads
|
||
#region
|
||
public static string mission22_MissionSearch = "", mission22_SearchTerm = "Mission22";
|
||
public static int mission22_AdsWatchedCount, mission22_MissionSearch_Index;
|
||
public void mission22_weekly(){
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
string result3d = ListToString(Player_missionProgress.completed_missions_inprogress);
|
||
Debug.LogWarning("Completed Missions In Progress: " + result3d);
|
||
|
||
mission22_MissionSearch = Player_missionProgress.completed_missions_inprogress.FirstOrDefault(s => s.StartsWith(mission22_SearchTerm));
|
||
mission22_MissionSearch_Index = Player_missionProgress.completed_missions_inprogress.FindIndex(s => s.StartsWith(mission22_SearchTerm));
|
||
|
||
|
||
//If the Mission exists, value has been saved
|
||
if (mission22_MissionSearch != null){
|
||
mission22_AdsWatchedCount = int.Parse(getMissionValue(mission22_MissionSearch));
|
||
|
||
Debug.LogWarning("Miss " + mission22_AdsWatchedCount.ToString() + " XTL");
|
||
}else{
|
||
Player_missionProgress.completed_missions_inprogress.Add("Mission22: 0");
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning ("XTL No Results");
|
||
}
|
||
|
||
if (mission22_AdsWatchedCount == 10){
|
||
instantiate_completedMissionCanvas(22); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(22);
|
||
|
||
Debug.LogWarning("Mission22 Completed!");
|
||
}
|
||
|
||
}
|
||
|
||
public void mission22_AdsWatchedIncrement(){
|
||
mission22_AdsWatchedCount++;
|
||
Player_missionProgress.completed_missions_inprogress[mission22_MissionSearch_Index] = "Mission22: " + mission22_AdsWatchedCount.ToString();
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning("Total Ads Watched Mission22 = " + mission22_AdsWatchedCount.ToString());
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission22_AddAds(){
|
||
AdsWatched();
|
||
// mission22_AdsWatchedIncrement();
|
||
}
|
||
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 22
|
||
|
||
|
||
|
||
//Weekly Mission ID = 23 || Achieve a perfect round using only kicks
|
||
#region
|
||
//Functions used: mission23_RoundHasStarted(), mission23_RoundHasEnded(), mission23_PlayerHasHitEnemy()
|
||
public static int mission23_PunchCounter = 0, mission23_KickCounter = 0, mission23_PlayerHealth = 100;
|
||
public static bool mission23_RoundIsOverPerfectWin = false;
|
||
public void mission23_weekly(){
|
||
Debug.LogWarning("23Kick = " + mission23_KickCounter.ToString() + " Punch = " + mission23_PunchCounter.ToString());
|
||
|
||
if (mission23_RoundIsOverPerfectWin == true){ //If Round is Over and Player has Perfect Health
|
||
if (mission23_PunchCounter == 0){ //Only Kicks were used, No Punches
|
||
instantiate_completedMissionCanvas(23); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(23);
|
||
|
||
Debug.LogWarning("Mission23 Completed!");
|
||
}
|
||
}
|
||
}
|
||
|
||
public void mission23_RoundHasStarted(){
|
||
mission23_PunchCounter = 0;
|
||
mission23_KickCounter = 0;
|
||
mission23_RoundIsOverPerfectWin = false;
|
||
}
|
||
|
||
|
||
|
||
public void mission23_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
mission23_PlayerHealth = playerHealth;
|
||
if ((round_status == "player_won") && (mission23_PlayerHealth >= 95)){
|
||
mission23_RoundIsOverPerfectWin = true;
|
||
}
|
||
}
|
||
|
||
|
||
public void mission23_PlayerHasHitEnemy(string action_type, string action_source, int enemyHealth){
|
||
if (action_type == "punch"){
|
||
mission23_PunchCounter++;
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission23_RoundOver(){
|
||
mission23_RoundHasEnded(1, "player_won", 100, 50, "C", 100);
|
||
}
|
||
|
||
public void a_mission23_punch(){
|
||
mission23_PlayerHasHitEnemy("punch", "Player(Clone)", 100);
|
||
}
|
||
|
||
public void a_mission23_kick(){
|
||
mission23_PlayerHasHitEnemy("kick", "Player(Clone)", 100);
|
||
}
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 23
|
||
|
||
|
||
|
||
//Weekly Mission ID = 24 || Win a round sustaining less than 5 hits from opponent
|
||
#region
|
||
//Functions used: mission24_RoundHasStarted(), mission24_RoundHasEnded(), mission24_EnemyHasHitPlayer()
|
||
public static bool mission24_RoundIsOverWon = false;
|
||
public static int mission24_EnemyHitsPlayer_Counter = 0;
|
||
public void mission24_weekly(){
|
||
Debug.LogWarning("EnemyHits = " + mission24_EnemyHitsPlayer_Counter.ToString());
|
||
|
||
if ((mission24_RoundIsOverWon == true) && (mission24_EnemyHitsPlayer_Counter < 5)){
|
||
instantiate_completedMissionCanvas(24); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(24);
|
||
|
||
Debug.LogWarning("Mission24 Completed!");
|
||
}
|
||
}
|
||
|
||
public void mission24_RoundHasStarted(){
|
||
mission24_RoundIsOverWon = false;
|
||
mission24_EnemyHitsPlayer_Counter = 0;
|
||
}
|
||
|
||
public void mission24_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
if (round_status == "player_won"){
|
||
mission24_RoundIsOverWon = true;
|
||
}
|
||
}
|
||
|
||
public void mission24_EnemyHasHitPlayer(){
|
||
mission24_EnemyHitsPlayer_Counter++;
|
||
}
|
||
|
||
|
||
#region
|
||
public void a_mission24_RoundOver(){
|
||
mission24_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
}
|
||
|
||
public void a_mission24_EnemyHit(){
|
||
mission24_EnemyHitsPlayer_Counter++;
|
||
}
|
||
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 24
|
||
|
||
|
||
|
||
//Weekly Mission ID = 25 || Win a match using only punches
|
||
#region
|
||
//Functions used: mission25_RoundHasStarted(), mission25_RoundHasEnded(), mission25_MatchHasStarted(), mission25_MatchHasEnded(), mission25_PlayerHasHitEnemy()
|
||
public static int mission25_PunchCounter = 0, mission25_KickCounter = 0, mission25_TotalRounds = 3, mission25_CountRoundWins = 0;
|
||
public static bool mission25_MatchIsEndedWonMatch = false;
|
||
public void mission25_weekly(){
|
||
Debug.LogWarning("25Kick = " + mission25_KickCounter.ToString() + " Punch = " + mission25_PunchCounter.ToString());
|
||
|
||
if (mission25_MatchIsEndedWonMatch == true){ //If Match is Over
|
||
instantiate_completedMissionCanvas(25); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(25);
|
||
|
||
Debug.LogWarning("Mission25 Completed!");
|
||
}
|
||
}
|
||
|
||
public void mission25_RoundHasStarted(){
|
||
mission25_PunchCounter = 0;
|
||
mission25_KickCounter = 0;
|
||
}
|
||
|
||
|
||
public void mission25_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
//If Won
|
||
if ((round_status == "player_won") && (mission25_KickCounter == 0)){
|
||
mission25_CountRoundWins++;
|
||
}
|
||
}
|
||
|
||
public void mission25_MatchHasStarted(){
|
||
mission25_MatchIsEndedWonMatch = false;
|
||
mission25_CountRoundWins = 0;
|
||
}
|
||
|
||
public void mission25_MatchHasEnded(){
|
||
// mission25_MatchIsEnded = true;
|
||
|
||
if (mission25_CountRoundWins == mission25_TotalRounds){ //A match has been Won
|
||
mission25_MatchIsEndedWonMatch = true; //If match has been Won
|
||
}
|
||
}
|
||
|
||
public void mission25_PlayerHasHitEnemy(string action_type, string action_source, int enemyHealth){
|
||
if (action_type == "kick"){
|
||
mission25_KickCounter++;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission25_RoundOver(){
|
||
mission25_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
}
|
||
|
||
public void a_mission25_MatchOver(){
|
||
mission25_MatchHasEnded();
|
||
}
|
||
|
||
public void a_mission25_punch(){
|
||
mission25_PlayerHasHitEnemy("punch", "Player(Clone)", 100);
|
||
}
|
||
|
||
public void a_mission25_kick(){
|
||
mission25_PlayerHasHitEnemy("kick", "Player(Clone)", 100);
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 25
|
||
|
||
|
||
|
||
//Weekly Mission ID = 26 || Win a match with not less than 60% health in the final round
|
||
#region
|
||
//Functions used: mission26_RoundHasEnded(), mission26_MatchHasStarted(), mission26_MatchHasEnded()
|
||
public static bool mission26_LastRoundPlayerHealthOver60 = false, mission26_CompleteFlag = false;
|
||
public static int mission26_TotalRounds = 3, mission26_CountRoundWins = 0; //Total Rounds in each Match
|
||
public void mission26_weekly(){
|
||
if (mission26_CompleteFlag == true){
|
||
instantiate_completedMissionCanvas(26); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(26); //For registering the completed mission with the ID
|
||
|
||
Debug.Log("Mission26 done");
|
||
}
|
||
}
|
||
|
||
public void mission26_MatchHasStarted(){
|
||
mission26_CountRoundWins = 0;
|
||
mission26_LastRoundPlayerHealthOver60 = false;
|
||
}
|
||
|
||
public static int mission26_PlayerHealth = 60;
|
||
public void mission26_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){ //Round has Ended, Param should be Player's final health, and Current Round
|
||
mission26_PlayerHealth = playerHealth;
|
||
|
||
if (round_status == "player_won"){
|
||
mission26_CountRoundWins++;
|
||
}
|
||
|
||
//If current number is the final round and the health is greater than 60
|
||
if ((roundNum == mission26_TotalRounds) && (mission26_PlayerHealth >= 60)){ //Check if final round and the health is not less than 60
|
||
mission26_LastRoundPlayerHealthOver60 = true;
|
||
}
|
||
}
|
||
|
||
public void mission26_MatchHasEnded(){
|
||
if (mission26_CountRoundWins == mission26_TotalRounds){ //If all rounds were Won
|
||
if (mission26_LastRoundPlayerHealthOver60 == true){ //If won last round with 60 health
|
||
mission26_CompleteFlag = true;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission26_RoundOver(){
|
||
mission26_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
}
|
||
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 26
|
||
|
||
|
||
|
||
//Weekly Mission ID = 27 || Perform Punch-Kick-Kick combo (PKK)
|
||
#region
|
||
//Functions used: mission27_RoundHasStarted(), mission27_EnemyHasHitPlayer(), mission27_PlayerHasHitEnemy()
|
||
public static string punch_kick_kick_Combo = "";
|
||
|
||
public void mission27_weekly(){
|
||
Debug.LogWarning("PKK value = " + punch_kick_kick_Combo);
|
||
|
||
if (punch_kick_kick_Combo == "PKK"){
|
||
instantiate_completedMissionCanvas(27); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(27);
|
||
|
||
Debug.LogWarning("PKK Combo achieved!");
|
||
}
|
||
}
|
||
|
||
public void mission27_RoundHasStarted(){
|
||
punch_kick_kick_Combo = "";
|
||
}
|
||
|
||
public void mission27_EnemyHasHitPlayer(){
|
||
punch_kick_kick_Combo = "";
|
||
}
|
||
|
||
public void mission27_PlayerHasHitEnemy(string action_type, string action_source, int enemyHealth){
|
||
mission27_CheckCombo(action_type);
|
||
}
|
||
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public void a_mission27_Player_kick(){
|
||
mission27_PlayerHasHitEnemy("kick", "Player(Clone)", 100);
|
||
}
|
||
|
||
public void a_mission27_Player_punch(){
|
||
mission27_PlayerHasHitEnemy("punch", "Player(Clone)", 100);
|
||
}
|
||
|
||
public void a_mission27_Enemy_punch(){
|
||
mission27_EnemyHasHitPlayer();
|
||
}
|
||
#endregion
|
||
|
||
|
||
public void mission27_CheckCombo(string action_performed){ //Looking for PKK
|
||
string action_done_initial = (action_performed == "punch") ? "P" : "K";
|
||
|
||
switch(punch_kick_kick_Combo){
|
||
//First letter
|
||
case "":
|
||
if (action_done_initial == "K"){
|
||
punch_kick_kick_Combo = "";
|
||
break;
|
||
}else{
|
||
// Add the first "K"
|
||
punch_kick_kick_Combo += "P";
|
||
break;
|
||
}
|
||
|
||
//Second letter
|
||
case "P":
|
||
if (action_done_initial == "P"){
|
||
punch_kick_kick_Combo = "";
|
||
break;
|
||
}else{
|
||
// Add the "P"
|
||
punch_kick_kick_Combo += "K";
|
||
break;
|
||
}
|
||
|
||
//Third letter
|
||
case "PK":
|
||
if (action_done_initial == "P"){
|
||
punch_kick_kick_Combo = "";
|
||
break;
|
||
}else{
|
||
// Add the last "K"
|
||
punch_kick_kick_Combo += "K";
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 27
|
||
|
||
|
||
|
||
//Weekly Mission ID = 28 || Reach 500 XP
|
||
#region
|
||
public void mission28_weekly(){
|
||
playerData = LoadPlayerData();
|
||
|
||
// if ((playerData.xp >= 1000) && (playerData.xp < 3000)){
|
||
if (playerData.xp >= 5000){
|
||
instantiate_completedMissionCanvas(28); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(28); //For registering the completed mission with the ID
|
||
|
||
Debug.Log("Mission28 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 28
|
||
|
||
|
||
|
||
//Weekly Mission ID = 29 || Rank up to Level 2 Gold
|
||
#region
|
||
public void mission29_weekly(){
|
||
playerData = LoadPlayerData();
|
||
|
||
if ((playerData.rank_level == 2) && (playerData.rank == "Gold")){
|
||
instantiate_completedMissionCanvas(29);
|
||
game_statsManager.updateMission(29);
|
||
|
||
Debug.Log("Mission29 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 29
|
||
|
||
|
||
|
||
//Weekly Mission ID = 30 || Complete this week<65>s missions
|
||
#region
|
||
public void mission30_weekly(){
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
int count = Player_missionProgress.completed_missions.Count(mission => mission >= 26 && mission <= 29);
|
||
if (count >= 4){
|
||
instantiate_completedMissionCanvas(30); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(30);
|
||
|
||
Debug.LogWarning("Mission30 Completed");
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public static int missID2 = 26;
|
||
public void a_mission30_missionDone(){
|
||
instantiate_completedMissionCanvas(missID2); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(missID2);
|
||
|
||
missID2++;
|
||
}
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 30
|
||
|
||
|
||
|
||
//Weekly Mission ID = 31 || Complete a round in under 30 seconds
|
||
#region
|
||
//Functions used: mission31_RoundHasStarted(), mission31_RoundHasEnded(), mission31_MatchHasEnded()
|
||
public static bool mission31_RoundUnder30Seconds = false;
|
||
public static float mission31_RoundTime = 0, mission31_RoundStartTime = 0, mission31_RoundEndTime = 0; // Time when the scene started
|
||
|
||
public void mission31_weekly(){
|
||
Debug.LogWarning("RStT = " + mission31_RoundStartTime + " REndT = " + mission31_RoundEndTime + " OvTM = " + mission31_RoundUnder30Seconds);
|
||
|
||
if (mission31_RoundUnder30Seconds == true){
|
||
instantiate_completedMissionCanvas(31); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(31);
|
||
|
||
Debug.LogWarning("Mission31 Completed");
|
||
}
|
||
}
|
||
|
||
public void mission31_RoundHasStarted(){
|
||
// Record the time when the scene starts
|
||
mission31_RoundStartTime = Time.time;
|
||
// Debug.LogWarning("StartTime =");
|
||
}
|
||
|
||
public void mission31_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
//Stop Time Count
|
||
//Take Start and Stop Time, Add this time to see time used in Each Round
|
||
mission31_RoundEndTime = Time.time;
|
||
mission31_RoundTime = mission31_RoundEndTime - mission31_RoundStartTime; //Total Time Used in Round
|
||
|
||
if (mission31_RoundTime < 30){
|
||
mission31_RoundUnder30Seconds = true;
|
||
}
|
||
}
|
||
|
||
#region
|
||
public void aa_mission31_RoundStart(){
|
||
mission31_RoundHasStarted();
|
||
}
|
||
|
||
public void aa_mission31_RoundEnd(){
|
||
mission31_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
}
|
||
|
||
// public void aa_mission51_MatchEnd(){
|
||
// mission31_MatchHasEnded();
|
||
// }
|
||
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 31
|
||
|
||
|
||
|
||
//Weekly Mission ID = 32 || Watch 5 Ads
|
||
#region
|
||
//Functions used: mission32_AdsWatchedIncrement()
|
||
public static string mission32_MissionSearch = "", mission32_SearchTerm = "Mission32";
|
||
public static int mission32_AdsWatchedCount, mission32_MissionSearch_Index;
|
||
public void mission32_weekly(){
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
string result3dx = ListToString(Player_missionProgress.completed_missions_inprogress);
|
||
Debug.LogWarning("Completed Missions32 In Progress: " + result3dx);
|
||
|
||
mission32_MissionSearch = Player_missionProgress.completed_missions_inprogress.FirstOrDefault(s => s.StartsWith(mission32_SearchTerm));
|
||
mission32_MissionSearch_Index = Player_missionProgress.completed_missions_inprogress.FindIndex(s => s.StartsWith(mission32_SearchTerm));
|
||
|
||
|
||
//If the Mission exists, value has been saved
|
||
if (mission32_MissionSearch != null){
|
||
mission32_AdsWatchedCount = int.Parse(getMissionValue(mission32_MissionSearch));
|
||
|
||
Debug.LogWarning("Miss " + mission32_AdsWatchedCount.ToString() + " XTL");
|
||
}else{
|
||
Player_missionProgress.completed_missions_inprogress.Add("Mission32: 0");
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning ("XTL No Results");
|
||
}
|
||
|
||
if (mission32_AdsWatchedCount == 5){
|
||
instantiate_completedMissionCanvas(32); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(32);
|
||
|
||
Debug.LogWarning("Mission32 Completed!");
|
||
}
|
||
}
|
||
|
||
public void mission32_AdsWatchedIncrement(){
|
||
mission32_AdsWatchedCount++;
|
||
Player_missionProgress.completed_missions_inprogress[mission32_MissionSearch_Index] = "Mission32: " + mission32_AdsWatchedCount.ToString();
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning("Total Ads Watched Mission32 = " + mission32_AdsWatchedCount.ToString());
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a1_mission32_AddAds(){
|
||
AdsWatched();
|
||
// mission52_AdsWatchedIncrement();
|
||
}
|
||
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 32
|
||
|
||
|
||
|
||
//Weekly Mission ID = 33 || Achieve a win with less than 5% health remaining in each round
|
||
#region
|
||
//Functions used: mission33_RoundHasEnded(), mission33_MatchHasEnded()
|
||
public static int mission33_TotalRounds = 3, mission33_RoundsCountWinWithLessThan5Health = 0;
|
||
public static bool mission33_WinLess5EachRound = false;
|
||
public void mission33_weekly(){
|
||
if (mission33_WinLess5EachRound == true){
|
||
instantiate_completedMissionCanvas(33); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(33); //For registering the completed mission with the ID
|
||
Debug.Log("Mission33 done"); //Show which mission is done
|
||
}
|
||
}
|
||
|
||
|
||
public static int mission33_PlayerHealth = 4;
|
||
public void mission33_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
mission33_PlayerHealth = playerHealth;
|
||
if ((round_status == "player_won") && (mission33_PlayerHealth < 5)){
|
||
mission33_RoundsCountWinWithLessThan5Health++;
|
||
}
|
||
}
|
||
|
||
public void mission33_MatchHasEnded(){
|
||
if (mission33_RoundsCountWinWithLessThan5Health == mission33_TotalRounds){
|
||
mission33_WinLess5EachRound = true;
|
||
}else{ //If not all rounds are won
|
||
mission33_RoundsCountWinWithLessThan5Health = 0;
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public void a_mission33_RoundEnd(){
|
||
mission33_RoundHasEnded(1, "player_won", 3, 50, "Cheetah(Clone)", 100);
|
||
}
|
||
|
||
public void a_mission33_MatchEnd(){
|
||
mission33_MatchHasEnded();
|
||
}
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 33
|
||
|
||
|
||
|
||
//Weekly Mission ID = 34 || Win a round with more 75% health remaining
|
||
#region
|
||
//Functions used: mission34_RoundHasEnded()
|
||
public static bool mission34_PlayerHealthMoreThan75 = false;
|
||
public void mission34_weekly(){
|
||
if (mission34_PlayerHealthMoreThan75 == true){
|
||
instantiate_completedMissionCanvas(34); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(34); //For registering the completed mission with the ID
|
||
Debug.Log("Mission34 done"); //Show which mission is done
|
||
}
|
||
}
|
||
|
||
public static int mission34_PlayerHealth = 80;
|
||
public void mission34_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
mission34_PlayerHealth = playerHealth;
|
||
if ((round_status == "player_won") && (mission34_PlayerHealth > 75)){
|
||
if (mission34_PlayerHealthMoreThan75 == false){
|
||
mission34_PlayerHealthMoreThan75 = true;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public void a_mission34_RoundOver(){
|
||
mission34_RoundHasEnded(1, "player_won", 80, 50, "Cheetah(Clone)", 100);
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 34
|
||
|
||
|
||
|
||
//Weekly Mission ID = 35 || Complete this week<65>s missions
|
||
#region
|
||
public void mission35_weekly(){
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
int count = Player_missionProgress.completed_missions.Count(mission => mission >= 31 && mission <= 34);
|
||
if (count >= 4){
|
||
instantiate_completedMissionCanvas(35); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(35);
|
||
|
||
Debug.LogWarning("Mission35 Completed");
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public static int missID3 = 31;
|
||
public void a_mission35_missionDone(){
|
||
instantiate_completedMissionCanvas(missID3); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(missID3);
|
||
|
||
missID3++;
|
||
}
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 35
|
||
|
||
|
||
|
||
//Weekly Mission ID = 36 || Play different matches for a total of 30 minutes
|
||
#region
|
||
//Count time here
|
||
// public static bool mission36_MatchesTotalOf30Minutes = false;
|
||
public static float mission36_MatchStartTime = 0, mission36_MatchEndTime = 0, mission36_CalculatedMatchTime = 0, mission36_OverallTimeInMatch = 0;
|
||
public static string mission36_MissionSearch = "", mission36_SearchTerm = "Mission36";
|
||
public static int mission36_TimeRetrieved, mission36_MissionSearch_Index;
|
||
|
||
public void mission36_weekly(){
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
Debug.LogWarning("RStT = " + mission36_MatchStartTime + " REndT = " + mission36_MatchEndTime + " TDiff = " + mission36_CalculatedMatchTime);
|
||
|
||
// string result3dx = ListToString(Player_missionProgress.completed_missions_inprogress);
|
||
// Debug.LogWarning("Completed Missions37 In Progress: " + result3dx);
|
||
|
||
mission36_MissionSearch = Player_missionProgress.completed_missions_inprogress.FirstOrDefault(s => s.StartsWith(mission36_SearchTerm));
|
||
mission36_MissionSearch_Index = Player_missionProgress.completed_missions_inprogress.FindIndex(s => s.StartsWith(mission36_SearchTerm));
|
||
|
||
//If the Mission exists, value has been saved
|
||
if (mission36_MissionSearch != null){
|
||
mission36_OverallTimeInMatch = float.Parse(getMissionValue(mission36_MissionSearch));
|
||
|
||
Debug.LogWarning("Miss36 " + mission36_OverallTimeInMatch.ToString() + " XTL");
|
||
}else{
|
||
Player_missionProgress.completed_missions_inprogress.Add("Mission36: 0");
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning ("XTL2 No Results");
|
||
}
|
||
|
||
if (mission36_OverallTimeInMatch >= 1800){ //30 minutes
|
||
instantiate_completedMissionCanvas(36); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(36);
|
||
|
||
Debug.LogWarning("Mission36 Completed!");
|
||
}
|
||
|
||
}
|
||
|
||
public void mission36_MatchHasStarted(){
|
||
mission36_MatchStartTime = Time.time;
|
||
}
|
||
|
||
public void mission36_MatchHasEnded(){
|
||
mission36_MatchEndTime = Time.time;
|
||
mission36_CalculatedMatchTime = mission36_MatchEndTime - mission36_MatchStartTime;
|
||
mission36_OverallTimeInMatch = mission36_OverallTimeInMatch + mission36_CalculatedMatchTime;
|
||
|
||
Player_missionProgress.completed_missions_inprogress[mission36_MissionSearch_Index] = "Mission36: " + mission36_OverallTimeInMatch.ToString();
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission36_MatchStart(){
|
||
mission36_MatchHasStarted();
|
||
}
|
||
|
||
|
||
public void a_mission36_MatchOver(){
|
||
mission36_MatchHasEnded();
|
||
}
|
||
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 36
|
||
|
||
|
||
|
||
//Weekly Mission ID = 37 || Watch 15 Ads
|
||
#region
|
||
//Functions used: mission37_AdsWatchedIncrement()
|
||
public static string mission37_MissionSearch = "", mission37_SearchTerm = "Mission37";
|
||
public static int mission37_AdsWatchedCount, mission37_MissionSearch_Index;
|
||
public void mission37_weekly(){
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
string result3dx = ListToString(Player_missionProgress.completed_missions_inprogress);
|
||
Debug.LogWarning("Completed Missions37 In Progress: " + result3dx);
|
||
|
||
mission37_MissionSearch = Player_missionProgress.completed_missions_inprogress.FirstOrDefault(s => s.StartsWith(mission37_SearchTerm));
|
||
mission37_MissionSearch_Index = Player_missionProgress.completed_missions_inprogress.FindIndex(s => s.StartsWith(mission37_SearchTerm));
|
||
|
||
|
||
//If the Mission exists, value has been saved
|
||
if (mission37_MissionSearch != null){
|
||
mission37_AdsWatchedCount = int.Parse(getMissionValue(mission37_MissionSearch));
|
||
|
||
Debug.LogWarning("Miss " + mission37_AdsWatchedCount.ToString() + " XTL");
|
||
}else{
|
||
Player_missionProgress.completed_missions_inprogress.Add("Mission37: 0");
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning ("XTL No Results");
|
||
}
|
||
|
||
if (mission37_AdsWatchedCount == 15){
|
||
instantiate_completedMissionCanvas(37); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(37);
|
||
|
||
Debug.LogWarning("Mission37 Completed!");
|
||
}
|
||
}
|
||
|
||
public void mission37_AdsWatchedIncrement(){
|
||
mission37_AdsWatchedCount++;
|
||
Player_missionProgress.completed_missions_inprogress[mission37_MissionSearch_Index] = "Mission37: " + mission37_AdsWatchedCount.ToString();
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning("Total Ads Watched Mission37 = " + mission37_AdsWatchedCount.ToString());
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission37_AddAds(){
|
||
AdsWatched();
|
||
// mission37_AdsWatchedIncrement();
|
||
}
|
||
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 37
|
||
|
||
|
||
|
||
//Weekly Mission ID = 38 || Perform Punch-Punch-Kick attack (PPK)
|
||
#region
|
||
//Functions used: mission38_RoundHasStarted(), mission38_EnemyHasHitPlayer(), mission38_PlayerHasHitEnemy()
|
||
public static string punch_punch_kick_Combo = "";
|
||
|
||
public void mission38_weekly(){
|
||
Debug.LogWarning("PPK value = " + punch_punch_kick_Combo);
|
||
|
||
if (punch_punch_kick_Combo == "PPK"){
|
||
instantiate_completedMissionCanvas(38); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(38);
|
||
|
||
Debug.LogWarning("PPK Combo achieved!");
|
||
}
|
||
}
|
||
|
||
public void mission38_RoundHasStarted(){
|
||
punch_punch_kick_Combo = "";
|
||
}
|
||
|
||
public void mission38_EnemyHasHitPlayer(){
|
||
punch_punch_kick_Combo = "";
|
||
}
|
||
|
||
public void mission38_PlayerHasHitEnemy(string action_type, string action_source, int enemyHealth){
|
||
mission38_CheckCombo(action_type);
|
||
}
|
||
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public void a_mission38_Player_kick(){
|
||
mission38_PlayerHasHitEnemy("kick", "Player(Clone)", 100);
|
||
}
|
||
|
||
public void a_mission38_Player_punch(){
|
||
mission38_PlayerHasHitEnemy("punch", "Player(Clone)", 100);
|
||
}
|
||
|
||
public void a_mission38_Enemy_punch(){
|
||
mission38_EnemyHasHitPlayer();
|
||
}
|
||
#endregion
|
||
|
||
|
||
public void mission38_CheckCombo(string action_performed){ //Looking for PPK KPK
|
||
string action_done_initial = (action_performed == "punch") ? "P" : "K";
|
||
|
||
switch(punch_punch_kick_Combo){
|
||
//First letter
|
||
case "":
|
||
if (action_done_initial == "K"){
|
||
punch_punch_kick_Combo = "";
|
||
break;
|
||
}else{
|
||
// Add the first "K"
|
||
punch_punch_kick_Combo += "P";
|
||
break;
|
||
}
|
||
|
||
//Second letter
|
||
case "P":
|
||
if (action_done_initial == "K"){
|
||
punch_punch_kick_Combo = "";
|
||
break;
|
||
}else{
|
||
// Add the "P"
|
||
punch_punch_kick_Combo += "P";
|
||
break;
|
||
}
|
||
|
||
//Third letter
|
||
case "PP":
|
||
if (action_done_initial == "P"){
|
||
punch_punch_kick_Combo = "";
|
||
break;
|
||
}else{
|
||
// Add the last "K"
|
||
punch_punch_kick_Combo += "K";
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 38
|
||
|
||
|
||
|
||
//Weekly Mission ID = 39 || Reach 700 XP
|
||
#region
|
||
public void mission39_weekly(){
|
||
//Retrieve XP of the player, then check if reaches the expected value, i.e 300 XP
|
||
|
||
Debug.LogError("Mission39 " + (playerData.xp).ToString());
|
||
playerData = LoadPlayerData();
|
||
|
||
if (playerData.xp >= 7000){
|
||
instantiate_completedMissionCanvas(39); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(39); //For registering the completed mission with the ID
|
||
Debug.Log("Mission39 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 39
|
||
|
||
|
||
|
||
//Weekly Mission ID = 40 || Rank up to Level 1 Platinum
|
||
#region
|
||
public void mission40_weekly(){
|
||
playerData = LoadPlayerData();
|
||
|
||
if ((playerData.rank_level == 1) && (playerData.rank == "Platinum")){
|
||
instantiate_completedMissionCanvas(40);
|
||
game_statsManager.updateMission(40);
|
||
|
||
Debug.Log("Mission40 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 40
|
||
|
||
#endregion
|
||
//END OF MONTH 2
|
||
|
||
|
||
|
||
//MONTH 3, ID 41 - 60
|
||
#region
|
||
|
||
//Weekly Mission ID = 41 || Perform a combo that does at least 30% damage
|
||
#region
|
||
//Functions used: mission41_PlayerHasHitEnemy(), mission41_EnemyHasHitPlayer()
|
||
public static int mission41_EnemyHealthBeforeCombo = 0, mission41_EnemyHealthAfterCombo = 0, mission41_30DamageFromCombo = 0, mission41_EnemyHealthFirstContact = 0;
|
||
public static bool mission41_firstContact = false;
|
||
public void mission41_weekly(){
|
||
Debug.LogWarning("M41 || BC = " + mission41_EnemyHealthFirstContact.ToString() + " AC = " + mission41_EnemyHealthAfterCombo.ToString() +
|
||
" ComboDamage = " + mission41_30DamageFromCombo.ToString());
|
||
|
||
if (mission41_30DamageFromCombo >= 30){ //Damage of 30 from combo
|
||
instantiate_completedMissionCanvas(41); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(41); //For registering the completed mission with the ID
|
||
Debug.Log("Mission41 done");
|
||
}
|
||
}
|
||
|
||
public void mission41_RoundHasStarted(){
|
||
mission41_EnemyHealthBeforeCombo = 0;
|
||
mission41_EnemyHealthAfterCombo = 0;
|
||
mission41_30DamageFromCombo = 0;
|
||
|
||
}
|
||
|
||
// public void mission41_PlayerHasHitEnemy(string action_type, string action_source, int playerHealth)
|
||
public void mission41_PlayerHasHitEnemy(string action_type, string action_source, int enemyHealth){ //Get Enemy Health before Player starts to hit Enemy
|
||
|
||
//First contact with enemy
|
||
if (mission41_firstContact == false){
|
||
mission41_EnemyHealthFirstContact = enemyHealth;
|
||
mission41_firstContact = true; //Not first contact anymore
|
||
}else{
|
||
mission41_EnemyHealthAfterCombo = enemyHealth;
|
||
}
|
||
|
||
mission41_30DamageFromCombo = mission41_EnemyHealthFirstContact - mission41_EnemyHealthAfterCombo;
|
||
}
|
||
|
||
public void mission41_EnemyHasHitPlayer(){ //Get Enemy Health at this instant
|
||
mission41_firstContact = false;
|
||
|
||
// mission41_EnemyHealthAfterCombo = enemyHealth_end;
|
||
// mission41_30DamageFromCombo = mission41_EnemyHealthBeforeCombo - mission41_EnemyHealthAfterCombo;
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public static List<int> enemyH_before = new List<int>(){ 100, 90, 70, 50 };
|
||
public static List<int> enemyH_after = new List<int>(){ 90, 85, 50, 20 };
|
||
public static int incr = 0;
|
||
|
||
public void a_mission41_PlayerHit(){
|
||
// mission41_PlayerHasHitEnemy(80);
|
||
// mission41_PlayerHasHitEnemy(enemyH_before[incr]);
|
||
incr++;
|
||
}
|
||
|
||
public void a_mission41_EnemyHit(){
|
||
// mission41_EnemyHasHitPlayer(30);
|
||
mission41_EnemyHasHitPlayer();
|
||
|
||
// mission41_EnemyHasHitPlayer(enemyH_after[incr]);
|
||
// incr++;
|
||
}
|
||
|
||
public void a_mission41_RoundStart(){
|
||
mission41_RoundHasStarted();
|
||
}
|
||
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 41
|
||
|
||
|
||
|
||
//Weekly Mission ID = 42 || Win a round with a health difference of less than 10% between you and your opponent.
|
||
#region
|
||
//Functions used: mission42_RoundHasStarted(), mission42_RoundHasEnded()
|
||
public static int mission42_HealthDifference = 0;
|
||
public void mission42_weekly(){
|
||
Debug.LogWarning("HDiff = " + mission42_HealthDifference.ToString());
|
||
|
||
if ((mission42_HealthDifference >= 7) && (mission42_HealthDifference <= 10)){ //If health difference at the end of round is btn 7 and 10
|
||
instantiate_completedMissionCanvas(42); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(42); //For registering the completed mission with the ID
|
||
Debug.Log("Mission42 done");
|
||
}
|
||
}
|
||
|
||
public static void mission42_RoundHasStarted(){
|
||
mission42_HealthDifference = 0;
|
||
}
|
||
|
||
public static int mission42_PlayerHealth = 10, mission42_EnemyHealth = 0;
|
||
public void mission42_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
if (round_status == "player_won"){ //Player has Won
|
||
mission42_HealthDifference = mission42_PlayerHealth - mission42_EnemyHealth;
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission42_RoundOver(){
|
||
mission42_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
// endOfEachRound(1, "player_won");
|
||
}
|
||
|
||
public void a_mission42_RoundStart(){
|
||
mission42_RoundHasStarted();
|
||
}
|
||
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 42
|
||
|
||
|
||
|
||
//Weekly Mission ID = 43 || Reach 800 XP
|
||
#region
|
||
public void mission43_weekly(){
|
||
Debug.Log("Mission43 Called");
|
||
|
||
// Debug.LogError((playerData.xp).ToString());
|
||
playerData = LoadPlayerData();
|
||
|
||
// if ((playerData.xp >= 1000) && (playerData.xp < 3000)){
|
||
if (playerData.xp >= 8000){
|
||
instantiate_completedMissionCanvas(43); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(43); //For registering the completed mission with the ID
|
||
Debug.Log("Mission43 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 43
|
||
|
||
|
||
|
||
//Weekly Mission ID = 44 || Rank up to Level 3 Platinum
|
||
#region
|
||
public void mission44_weekly(){
|
||
playerData = LoadPlayerData();
|
||
|
||
if ((playerData.rank_level == 3) && (playerData.rank == "Platinum")){
|
||
instantiate_completedMissionCanvas(44);
|
||
game_statsManager.updateMission(44);
|
||
|
||
Debug.Log("Mission44 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 44
|
||
|
||
|
||
|
||
//Weekly Mission ID = 45 || Complete week 1 missions
|
||
#region
|
||
public void mission45_weekly(){
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
string result3 = ListToString(Player_missionProgress.completed_missions);
|
||
Debug.LogWarning("Completed Missions: " + result3);
|
||
|
||
int count = Player_missionProgress.completed_missions.Count(mission => mission >= 41 && mission <= 44);
|
||
|
||
Debug.LogWarning("missionID45_counter " + count.ToString());
|
||
|
||
if (count >= 4){
|
||
instantiate_completedMissionCanvas(45); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(45);
|
||
|
||
Debug.LogWarning("Mission45 Completed");
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 45
|
||
|
||
|
||
|
||
//Weekly Mission ID = 46 || Achieve a win streak of 7 matches in a row
|
||
#region
|
||
//Functions used: mission46_RoundHasEnded(), mission46_MatchHasEnded()
|
||
public static int mission46_WinStreakOf5Matches = 0, mission46_MissionSearch_Index = 0, mission46_RoundWinCount = 0, mission46_TotalRounds = 3;
|
||
public static string mission46_MissionSearch = "", mission46_SearchTerm = "Mission46";
|
||
public static bool mission46_MatchIsEnded = false;
|
||
|
||
// public static bool mission17_WinStreakOf5Matches = false;
|
||
public void mission46_weekly(){
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
mission46_MissionSearch = Player_missionProgress.completed_missions_inprogress.FirstOrDefault(s => s.StartsWith(mission46_SearchTerm));
|
||
mission46_MissionSearch_Index = Player_missionProgress.completed_missions_inprogress.FindIndex(s => s.StartsWith(mission46_SearchTerm));
|
||
|
||
|
||
//If the Mission exists, value has been saved
|
||
if (mission46_MissionSearch != null){
|
||
mission46_WinStreakOf5Matches = int.Parse(getMissionValue(mission46_MissionSearch));
|
||
|
||
Debug.LogWarning("Miss46 " + mission46_WinStreakOf5Matches.ToString() + " XTL");
|
||
}else{
|
||
Player_missionProgress.completed_missions_inprogress.Add("Mission46: 0");
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning ("XTL No Results");
|
||
}
|
||
|
||
|
||
if (mission46_WinStreakOf5Matches == 7){
|
||
instantiate_completedMissionCanvas(46); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(46);
|
||
|
||
Debug.LogWarning("Mission46 Completed!");
|
||
}
|
||
}
|
||
|
||
public void mission46_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
if (round_status == "player_won"){
|
||
mission46_RoundWinCount++;
|
||
}
|
||
}
|
||
|
||
public void mission46_MatchHasEnded(){
|
||
// mission17_MatchIsEnded = true;
|
||
if (mission46_RoundWinCount == mission46_TotalRounds){
|
||
mission46_WinStreakOf5Matches++;
|
||
|
||
}else{
|
||
mission46_WinStreakOf5Matches = 0;
|
||
}
|
||
|
||
mission46_RoundWinCount = 0; //Reset for the next round
|
||
|
||
Player_missionProgress.completed_missions_inprogress[mission46_MissionSearch_Index] = "Mission46: " + mission46_WinStreakOf5Matches.ToString();
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning("Total WinStreak Mission46 = " + mission46_WinStreakOf5Matches.ToString());
|
||
}
|
||
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission46_MatchOver(){
|
||
mission46_MatchHasEnded();
|
||
}
|
||
|
||
public void a_mission46_RoundOver(){
|
||
mission46_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
}
|
||
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 46
|
||
|
||
|
||
|
||
//Weekly Mission ID = 47 || Win each round your character's health below 25%
|
||
#region
|
||
//Functions used: mission47_RoundHasEnded(), mission47_MatchHasEnded()
|
||
public static int mission47_TotalRounds = 3, mission47_RoundsCountWinWithLessThan25Health = 0;
|
||
public static bool mission47_WinMatchComplete = false;
|
||
public void mission47_weekly(){
|
||
if (mission47_WinMatchComplete == true){
|
||
instantiate_completedMissionCanvas(47); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(47); //For registering the completed mission with the ID
|
||
Debug.Log("Mission47 done"); //Show which mission is done
|
||
}
|
||
}
|
||
|
||
|
||
public static int mission47_PlayerHealth = 24;
|
||
public void mission47_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
mission47_PlayerHealth = playerHealth;
|
||
if ((round_status == "player_won") && (mission47_PlayerHealth < 25)){ //If Player Won and Health is less than 25
|
||
mission47_RoundsCountWinWithLessThan25Health++;
|
||
}
|
||
}
|
||
|
||
public void mission47_MatchHasEnded(){
|
||
if (mission47_RoundsCountWinWithLessThan25Health == mission47_TotalRounds){
|
||
mission47_WinMatchComplete = true;
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public void a_mission47_RoundHasEnded(){
|
||
mission47_RoundHasEnded(1, "player_won", 20, 50, "Cheetah(Clone)", 100);
|
||
}
|
||
|
||
public void a_mission47_MatchOver(){
|
||
mission47_MatchHasEnded();
|
||
}
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 47
|
||
|
||
|
||
|
||
//Weekly Mission ID = 48 || Reach 900 XP
|
||
#region
|
||
public void mission48_weekly(){
|
||
Debug.Log("Mission48 Called");
|
||
|
||
// Debug.LogError((playerData.xp).ToString());
|
||
playerData = LoadPlayerData();
|
||
|
||
// if ((playerData.xp >= 1000) && (playerData.xp < 3000)){
|
||
if (playerData.xp >= 9000){
|
||
instantiate_completedMissionCanvas(48); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(48); //For registering the completed mission with the ID
|
||
Debug.Log("Mission48 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 48
|
||
|
||
|
||
|
||
//Weekly Mission ID = 49 || Rank up to Level 2 Diamond
|
||
#region
|
||
public void mission49_weekly(){
|
||
Debug.Log("Mission49 Called");
|
||
|
||
playerData = LoadPlayerData();
|
||
|
||
if ((playerData.rank_level == 2) && (playerData.rank == "Diamond")){
|
||
instantiate_completedMissionCanvas(49);
|
||
game_statsManager.updateMission(49);
|
||
|
||
Debug.Log("Mission49 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 49
|
||
|
||
|
||
|
||
//Weekly Mission ID = 50 || Complete week 2 missions
|
||
#region
|
||
public void mission50_weekly(){
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
string result3 = ListToString(Player_missionProgress.completed_missions);
|
||
Debug.LogWarning("Completed Missions: " + result3);
|
||
|
||
int count = Player_missionProgress.completed_missions.Count(mission => mission >= 46 && mission <= 49);
|
||
|
||
Debug.LogWarning("missionID50_counter " + count.ToString());
|
||
|
||
if (count >= 4){
|
||
instantiate_completedMissionCanvas(50); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(50);
|
||
|
||
Debug.LogWarning("Mission50 Completed");
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 50
|
||
|
||
|
||
|
||
//Weekly Mission ID = 51 || Complete all 3 rounds in under 3 minutes
|
||
#region
|
||
//Functions used: mission51_RoundHasStarted(), mission51_RoundHasEnded(), mission51_MatchHasEnded()
|
||
public static bool mission51_3RoundsUnder3Minutes = false;
|
||
public static float mission51_RoundTime = 0, mission51_RoundStartTime = 0, mission51_RoundEndTime = 0, mission51_OverallTimeInMatch = 0; // Time when the scene started
|
||
|
||
public void mission51_weekly(){
|
||
Debug.LogWarning("RStT = " + mission51_RoundStartTime + " REndT = " + mission51_RoundEndTime + " OvTM = " + mission51_OverallTimeInMatch + " M51 = " + mission51_3RoundsUnder3Minutes);
|
||
|
||
if (mission51_3RoundsUnder3Minutes == true){
|
||
instantiate_completedMissionCanvas(51); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(51);
|
||
|
||
Debug.LogWarning("Mission51 Completed");
|
||
}
|
||
}
|
||
|
||
public void mission51_RoundHasStarted(){
|
||
// Record the time when the scene starts
|
||
mission51_RoundStartTime = Time.time;
|
||
// Debug.LogWarning("StartTime =");
|
||
}
|
||
|
||
public void mission51_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
//Stop Time Count
|
||
//Take Start and Stop Time, Add this time to see time used in Each Round
|
||
mission51_RoundEndTime = Time.time;
|
||
mission51_RoundTime = mission51_RoundEndTime - mission51_RoundStartTime; //Total Time Used in Round
|
||
mission51_OverallTimeInMatch = mission51_OverallTimeInMatch + mission51_RoundTime;
|
||
}
|
||
|
||
public void mission51_MatchHasEnded(){
|
||
if (mission51_OverallTimeInMatch < 180){ //180 = 3 minutes
|
||
mission51_3RoundsUnder3Minutes = true;
|
||
}
|
||
}
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission51_RoundStart(){
|
||
mission51_RoundHasStarted();
|
||
}
|
||
|
||
public void a_mission51_RoundEnd(){
|
||
mission51_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
}
|
||
|
||
public void a_mission51_MatchEnd(){
|
||
mission51_MatchHasEnded();
|
||
}
|
||
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 51
|
||
|
||
|
||
|
||
//Weekly Mission ID = 52 || Watch 20 Ads
|
||
#region
|
||
//Functions used: mission52_AdsWatchedIncrement()
|
||
public static string mission52_MissionSearch = "", mission52_SearchTerm = "Mission52";
|
||
public static int mission52_AdsWatchedCount, mission52_MissionSearch_Index;
|
||
public void mission52_weekly(){
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
string result3dx = ListToString(Player_missionProgress.completed_missions_inprogress);
|
||
Debug.LogWarning("Completed Missions52 In Progress: " + result3dx);
|
||
|
||
mission52_MissionSearch = Player_missionProgress.completed_missions_inprogress.FirstOrDefault(s => s.StartsWith(mission52_SearchTerm));
|
||
mission52_MissionSearch_Index = Player_missionProgress.completed_missions_inprogress.FindIndex(s => s.StartsWith(mission52_SearchTerm));
|
||
|
||
|
||
//If the Mission exists, value has been saved
|
||
if (mission52_MissionSearch != null){
|
||
mission52_AdsWatchedCount = int.Parse(getMissionValue(mission52_MissionSearch));
|
||
|
||
Debug.LogWarning("Miss " + mission52_AdsWatchedCount.ToString() + " XTL");
|
||
}else{
|
||
Player_missionProgress.completed_missions_inprogress.Add("Mission52: 0");
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning ("XTL No Results");
|
||
}
|
||
|
||
if (mission52_AdsWatchedCount == 20){
|
||
instantiate_completedMissionCanvas(52); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(52);
|
||
|
||
Debug.LogWarning("Mission52 Completed!");
|
||
}
|
||
}
|
||
|
||
public void mission52_AdsWatchedIncrement(){
|
||
mission52_AdsWatchedCount++;
|
||
Player_missionProgress.completed_missions_inprogress[mission52_MissionSearch_Index] = "Mission52: " + mission52_AdsWatchedCount.ToString();
|
||
SavePlayer_MissionData(Player_missionProgress);
|
||
|
||
Debug.LogWarning("Total Ads Watched Mission52 = " + mission52_AdsWatchedCount.ToString());
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a_mission52_AddAds(){
|
||
AdsWatched();
|
||
// mission52_AdsWatchedIncrement();
|
||
}
|
||
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 52
|
||
|
||
|
||
|
||
//Weekly Mission ID = 53 || Reach 1000 XP
|
||
#region
|
||
public void mission53_weekly(){
|
||
Debug.Log("Mission53 Called");
|
||
|
||
// Debug.LogError((playerData.xp).ToString());
|
||
playerData = LoadPlayerData();
|
||
|
||
// if ((playerData.xp >= 1000) && (playerData.xp < 3000)){
|
||
if (playerData.xp >= 9000){
|
||
instantiate_completedMissionCanvas(53); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(53); //For registering the completed mission with the ID
|
||
|
||
Debug.Log("Mission53 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 53
|
||
|
||
|
||
|
||
//Weekly Mission ID = 54 || Rank up to Master Level
|
||
#region
|
||
public void mission54_weekly(){
|
||
Debug.Log("Mission54 Called");
|
||
|
||
playerData = LoadPlayerData();
|
||
|
||
if ((playerData.rank_level == 1) && (playerData.rank == "Master")){
|
||
instantiate_completedMissionCanvas(54);
|
||
game_statsManager.updateMission(54);
|
||
|
||
Debug.Log("Mission54 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 54
|
||
|
||
|
||
|
||
//Weekly Mission ID = 55 || Complete Week 3 missions
|
||
#region
|
||
public void mission55_weekly(){
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
int count = Player_missionProgress.completed_missions.Count(mission => mission >= 51 && mission <= 54);
|
||
if (count >= 4){
|
||
instantiate_completedMissionCanvas(55); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(55);
|
||
|
||
Debug.LogWarning("Mission55 Completed");
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public static int missID32 = 51;
|
||
public void a_mission55_missionDone(){
|
||
instantiate_completedMissionCanvas(missID32); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(missID32);
|
||
|
||
missID32++;
|
||
}
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 55
|
||
|
||
|
||
|
||
//Weekly Mission ID = 56 || Complete 2 rounds in under 1 minute
|
||
#region
|
||
//Functions used: mission51_RoundHasStarted(), mission51_RoundHasEnded(), mission51_MatchHasEnded()
|
||
public static bool mission56_2RoundsUnder1Minutes = false;
|
||
public static float mission56_RoundTime = 0, mission56_RoundStartTime = 0, mission56_RoundEndTime = 0, mission56_OverallTimeInMatch = 0; // Time when the scene started
|
||
|
||
public void mission56_weekly(){
|
||
Debug.LogWarning("RStT = " + mission56_RoundStartTime + " REndT = " + mission56_RoundEndTime + " OvTM = " + mission56_OverallTimeInMatch + " M51 = " + mission56_2RoundsUnder1Minutes);
|
||
|
||
if (mission56_2RoundsUnder1Minutes == true){
|
||
instantiate_completedMissionCanvas(56); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(56);
|
||
|
||
// Debug.LogWarning("Mission56 Completed");
|
||
}
|
||
}
|
||
|
||
public void mission56_RoundHasStarted(){
|
||
Debug.LogError("56 Round Started");
|
||
// Record the time when the scene starts
|
||
mission56_RoundStartTime = Time.time;
|
||
// Debug.LogWarning("StartTime =");
|
||
}
|
||
|
||
public void mission56_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
Debug.LogError("56 Round Over");
|
||
//Stop Time Count
|
||
//Take Start and Stop Time, Add this time to see time used in Each Round
|
||
mission56_RoundEndTime = Time.time;
|
||
mission56_RoundTime = mission56_RoundEndTime - mission56_RoundStartTime; //Total Time Used in Round
|
||
mission56_OverallTimeInMatch = mission56_OverallTimeInMatch + mission56_RoundTime;
|
||
|
||
if ((roundNum == 2) && (!(mission56_OverallTimeInMatch < 60))){ //From Round 1 and 2
|
||
mission56_OverallTimeInMatch = 0;
|
||
}else{
|
||
if (roundNum != 1){
|
||
Debug.LogWarning("Mission56 Completed");
|
||
mission56_2RoundsUnder1Minutes = true;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
public void mission56_MatchHasEnded(){ //From Round 2 and 3
|
||
Debug.LogError("56 Match Over");
|
||
if (mission56_OverallTimeInMatch < 60){ //180 = 3 minutes
|
||
mission56_2RoundsUnder1Minutes = true;
|
||
}
|
||
}
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
//Function for StartOfMatch(), AddCompletedMissions(), EndOfMatch()
|
||
#region
|
||
public void a1_mission56_RoundStart(){
|
||
mission56_RoundHasStarted();
|
||
}
|
||
|
||
public void a1R1_mission56_RoundEnd(){
|
||
mission56_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
}
|
||
|
||
public void a1R2_mission56_RoundEnd(){
|
||
mission56_RoundHasEnded(2, "player_won", 70, 50, "C", 100);
|
||
}
|
||
|
||
public void a1_mission56_MatchEnd(){
|
||
mission56_MatchHasEnded();
|
||
}
|
||
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 56
|
||
|
||
|
||
|
||
//Weekly Mission ID = 57 || Defeat opponent using only Kick-Punch move (KP)
|
||
#region
|
||
//Functions used: mission57_RoundHasStarted(), mission57_RoundHasEnded(), mission57_PlayerHasHitEnemy()
|
||
public static string mission57_KickPunch = "", mission57_ComboBroken = "";
|
||
public static bool mission57_RoundIsOverWon = false;
|
||
|
||
public void mission57_weekly(){
|
||
Debug.LogWarning("57KP value = " + mission57_KickPunch + " ComboBroken = " + mission57_ComboBroken);
|
||
|
||
if (mission57_RoundIsOverWon == true){
|
||
if (mission57_ComboBroken != "X"){
|
||
instantiate_completedMissionCanvas(57); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(57);
|
||
|
||
Debug.LogWarning("Mission57 Completed! Won using KP Combo");
|
||
}
|
||
}
|
||
}
|
||
|
||
public void mission57_RoundHasStarted(){
|
||
mission57_RoundIsOverWon = false;
|
||
mission57_KickPunch = "";
|
||
mission57_ComboBroken = "";
|
||
}
|
||
|
||
public void mission57_RoundHasEnded(int roundNum, string round_status, int playerHealth, int playerPoints, string player_CharacterName, int enemyHealth){
|
||
if (round_status == "player_won"){
|
||
mission57_RoundIsOverWon = true;
|
||
}
|
||
}
|
||
|
||
public void mission57_PlayerHasHitEnemy(string action_type, string action_source, int enemyHealth){
|
||
mission57_CheckCombo(action_type);
|
||
}
|
||
|
||
public void mission57_CheckCombo(string action_performed){ //Looking for KP
|
||
string action_done_initial = (action_performed == "punch") ? "P" : "K";
|
||
|
||
if (mission57_KickPunch == "KP"){
|
||
mission57_KickPunch = "";
|
||
}
|
||
|
||
switch(mission57_KickPunch){
|
||
//First letter
|
||
case "":
|
||
if (action_done_initial == "P"){
|
||
mission57_KickPunch = "";
|
||
mission57_ComboBroken = "X";
|
||
break;
|
||
}else{
|
||
// Add the first "K"
|
||
mission57_KickPunch += "K";
|
||
break;
|
||
}
|
||
|
||
//Second letter
|
||
case "K":
|
||
if (action_done_initial == "K"){
|
||
mission57_KickPunch = "";
|
||
mission57_ComboBroken = "X";
|
||
break;
|
||
}else{
|
||
// Add the "P"
|
||
mission57_KickPunch += "P";
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public void a_mission57_kick(){
|
||
mission57_CheckCombo("kick");
|
||
}
|
||
|
||
public void a_mission57_punch(){
|
||
mission57_CheckCombo("punch");
|
||
}
|
||
|
||
public void a_mission57_RoundOver(){
|
||
mission57_RoundHasEnded(1, "player_won", 70, 50, "C", 100);
|
||
}
|
||
|
||
public void a_mission57_RoundStart(){
|
||
mission57_RoundHasStarted();
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
//END OF Weekly Mission ID = 57
|
||
|
||
|
||
|
||
//Weekly Mission ID = 58 || Reach 1200 XP
|
||
#region
|
||
public void mission58_weekly(){
|
||
Debug.Log("Mission58 Called");
|
||
|
||
// Debug.LogError((playerData.xp).ToString());
|
||
playerData = LoadPlayerData();
|
||
|
||
// if ((playerData.xp >= 1000) && (playerData.xp < 3000)){
|
||
if (playerData.xp >= 9000){
|
||
instantiate_completedMissionCanvas(58); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(58); //For registering the completed mission with the ID
|
||
|
||
Debug.Log("Mission58 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 58
|
||
|
||
|
||
|
||
//Weekly Mission ID = 59 || Rank up to Apex Predator Level
|
||
#region
|
||
public void mission59_weekly(){
|
||
Debug.Log("Mission59 Called");
|
||
|
||
playerData = LoadPlayerData();
|
||
|
||
if ((playerData.rank_level == 1) && (playerData.rank == "Apex Predator")){
|
||
instantiate_completedMissionCanvas(59);
|
||
game_statsManager.updateMission(59);
|
||
|
||
Debug.Log("Mission59 done"); //Show which mission is done
|
||
}
|
||
}
|
||
#endregion
|
||
//END OF Weekly Mission ID = 59
|
||
|
||
|
||
|
||
//Weekly Mission ID = 60 || Complete Week missions
|
||
#region
|
||
public void mission60_weekly(){
|
||
Player_missionProgress = LoadPlayer_MissionData();
|
||
|
||
int count = Player_missionProgress.completed_missions.Count(mission => mission >= 56 && mission <= 59);
|
||
if (count >= 4){
|
||
instantiate_completedMissionCanvas(60); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(60);
|
||
|
||
Debug.LogWarning("Mission60 Completed");
|
||
}
|
||
}
|
||
|
||
|
||
//DELETE THIS, ONLY FOR TESTING
|
||
#region
|
||
public static int missID22 = 56;
|
||
public void a_mission60_missionDone(){
|
||
instantiate_completedMissionCanvas(missID22); //For displaying to the player that mission is done
|
||
game_statsManager.updateMission(missID22);
|
||
|
||
missID22++;
|
||
}
|
||
#endregion
|
||
#endregion
|
||
//END OF Weekly Mission ID = 60
|
||
|
||
#endregion
|
||
//END OF MONTH 3
|
||
|
||
#endregion
|
||
//END OF WEEKLY MISSIONS
|
||
|
||
|
||
|
||
//Handle Completed Missions
|
||
#region
|
||
//Shows a popup indicating what missions was just completed
|
||
public void instantiate_completedMissionCanvas(int missionID){
|
||
popup.SetActive(true);
|
||
|
||
GameObject completed_missions_canvas_instance = Instantiate(popup, completed_missions_canvas.transform);
|
||
completed_missions_canvas_instance.name = "Completed_Mission" + missionID.ToString();
|
||
completed_missions_canvas_instance.SetActive(false);
|
||
|
||
string completed_mission_reference = "mission_details/mission_bg/mission_text";
|
||
GameObject completed_mission_gameobject = completed_missions_canvas_instance.transform.Find(completed_mission_reference).gameObject;
|
||
|
||
TextMeshProUGUI completed_mission_txt = completed_mission_gameobject.GetComponent<TextMeshProUGUI>();
|
||
|
||
string missiontitle_retrieved = missions.getMissionTitle(missionID); //Get the Title of the completed mission
|
||
completed_mission_txt.text = missiontitle_retrieved;
|
||
|
||
popup.SetActive(false);
|
||
}
|
||
|
||
|
||
//Show Mission Completed popup for 3 seconds
|
||
private IEnumerator SetActiveForDuration(GameObject gm){
|
||
gm.SetActive(true);
|
||
yield return new WaitForSeconds(2f); //Show the popup for 3 seconds
|
||
gm.SetActive(false);
|
||
}
|
||
|
||
//Shows Pop-ups for completed missions, showing each mission in an exact order from the first to the last
|
||
IEnumerator ShowPopupsContinuously(){
|
||
while (true){
|
||
int childCount = completed_missions_canvas.transform.childCount;
|
||
for (int i = 0; i < childCount; i++){
|
||
|
||
GameObject popup_instance = completed_missions_canvas.transform.GetChild(i).gameObject; //Transform child out of bounds
|
||
// Debug.Log(popup_instance.name);
|
||
|
||
if (popup_instance.name == "mission_completed_popUp"){
|
||
continue;
|
||
}
|
||
|
||
//Show Popup
|
||
popup_instance.SetActive(true);
|
||
|
||
yield return new WaitForSeconds(3f);
|
||
|
||
//Hide Popup
|
||
if (popup_instance != null){
|
||
popup_instance.SetActive(false);
|
||
Destroy(popup_instance); // Delayed destruction to allow for fade-out or other effects
|
||
}
|
||
break;
|
||
}
|
||
|
||
// Wait for a short time before checking for new children again
|
||
yield return new WaitForSeconds(0.10f);
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
|
||
|
||
// ***** PLAYER PREFS
|
||
#region
|
||
private const string player_completed_Missions_toAnimate = "Player_Completed_Missions_toAnimate";
|
||
private const string player_missionData = "Player_MissionData";
|
||
|
||
//Save Missions Data
|
||
private void SavePlayer_MissionData(MissionProgress data){
|
||
string jsonData = JsonUtility.ToJson(data);
|
||
// PlayerPrefs.SetString("Player_MissionData", jsonData); // Details stored as "PlayerData"
|
||
PlayerPrefs.SetString(player_missionData, jsonData); // Details stored as "PlayerData"
|
||
PlayerPrefs.Save();
|
||
}
|
||
|
||
//Loads mission progress from PlayerPrefs.
|
||
MissionProgress LoadPlayer_MissionData(){
|
||
string jsonData = PlayerPrefs.GetString(player_missionData, "{}"); // Details were stored as "PlayerData"
|
||
return JsonUtility.FromJson<MissionProgress>(jsonData);
|
||
}
|
||
|
||
|
||
//Load Missions data to Animate
|
||
Completed_Missions_toAnimate LoadPlayerData_CompletedMission_toAnimate(){
|
||
string jsonData2 = PlayerPrefs.GetString(player_completed_Missions_toAnimate, "{}"); // Details were stored as "PlayerData"
|
||
return JsonUtility.FromJson<Completed_Missions_toAnimate>(jsonData2);
|
||
}
|
||
|
||
|
||
//Save Missions data to Animate
|
||
private void SaveCompleted_Missions_toAnimate(Completed_Missions_toAnimate data){
|
||
string jsonData = JsonUtility.ToJson(data);
|
||
// PlayerPrefs.SetString("Player_MissionData", jsonData); // Details stored as "PlayerData"
|
||
PlayerPrefs.SetString(player_completed_Missions_toAnimate, jsonData); // Details stored as "PlayerData"
|
||
PlayerPrefs.Save();
|
||
}
|
||
|
||
|
||
//Retrieve XP of the player, then check if reaches the expected value, i.e 200 XP
|
||
private const string Player_RewardsData = "Player_RewardsData";
|
||
PlayerData playerData;
|
||
|
||
//Load player data from PlayerPrefs
|
||
PlayerData LoadPlayerData(){
|
||
string jsonData = PlayerPrefs.GetString(Player_RewardsData, "{}"); // Details were stored as "PlayerData"
|
||
return JsonUtility.FromJson<PlayerData>(jsonData);
|
||
}
|
||
#endregion
|
||
|
||
|
||
}
|