public static void UnlockThisLevel(FreshLevels.Type type, bool noSave) { if (type == FreshLevels.Type.None) { //Debug.Log("Error: Level type was None. Level not unlocked!"); return; } //special cases (when you go to these text intros, also unlock the next level, in case the player quits during the story) if (type == FreshLevels.Type.PreSlimeDaddyStory) { type = FreshLevels.Type.SlimeDaddy_BatterUp; } if (type == FreshLevels.Type.PostSatanStory) { type = FreshLevels.Type.MusicLvl1; } string strictLabel = FreshLevels.GetStrictLabelForType(type); if (strictLabel == null) { //Debug.Log("Error: Level name was NULL. Level not unlocked!"); return; } PlayerPrefs.SetInt("nu_" + strictLabel, 1); if (!noSave) { PlayerPrefs.Save(); } //Debug.Log("Unlocked level. " + type + ", " + strictLabel); }
public static void AddToQueue(FreshLevels.Type type, float speedruntime) { //Fail out, if: if (fa.dontConnectSteam) { return; } if (!SteamManager.Initialized) { return; } if (speedruntime < 2) { return; } //less than 2 seconds is always impossible if (speedruntime < FreshLevels.GetImpossibleTimeForLevel(type)) { return; } //time was impossible if (FreshLevels.DoNotSyncLevel(type)) { return; } //don't sync this level if it's got a secret exit or other reason to not keep old scores Item a = new Item(); a.leaderboard = FreshLevels.GetStrictLabelForType(type); a.score = Mathf.FloorToInt(speedruntime * 1000); a.type = type; queue.Add(a); }
public static void WonLevel(FreshLevels.Type lvlType) { //turn type into a int, then increase lvlNum to that amount, then save it. //Debug.Log("HERE1, won level " + lvlType + ", lvlTypes length: " + lvlTypes.Length); if (lvlTypes == null) { return; } for (int i = 0; i < lvlTypes.Length; i++) { if (lvlTypes[i] == lvlType || (lvlTypes[i] == FreshLevels.Type.IntroStory && lvlType == FreshLevels.Type.Tut_JumpAndAirsword)) { //Debug.Log("HERE2"); //find the next highest for (int a = 0; a < lvlNums.Length; a++) { if (lvlNums[a] == lvlNums[i] + 10) { //Debug.Log("HERE3 " + lvlNum + ", " + lvlNums[a]); if (lvlNums[a] > lvlNum) { //Debug.Log("HERE4"); lvlNum = lvlNums[a]; } //Debug.Log("HERE5"); //Fresh_Saving.SaveLvlNum(); return; } } } } }
public static void SendPBToSteam(FreshLevels.Type type, float speedruntime) { //Fail out, if: if (fa.dontConnectSteam) { return; } if (!SteamManager.Initialized) { return; } if (speedruntime < 2) { return; } //less than 2 seconds is always impossible if (speedruntime < FreshLevels.GetImpossibleTimeForLevel(type)) { return; } //time was impossible if (FreshLevels.NotALeaderboardLevel(type)) { return; } //There are / should be no leaderboards for this level AddToQueue(type, speedruntime); }
public static bool LoadLevelUnlocked(FreshLevels.Type fType) { FreshLevels.Type type = fType; if (type == FreshLevels.Type.IntroStory) { return(true); } //Always unlocked int result = 0; /* * if (PlayerPrefs.HasKey("LevelUnlocked_" + type)) * { * result = PlayerPrefs.GetInt("LevelUnlocked_" + type, 0); * }*/ if (fType != FreshLevels.Type.None) { string s = FreshLevels.GetStrictLabelForType(fType); if (PlayerPrefs.HasKey("nu_" + s)) { result = PlayerPrefs.GetInt("nu_" + type, 0); } } return(result == 1); }
public static void GetALvl(string lvlName) { //Get the enum from the string FreshLevels.Type lvlType = FreshLevels.Type.None; lvlType = FreshLevels.GetTypeNameForStr(lvlName); if (lvlType != FreshLevels.Type.None) { RemoteData.GetUsageStats(lvlName, (data) => { if (data != "error") { //Debug.Log("Writing unparsed for " + lvlName); for (int i = 0; i < unparsedBool.Length; i++) { if (!unparsedBool[i]) { unparsedBool[i] = true; unparsedStr[i] = data; unparsedInt[i] = (int)lvlType; break; } } } }); } }
public static void BackwardsCompat_LvlNumCheck() { if (BackwardsCompat_Index == 999) { return; } int r = PlayerPrefs.GetInt("doneBackCompat1", 0); if (r == 1) { BackwardsCompat_Index = 999; return; } int lvlnum = PlayerPrefs.GetInt("lvlNum", 0); int index = BackwardsCompat_Index; FreshLevels.Type t = (FreshLevels.Type)index; if (t == FreshLevels.Type.End) { BackwardsCompat_Index = 999; PlayerPrefs.SetInt("doneBackCompat1", 1); return; } if (lvlnum >= FreshLevels.GetLvlNumForType(t)) { UnlockThisLevel(t, true); } if (BackwardsCompat_Index == 50) { PlayerPrefs.Save(); } //Only save every so often. Don't need to save every frame. if (BackwardsCompat_Index == 100) { PlayerPrefs.Save(); } if (BackwardsCompat_Index == 150) { PlayerPrefs.Save(); } if (BackwardsCompat_Index == 200) { PlayerPrefs.Save(); } if (BackwardsCompat_Index == 250) { PlayerPrefs.Save(); } if (BackwardsCompat_Index == 300) { PlayerPrefs.Save(); } if (BackwardsCompat_Index == 500) { PlayerPrefs.Save(); } BackwardsCompat_Index++; }
public static void BackwardsCompat_Misc() { if (BackwardsCompat_MiscFlag) { return; } int r = PlayerPrefs.GetInt("doneBackCompat2", 0); if (r == 1) { BackwardsCompat_MiscFlag = true; return; } //check some of the side levels, see if you've played them FreshLevels.Type t = FreshLevels.Type.None; for (int i = 0; i <= 11; i++) { switch (i) { case 0: t = FreshLevels.Type.Challenge1; break; case 1: t = FreshLevels.Type.Challenge2; break; case 2: t = FreshLevels.Type.Challenge3; break; case 3: t = FreshLevels.Type.Challenge4; break; case 4: t = FreshLevels.Type.TR_3; break; case 5: t = FreshLevels.Type.FPS_Hallway2; break; case 6: t = FreshLevels.Type.FPS_LavaPits; break; case 7: t = FreshLevels.Type.FPS_IceCaves; break; case 8: t = FreshLevels.Type.FPS_SlimeCity; break; case 9: t = FreshLevels.Type.FPS_Boss1; break; case 10: t = FreshLevels.Type.ThreeDee_Sewer; break; case 11: t = FreshLevels.Type.ThreeDee_Spinning; break; } if (PlayerPrefs.GetInt("LevelDeaths_" + t, -1) > -1) { UnlockThisLevel(t, true); } } PlayerPrefs.SetInt("doneBackCompat2", 1); PlayerPrefs.Save(); }
public static void GetLeaderboard(FreshLevels.Type type) { if (fa.dontConnect3rdParty) { return; } Debug.Log("Trying to get leaderboard"); FrRemoteData.Fr_GetLeaderboard("" + type, fa.token, (data) => { AddResult(data, Type.GetLeaderboard); }); }
public static void Qc_GetEntireMMLeaderboard(FreshLevels.Type type) { if (fa.dontConnect3rdParty) { return; } Debug.Log("Trying to get qc leaderboard"); FrRemoteData.Qc_GetEntireLeaderboard("" + type, fa.token, fa.lengthOfMainMenuLeaderboard, (data) => { fa.entireMMLeaderboard = data; }); }
public static void Qc_GetMMLeaderboardNameSlot(FreshLevels.Type type, int slot) { if (fa.dontConnect3rdParty) { return; } //Debug.Log("Trying to get qc leaderboard time slot " + slot); FrRemoteData.Qc_GetLeaderboardSlotName(slot, "" + type, (data) => { fa.mmleaderboardNames[slot] = data; }); }
// Use this for initialization void Start() { float t = 0; FreshLevels.Type type = FreshLevels.Type.MusicLvl2; if (PlayerPrefs.HasKey("LevelTime_" + type)) { t = PlayerPrefs.GetFloat("LevelTime_" + type, -1); } textMesh.text = "Your score is:\n" + t; }
public void Defunct_CallReportLevelTime(FreshLevels.Type type, float levelTime) { if (fa.dontConnect3rdParty) { return; } RemoteData.Account a = new RemoteData.Account(); a.username = "******"; a.token = "valid"; RemoteData.ReportLevelTime(a, type.ToString(), "" + levelTime, (data) => { genericPrint += "" + data; }); }
public void Defunct_ReportLevelTime(FreshLevels.Type type, float levelTime) { if (fa.dontConnect3rdParty) { return; } if (RemoteData.myAccount != null) { RemoteData.ReportLevelTime(RemoteData.myAccount, type.ToString(), "" + levelTime, (data) => { genericDebug += "" + data; }); } }
public static void ReportLevelTime(FreshLevels.Type type, float levelTime) { if (fa.dontConnect3rdParty) { return; } if (fa.cheater) { return; } FrRemoteData.Fr_ReportLevelTime("" + type, levelTime, (data) => { AddResult(data, Type.Generic); }); }
public void RequestLeaderboard(FreshLevels.Type type) { if (fa.dontConnect3rdParty) { return; } if (RemoteData.myAccount != null) { RemoteData.RequestLeaderboard(RemoteData.myAccount, type.ToString(), (data) => { resultFromRequestLeaderboard = true; resultFromRequestLeaderboard_data = data; }); } }
public static void SaveLevelDeaths(FreshLevels.Type type, int deaths) { if (fa.cheater) { return; } int previous = -1; previous = PlayerPrefs.GetInt("LevelDeaths_" + type, -1); if (previous <= -1 || previous > deaths) { PlayerPrefs.SetInt("LevelDeaths_" + type, deaths); PlayerPrefs.Save(); } }
public static float LoadLevelTime(FreshLevels.Type fType) { FreshLevels.Type type = fType; if (type == FreshLevels.Type.IntroStory) { type = FreshLevels.Type.Tut_JumpAndAirsword; } if (type == FreshLevels.Type.AlpDLC_IntroStory) { type = FreshLevels.Type.Alp0; } float result = -1; if (PlayerPrefs.HasKey("LevelTime_" + type)) { result = PlayerPrefs.GetFloat("LevelTime_" + type, -1); } return(result); }
public static int LoadLevelDeaths(FreshLevels.Type fType) { FreshLevels.Type type = fType; if (type == FreshLevels.Type.IntroStory) { type = FreshLevels.Type.Tut_JumpAndAirsword; } //IntroStory isn't a real level if (type == FreshLevels.Type.AlpDLC_IntroStory) { type = FreshLevels.Type.Alp0; } //IntroStory isn't a real level int result = -1; if (PlayerPrefs.HasKey("LevelDeaths_" + type)) { result = PlayerPrefs.GetInt("LevelDeaths_" + type, -1); } return(result); }
public static void SaveLevelTime(FreshLevels.Type type, float levelTime) { if (fa.cheater) { return; } //RemoteData.CallReportLevelTime(type,levelTime); float previousPB = -1; if (PlayerPrefs.HasKey("LevelTime_" + type)) { previousPB = PlayerPrefs.GetFloat("LevelTime_" + type, -1); } if (previousPB < 0 || previousPB > levelTime) { PlayerPrefs.SetFloat("LevelTime_" + type, levelTime); PlayerPrefs.Save(); } }
public static void Qc_ReportLevelTime(FreshLevels.Type type, float levelTime, string ghostData) { if (fa.dontConnect3rdParty) { return; } if (fa.cheater) { return; } if (FreshLevels.NotALeaderboardLevel(type)) { return; } //There are / should be no leaderboards for this level Debug.Log("Reported QC level time"); FrRemoteData.Qc_ReportLevelTime("" + type, levelTime, ghostData, (data) => { AddResult(data, Type.Generic); }); }
public static void UnlockThisLevel(string level) { if (level == "StartMenu") { return; } if (level == "ESJ2Title") { return; } if (level == "MegaMetaWorld") { return; } FreshLevels.Type t = FreshLevels.GetTypeNameForStr(level); if (t == FreshLevels.Type.None) { Debug.Log("Error: string " + level + " returned type .None in GetTypeNameForStr. Level not unlocked!"); return; } UnlockThisLevel(t); }
void Update() { if (playerObj == null) { playerObj = GameObject.FindGameObjectWithTag("Player"); } else { //Debug.Log("HERE1 " + playerObj.transform.position + ", " + transform.position + ", " + portalDist + ", Triggered/Fading: " + triggered + ", " + xa.fadingOut); if (Vector3.Distance(playerObj.transform.position, transform.position) < portalDist) { if (!triggered) { triggered = true; xa.allowPlayerInput = false; xa.hasCheckpointed = false; Time.timeScale = 1; FreshLevels.Type levelType = FreshLevels.GetTypeOfCurrentLevel(); if (!isSecretExit) { Fresh_Saving.SaveLevelDeaths(levelType, za.deaths); Fresh_Saving.SaveLevelTime(levelType, fa.speedrunTime); FrFuncs.Qc_ReportLevelTime(levelType, fa.speedrunTime, "noGhostData"); SteamLeaderboards.SendPBToSteam(levelType, fa.speedrunTime); } //Update unlocked levels (lvlNum) NodeController.WonLevel(levelType); xa.re.cleanLoadLevel(Restart.RestartFrom.RESTART_FROM_MENU, FreshLevels.GetStrNameForType(gotoLvl)); } } } }
public static void ParseData(FreshLevels.Type lvlType, string data) { if (data == null) { return; } if (data.Length < 3) { return; } // must be rubbish data, white space, to be so short //Debug.Log("HERE1"); //find or create the totalData and recalc it int lvlIndex = -1; for (int i = 0; i < lvlStats.Count; i++) { if (lvlStats[i].levelType == lvlType) { lvlIndex = i; } } if (lvlIndex == -1) { //create it TotalPoint tp = new TotalPoint(); tp.levelType = lvlType; lvlIndex = lvlStats.Count; lvlStats.Add(tp); } //Debug.Log("RAW DATA: " + lvlType + ", " + data); //Ok, now parse the data string[] chunks = data.Split(','); //Debug.Log("HERE2 " + chunks.Length); List <string> names = new List <string>(); List <float> times = new List <float>(); for (int d = 0; d < chunks.Length; d++) { if (chunks[d].Length < 3) { continue; } //Debug.Log("HERE3 " + chunks[d]); string[] bits = chunks[d].Split(':'); names.Add(bits[0]); float r = -1; float.TryParse(bits[1], out r); times.Add(r); } //Debug.Log("HERE 4"); for (int i = 0; i < names.Count; i++) { //Debug.Log(names[i]); lvlStats[lvlIndex].names.Add(names[i]); bool unique = true; for (int a = 0; a < lvlStats[lvlIndex].names.Count; a++) { if (lvlStats[lvlIndex].names[a] == names[i]) { unique = false; } } if (unique) { Debug.Log(names[i]); lvlStats[lvlIndex].names.Add(names[i]); } } for (int i = 0; i < times.Count; i++) { // Debug.Log(times[i]); lvlStats[lvlIndex].times.Add(times[i]); } /* * for (int d = 0; d < chunks.Length; d++) * { * string[] bits = chunks[d].Split(':'); * * Debug.Log("HERE5 " + chunks[d]); * Debug.Log("HERE6 " + bits[0] + "--" + bits[1] + ", Chunk length: " + chunks.Length); * * * * lvlStats[lvlIndex].times.Add(float.Parse(bits[1])); * * * //check if name already exists, if so, don't add it * bool unique = true; * for (int a = 0; a < lvlStats[lvlIndex].names.Count; a++) * { * if (lvlStats[lvlIndex].names[a] == bits[0]) * { * unique = false; * } * } * if (unique) * { * lvlStats[lvlIndex].names.Add(bits[0]); * } * }*/ lvlStats[lvlIndex].rawData = data; lvlStats[lvlIndex].Calc(); }
public static void UnlockThisLevel(FreshLevels.Type type) { UnlockThisLevel(type, false); }