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(); missionInfox = missions.getAllWeeklyMissions(); } public List missionInfox; private void Start(){ Player_missionProgress = LoadPlayer_MissionData(); // Assuming you have a reference to the MissionsManager script game_statsManager = GetComponent(); // 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 weeklyMissions_ID; public static List static_weeklyMissionsID = new List(){ 0 }; private void CheckMissions(){ // Create a new empty list of integers weeklyMissions_ID = new List(); 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(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(List 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 weeklyMatchStarted = new List(){ 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 weeklyMatchEnd = new List(){ 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 weeklyRoundStarted = new List(){ 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 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 weeklyRoundEnd = new List(){ 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 weeklyPlayerHitEnemy = new List(){ 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 weeklyEnemyHitPlayer = new List(){ 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 weeklyCharacter_Unlock = new List(){ 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 weeklyMissions_Ads = new List(){ 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 weeklyMissions_Move = new List(){ 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�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�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 enemyH_before = new List(){ 100, 90, 70, 50 }; public static List enemyH_after = new List(){ 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(); 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(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(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(jsonData); } #endregion }