/// <summary> /// 增加游戏纪录 /// </summary> /// <param name="level">游戏场景</param> /// <param name="score">分数</param> /// <param name="weight">权重</param> public void AddPlayRecord(GameRecords record) { if (record == null) { return; } LevelScore score = GetScoreByLevel(record.Level); if (score == null) { return; } score.PlayCount += 1; score.MaxHits = record.MaxCombos; if (score.SetScore(record.Scores)) { //重新计算总分 this.ReportScore(score.LeardBoardID, score.BestScore, (ok) => { score.NeedReported = !ok; }); } Save2File(); }
void Start() { line = GetComponent <LineRenderer>(); trans = GetComponent <Transform>(); rigBody = GetComponent <Rigidbody2D>(); levelScore = GetComponentInParent <LevelScore>(); }
public List <LevelScore> ListLevelScore(int pIdGame, int pIdMap, int pIdLevel) { List <LevelScore> list_level_score = new List <LevelScore> (); string conn = "URI=file:" + Application.streamingAssetsPath + "/AdvScrabble.db"; //Path to database. IDbConnection dbconn; dbconn = (IDbConnection) new SqliteConnection(conn); dbconn.Open(); //Open connection to the database. IDbCommand dbcmd = dbconn.CreateCommand(); string sqlQuery = String.Format("SELECT * FROM score_level where id_game = \"{0}\" and id_map = \"{1}\" and id_level = \"{2}\"", pIdGame, pIdMap, pIdLevel); dbcmd.CommandText = sqlQuery; IDataReader reader = dbcmd.ExecuteReader(); while (reader.Read()) { LevelScore l = new LevelScore(); l.Id_level_score = reader.GetInt32(3); l.Star = this.GetStar(reader.GetInt32(4)); l.Score_level = reader.GetInt32(5); l.Loc_star = (float)((double)reader["loc_star"]); l.Bar_value = (float)((double)reader["bar_value"]); list_level_score.Add(l); } dbcmd.Dispose(); dbcmd = null; dbconn.Close(); dbconn = null; return(list_level_score); }
/// <summary> /// Loads the current level scores from player prefs /// </summary> public void LoadScores() { scores = GameManager.Instance.GetSaveManager().currentSave.scores; for (int i = 0; i < scores.Length; i++) { if (scores[i] == null) { scores[i] = new LevelScore(); } } if (GameManager.Instance.GetSaveManager().currentSave.pcgScores != null) { pcgScores = GameManager.Instance.GetSaveManager().currentSave.pcgScores.ToArray(); } if (pcgScores != null) { for (int i = 0; i < pcgScores.Length; i++) { if (pcgScores[i] == null) { pcgScores[i] = new LevelScore(); } } } else { pcgScores = new LevelScore[0]; } }
void Start() { try { m_LevelScore = GameObject.FindGameObjectWithTag("LevelScore").GetComponent <LevelScore>(); } catch (NullReferenceException ex) { Debug.LogWarning("Score Manager not found > " + ex.Message); } m_CameraControl = GetComponent <CameraControl>(); m_CharacterControl = GameObject.Find("Katherine").GetComponent <PlayerController>(); m_MessageText = GetComponent <MessageText>(); m_BlackScreenAnimator = m_BlackScreen.GetComponent <Animator>(); m_DialogManager = GameObject.Find("DialogManager").GetComponent <DialogManager>(); m_CharacterControl.SetCanMove(false); m_CharacterControl.SetCanRun(false); m_CameraControl.SetCameraSize(1.5f, false, 0.0f); m_BlackScreenAnimator.Play("BlackScreenFadeOut"); m_ActualEvent = 1; m_Found = false; m_Solved = false; }
/// <summary> /// 登录 /// </summary> /// <param name="onComplete">登录完成后回调</param> public void Login(System.Action <bool> onComplete) { SocialManager.Instance.Authenticate(ok => { if (ok) { UserName = Social.localUser.userName; UserID = Social.localUser.id; List <LevelScore> needReportScores = GetNeedReportScores(); if (needReportScores != null && needReportScores.Count > 0) { for (int i = 0; i < needReportScores.Count; i++) { LevelScore score = needReportScores[i]; this.ReportScore(score.LeardBoardID, score.BestScore, (b) => { score.NeedReported = !b; }); } } Save2File(); } if (onComplete != null) { onComplete(ok); } }); }
private IEnumerator PrepareForNextLevel() { yield return(new WaitForSeconds(3)); // [dymara] Hack for disabling exit & death events until scene fade out animation finishes player.ResetPlayerFlags(); levelScore = new LevelScore(); }
/// <summary> /// Takes a new score and compares it to the old score /// to determine if the new data should be saved /// </summary> /// <param name="score">LevelScore object that holds data for scoring</param> public void ScoreLevel(LevelScore score) { if (solutions.Length > score.index && score.index >= 0) { int _score = GetCalculatedScore(score); if (scores.Length <= score.index) { AddNewScores(score.index); } if (GetCalculatedScore(score.index) < _score) { scores[score.index] = score; SaveScores(); Debug.Log("New level " + score.index + " score is " + _score); } else { Debug.Log("Old level " + score.index + " score is higher than " + _score + ", retaining"); } } else { Debug.LogError("Solution Not Found, please setup on ScoreManager object"); } }
public void LoadSave(string s) { if (s != "") { ParallelSave save = GetSave(s); if (save != null) { currentSave = save; GameManager.Instance.GetScoreManager().LoadScores(); GameManager.Instance.GetDataManager().GetLevels(); if (currentSave.pcgLevels == null) { currentSave.pcgLevels = new List <string>(); } GameManager.Instance.GetDataManager().GetPCGLevels(currentSave.pcgLevels); } else { Debug.Log("Unable to load save: " + s + ". File does not exist."); LevelScore[] scores = new LevelScore[0]; List <LevelScore> pcgScores = new List <LevelScore>(); List <string> pcgLevels = new List <string>(); currentSave = NewSave(s, scores, pcgScores, pcgLevels); saves.Add(currentSave); GameManager.Instance.GetScoreManager().LoadScores(); Debug.Log("Done loading scores"); GameManager.Instance.GetDataManager().GetLevels(); Debug.Log("Done loading levels"); GameManager.Instance.GetDataManager().GetPCGLevels(currentSave.pcgLevels); Debug.Log("Done loading pcg levels"); } } }
public void Prepare(Mission mission, Dictionary <ScoreType, Result> actualResults) { Mission = mission; //you can only repeat specified missions (i have no time to do backend search for last random mission) ButtonRepeat.SetActive(mission.MissionType == MissionType.Specified); //GetComponent<ButtonsInCloud>().ButtonTopText = mission.MissionType == MissionType.Random?"Quick Mission":"Next mission"; ActualResults = actualResults; TextLeaderboardNames.GetComponent <Text>().text = ""; TextLeaderboardScores.GetComponent <Text>().text = ""; YourScore = new LevelScore(); YourScore.AddInfo(Game.Me.UserName, (int)actualResults[ScoreType.Interventions].Value, WebConnector.GetDeviceId(), actualResults[ScoreType.Time].Value, -1); LevelScore yourPrevious = mission.YourBest; TextYourScore.GetComponent <Text>().text = YourScore.Interventions + " interv, " + (YourScore.Time.ToString("##.##")) + " seconds"; int interventionDelta = yourPrevious.Interventions - YourScore.Interventions; float timeDelta = yourPrevious.Time - YourScore.Time; if (yourPrevious.Interventions == 0 || YourScore.Interventions < yourPrevious.Interventions || (YourScore.Interventions == yourPrevious.Interventions && YourScore.Time < yourPrevious.Time)) { TextYourScore.GetComponent <Text>().text += "\n (YOUR RECORD"; if (yourPrevious.Interventions == 0) { TextYourScore.GetComponent <Text>().text += ", first try"; } else { if (interventionDelta > 0) { TextYourScore.GetComponent <Text>().text += " by " + interventionDelta + " interv"; } else { TextYourScore.GetComponent <Text>().text += " by " + timeDelta.ToString("##.##") + " seconds"; } } TextYourScore.GetComponent <Text>().text += ")"; } else { TextYourScore.GetComponent <Text>().text += "\n WORSE THAN YOUR RECORD BY "; if (interventionDelta < 0) { TextYourScore.GetComponent <Text>().text += -interventionDelta + " interv"; } else { TextYourScore.GetComponent <Text>().text += (-timeDelta).ToString("##.##") + " seconds"; } } TextLeaderboardNames.GetComponent <Text>().text = "Loading"; TextLeaderboardScores.GetComponent <Text>().text = "scores"; ImageYellowStraw.SetActive(false); UpdateText(Mission.BestScores); }
public void EndCurrentLevel(bool cleared) { if (levelScore != null) { this.levelCleared = cleared; GetUIController().DisplayLevelSummary(cleared, player.remainingLives, levelScore.clearBonus, levelScore.blocksBonus, levelScore.monsterBonus, levelScore.pickupBonus, levelScore.timeBonus); levelScore = null; } }
internal void GoToEndLevel() { lastScore = loadedLevel.GetComponent <LevelScore>(); allScores.Add(lastScore); Destroy(loadedLevel); Destroy(loadedLevelPlayingUI); loadedLevelEndUI = Instantiate(LevelEndUI); loadedLevelEndGrid = Instantiate(LevelEndGrid); loadedLevelEndUI.GetComponent <LevelEndUI>().Reset(); }
/// <summary> /// Loads the current level scores from player prefs /// </summary> public void LoadScores() { scores = GameManager.Instance.GetSaveManager().currentSave.scores; for (int i = 0; i < scores.Length; i++) { if (scores[i] == null) { scores[i] = new LevelScore(); } } }
private void Start() { try { m_LevelScore = GameObject.FindGameObjectWithTag("LevelScore").GetComponent <LevelScore>(); } catch (NullReferenceException ex) { Debug.LogWarning("Score Manager not found (CallSubmitScore) > " + ex.Message); } }
public void UpdateScore(LevelScore score, int index) { if (scores.Length <= index) { LevelScore[] oldScores = scores; scores = new LevelScore[index + 1]; for (int i = 0; i < oldScores.Length; i++) { scores[i] = oldScores[i]; } } }
public LevelScore GetScoreByBoardId(string boardId) { LevelScore score = LevelScores.Find(p => { return(p.LeardBoardID == boardId); }); if (score == null) { score = new LevelScore(GameGlobalValue.GetLevelIdByBoardId(boardId)); score.LeardBoardID = boardId; LevelScores.Add(score); } return(score); }
private void SendToScore() { try { m_LevelScore = GameObject.FindGameObjectWithTag("LevelScore").GetComponent <LevelScore>(); m_LevelScore.SetUsername(m_Username); } catch (NullReferenceException ex) { Debug.LogWarning("Score Manager not found (LoadMenuData) > " + ex.Message); } }
/// <summary> /// 获得游戏场景的纪录 /// </summary> /// <param name="level"></param> /// <returns></returns> public LevelScore GetScoreByLevel(int level) { LevelScore score = LevelScores.Find(p => { return(p.LevelID == level); }); if (score == null) { score = new LevelScore(level); score.LeardBoardID = GameGlobalValue.GetBoardIdByLevel(level); LevelScores.Add(score); } return(score); }
public CompetitionScore GetScore(List <Program.LevelStatistic> solutions) { float saMovesScore = 0; float saTimeScore = 0; float maMovesScore = 0; float maTimeScore = 0; float timesFaster = 0; int levelsFaster = 0; foreach (var statistic in solutions) { //if (!Directory.EnumerateDirectories(statistic.LevelPath).Any(x => x == CompetitionFolder)) //{ // continue; //} ReadOnlySpan <char> nameWithType = statistic.LevelName; ReadOnlySpan <char> name = nameWithType.Slice(2); if (Scores.ContainsKey(name.ToString())) { LevelScore score = Scores[name.ToString()]; ReadOnlySpan <char> levelType = nameWithType.Slice(0, 2); bool isSingleAgent = levelType.ToString() == "SA"; if (isSingleAgent) { saMovesScore += score.CalculateSAMoveScore(statistic.Moves); saTimeScore += score.CalculateSATimeScore(statistic.Time); var fasterInfo = score.GetSATimesFaster(statistic.Time); if (fasterInfo.Item1) { timesFaster += fasterInfo.Item2; levelsFaster++; } } else { maMovesScore += score.CalculateMAMoveScore(statistic.Moves); maTimeScore += score.CalculateMATimeScore(statistic.Time); var fasterInfo = score.GetMATimesFaster(statistic.Time); if (fasterInfo.Item1) { timesFaster += fasterInfo.Item2; levelsFaster++; } } } } return(new CompetitionScore(saMovesScore, saTimeScore, maMovesScore, maTimeScore, timesFaster / levelsFaster)); }
void Start() { /*if(LS != null) * GameObject.Destroy(LS); * else*/ LS = this; //DontDestroyOnLoad(this); // Retrieves previous highScores DataManager.DM.LoadData(); }
/// <summary> /// /// </summary> /// <param name="score"></param> /// <param name="success"></param> /// <returns></returns> public LevelScore GetSolutionInfo(LevelScore score, out bool success) { if (solutions.Length > score.index && score.index >= 0) { success = true; return(solutions[score.index]); } else { success = false; return(score); } }
public static void loadLevelCurrentBest() { try { FileStream file = File.Open(Application.persistentDataPath + "/levels_" + LevelManager.difficulty + LevelManager.level + ".dat", FileMode.Open); BinaryFormatter bf = new BinaryFormatter(); LevelScore levelScore = (LevelScore)bf.Deserialize(file); currentBest = levelScore.best; file.Close(); } catch { currentBest = 0; } }
private void Start() { try { m_LevelScore = GameObject.FindGameObjectWithTag("LevelScore").GetComponent <LevelScore>(); } catch (NullReferenceException ex) { Debug.LogWarning("Score Manager not found > " + ex.Message); } m_PauseMenu.SetActive(true); m_ActualEvent = 0; m_Solved = false; }
private void Init() { levelNumber = configurator.initialLevelNumber; player.name = "Player"; player.tag = Constants.HUMAN_PLAYER_TAG; player.remainingLives = configurator.initialPlayerLives; player.score = 0; player.bombs = configurator.initialPlayerBombs; player.maximumBombsCount = configurator.initialPlayerBombs; player.bombRange = configurator.initialPlayerBombRange; player.speed = configurator.initialPlayerSpeed; player.remoteDetonationBonus = configurator.initialPlayerRemoteDetonationBonus; levelScore = new LevelScore(); }
private void Start() { try { m_LevelScore = GameObject.FindGameObjectWithTag("LevelScore").GetComponent <LevelScore>(); } catch (NullReferenceException ex) { Debug.LogWarning("Score Manager not found > " + ex.Message); } m_ActualEvent = 0; m_LanternsOrder = 0; m_LanterNum = new int[4]; }
private void Start() { try { m_LevelScore = GameObject.FindGameObjectWithTag("LevelScore").GetComponent <LevelScore>(); } catch (NullReferenceException ex) { Debug.LogWarning("Score Manager not found > " + ex.Message); } m_DialogManager = GameObject.Find("DialogManager").GetComponent <DialogManager>(); m_Lose = gameObject.GetComponent <LoseScript>(); }
protected override void InsertSystemSubcomponents() { base.InsertSystemSubcomponents(); // Insert lelelInfo and scoreInfo var li = (XLevelInfo)LevelInfo.Copy(); var ls = (XLevelScore)LevelScore.Copy(); li.Id = "levelInfo"; ls.Id = "levelScore"; this.RootComponent.Subcomponents.Insert(0, li); this.RootComponent.Subcomponents.Insert(0, ls); this.RootComponent.ResetComponentDictionary(); }
// Use this for initialization void Start() { actualPhase = LevelPhase.FIRST_SHOT; level = 1; swiper = GameObject.FindObjectOfType <Swiper>(); levelScore = new LevelScore[10]; for (int i = 0; i < levelScore.Length; i++) { levelScore[i] = new LevelScore(); } scoreDisplay = GameObject.FindObjectOfType <ScoreDisplayer>(); }
private void OnSceneLoad(Scene p_scene, LoadSceneMode p_mode) { if (m_time > 0) { LevelScore score = new LevelScore(); score.m_levelId = m_scores.Count + 1; score.m_time = m_time; score.m_deaths = m_deaths; m_scores.Add(score); } ResetLevelVariables(); }
public void SaveScore() { string json = "{\n" + "\"LevelScores\":[\n"; for (int i = 0; i < myLevelList.Count; i++) { LevelScore saveobject = new LevelScore { myLevelName = myLevelList[i].myLevelName, myTwoStarScore = myLevelList[i].myTwoStarScore, myOneStarScore = myLevelList[i].myOneStarScore, myStartingMoney = myLevelList[i].myStartingMoney, myCoinValue = myLevelList[i].myCoinValue }; json += JsonUtility.ToJson(saveobject); if (i != myLevelList.Count - 1) { json += ",\n"; } } json += "\n]\n}"; string path = Application.streamingAssetsPath + "/levelscores.txt"; if (File.Exists(path)) { for (int i = 1; i < 5000; i++) { string backupPath = Application.streamingAssetsPath + "/backupLevelscore" + i + ".txt"; if (File.Exists(backupPath)) { continue; } else { //FileUtil.CopyFileOrDirectory(path, backupPath); break; } } } File.WriteAllText(Application.streamingAssetsPath + "/levelscores.txt", json); }
protected override void Update(UpdateContext updateContext, bool otherScreenHasFocus, bool coveredByOtherScreen) { if (_gameplayMode == GameplayMode.Editor) { // If the game is in Editor mode and the user presses Escape, // then return to the EditorScreen if (updateContext.InputState.IsNewKeyPress(Keys.Escape)) { LoadingScreen.Load(base.ScreenManager, false, new EditorScreen(_levelPath)); return; } } if (this.IsActive) { if(_gameplayMode == GameplayMode.Stage || _gameplayMode == GameplayMode.FullRun) { if (updateContext.InputState.IsNewKeyPress(Keys.Escape)) { base.ScreenManager.AddScreen(new PauseScreen(_levelPath)); } } _level.Update(updateContext); _levelController.Control(updateContext); _levelRenderer.Update(updateContext); if (!_level.Player.IsAlive) { _timeSincePlayerDeath += updateContext.DeltaSeconds; const float WaitUntilReset = 1f; if (_timeSincePlayerDeath > WaitUntilReset) { if (_gameplayMode == GameplayMode.FullRun) { base.ScreenManager.AddScreen(new LevelSelectScreen(_levelPath)); return; } _timeSincePlayerDeath = 0f; this.LoadLevel(); base.ScreenManager.AddScreen(new StartScreen()); } } // Shouldn't ever be null but whatever if (_level.World.Portal != null && _level.Player.IsAlive) { if (_level.World.Portal.Area.Intersects(_level.Player.Area)) { ScoreFile scoreFile = ScoreFile.Open(); LevelScore levelScore; if (scoreFile.ContainsHash(_level.World.Map.Hash)) { levelScore = scoreFile.GetLevelScore(_level.World.Map.Hash); } else { levelScore = new LevelScore(_level.World.Map.Hash, _level.World.Map.StageCount); } float stageTime = _level.GameClock.RemainingTime - _stageStartTime + 10; // 10 == base time if (_gameplayMode != GameplayMode.Editor) { if (levelScore.StageBestTimes[_stage].HasValue) { if (stageTime > levelScore.StageBestTimes[_stage].Value) { levelScore.StageBestTimes[_stage] = stageTime; } } else { levelScore.StageBestTimes[_stage] = stageTime; } } if (_gameplayMode == GameplayMode.FullRun) { if (_stage == _level.World.Map.StageCount - 1) { if (levelScore.MapBestTime.HasValue) { if (_level.GameClock.RemainingTime > levelScore.MapBestTime.Value) { levelScore.MapBestTime = _level.GameClock.RemainingTime; } } else { levelScore.MapBestTime = _level.GameClock.RemainingTime; } base.ScreenManager.AddScreen(new StageCompletedScreen(_levelPath, (_gameplayMode != GameplayMode.Stage))); } else { _level.GameClock.AddTime(10); _stageStartTime = _level.GameClock.RemainingTime; _stage++; _level.World.CreatePortal(_level.World.GetStageStartIndex(_stage + 1)); } } else { base.ScreenManager.AddScreen(new StageCompletedScreen(_levelPath, (_gameplayMode != GameplayMode.Stage))); } scoreFile.Save(); } } } }
/// <summary> /// 获得游戏场景的纪录 /// </summary> /// <param name="level"></param> /// <returns></returns> public LevelScore GetScoreByLevel(int level) { LevelScore score = LevelScores.Find(p => { return p.LevelID == level; }); if (score == null) { score = new LevelScore(level); score.LeardBoardID = GameGlobalValue.GetBoardIdByLevel(level); LevelScores.Add(score); } return score; }
public LevelScore GetScoreByBoardId(string boardId) { LevelScore score = LevelScores.Find(p => { return p.LeardBoardID == boardId; }); if (score == null) { score = new LevelScore(GameGlobalValue.GetLevelIdByBoardId(boardId)); score.LeardBoardID = boardId; LevelScores.Add(score); } return score; }
private void LoadLevelData() { if (_currentLevelIndex < _files.Length) { int hash; int stageCount; using (var stream = File.OpenRead(_files[_currentLevelIndex])) { using (BinaryReader reader = new BinaryReader(stream)) { hash = reader.ReadInt32(); stageCount = reader.ReadInt32(); } } if (_scoreFile.ContainsHash(hash)) { _currentLevelScore = _scoreFile.GetLevelScore(hash); } else { _currentLevelScore = new LevelScore(hash, stageCount); _scoreFile.AddLevelScore(_currentLevelScore); } this.CreateUi(); } }
//relativni (level/score) skore na absolutni (score) static LevelScore GetLevelScore(Levels level, double Correct) { LevelScore res = new LevelScore(); //globalni score (vzhledem k C2). 100 v C2 ma globalScore 100. Nizsi urovne maji globalni score vzdy o c_delta krat nizsi. res.globalScore = (int)(Correct * 100); if (level == Levels.no) { res.absLevel = res.level = Levels.no; res.score = res.absScore = res.globalScore; } else { //vypocti absolutni level a absolutni score. Vstupem je globalScore, na zaklade nej spocte optimalni absScore a absLevel tak, aby byly porovnatelne EslTest a A1,...,C2 testy. res.absLevel = Levels.A1; foreach (Levels lev in LevelsBasic) if (Correct <= Weights(lev) * 0.9) { res.absLevel = lev; break; } res.absScore = (int)(Correct / weights[LevelNum(res.absLevel)] * 100); //level a score (do diplomu apod.) - pro A1...C2 testy Level zustava, pro EslTest se prepocte na absLevel x absScore res.level = LevelsBasic.Contains(level) ? level : res.absLevel; res.score = (int)(Correct / Weights(res.level) * 100); } return res; }