private void Awake() { instance = this; playerDeathCount = PlayerPrefs.GetInt("PlayerDeath"); playerKillCount = 0; playerSurvivalTime = 0; achievementObserver = new List <Observer>(); achievementData = CSVReader.Read("Achievements"); //업적 목록 받아오기 unlockText = unlockAchievement.transform.GetChild(1).GetComponent <Text>(); achievePair = new Dictionary <string, int>() { { "zombie", 0 }, { "survive", 0 }, { "death", 0 } }; for (int i = 0; i < achievementData.Count; i++) // 생성 { Observer achievements = new Observer(); achievements.achieveCondition = achievementData[i]["AchievementCondition"].ToString(); //업적당 조건 및 횟수 할당 achievements.achieveCount = (int)achievementData[i]["AchievementCount"]; AddAchievement(achievements); //각 업적을 리스트에 할당 } unlockAchievement.SetActive(false); }
private void OnTriggerEnter2D(Collider2D _collision) { //좀비와 부딪히면 if (_collision.transform.CompareTag("Zombie")) { PlayerPrefs.SetInt("PlayerDeath", AchievementPlayer.GetInstance().playerDeathCount + 1); //지금까지 죽은 횟수 저장 AchievementPlayer.GetInstance().playerSurvivalTime = Mathf.FloorToInt((float)time); //게임이 끝날때 시간 버림해서 최대 생존 시간 PlayerPrefs.SetInt("PlayerSurvivalTime", AchievementPlayer.GetInstance().playerSurvivalTime); Time.timeScale = 0; //게임 끝 buttonPanel.SetActive(true); //버튼 panel 활성화 rankedDateDic.Add(time.ToString(), System.DateTime.Now.ToString()); MakeDescendingArray(rankingsText, time); //기존 랭킹과, 새로운 기록 비교 rankingPanel.SetActive(true); for (int i = 0; i < rankingsText.Length; i++) { PlayerPrefs.SetString(i.ToString(), rankingsText[i].text); //시간을 점수로 저장 if (rankedDateDic.ContainsKey(rankingsText[i].text)) { PlayerPrefs.SetString(rankingsText[i].text, rankedDateDic[rankingsText[i].text]); rankingsText[i].text = PlayerPrefs.GetString(i.ToString()); //점수판에 반영 rankingsDate[i].text = PlayerPrefs.GetString(rankingsText[i].text); //그에 따른 날짜도 반영 } } } }
public static AchievementPlayer GetInstance() { if (instance == null) { instance = FindObjectOfType(typeof(AchievementPlayer)) as AchievementPlayer; } return(instance); }
public void checkCondition(AchievementPlayer p) { bool c = Condition(); if (c && !p.checkAchievement(name)) { p.addAchievementToList(this); reward(p.player); achievementCompletion(p.player); } }
private void DrawAtMouse(SpriteBatch spriteBatch) { AchievementPlayer player = Main.LocalPlayer.GetModPlayer <AchievementPlayer>(); if (IsMouseHovering) { bool state = player.checkAchievement(achievement.name); string stringState = (state) ? "[c/00FF00:Completed]" : "[c/FF0000:Not Completed]"; Main.hoverItemName = "State: " + stringState + "\nMod: " + achievement.mod.DisplayName; /*ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontMouseText, * "State: " + stringState + "\nMod: " + achievement.mod.DisplayName, * new Vector2(Main.mouseX + 20, Main.mouseY + 20), Color.White, 0f, Vector2.Zero, Vector2.One);*/ } }
private void OnTriggerEnter2D(Collider2D collision) // 오렌지 태그를 가진 오브젝트를 만나면 좀비 사라짐 { //if (collision.gameObject.tag == "Berry") //{ // DestroyZombie(0); //} //if (collision.gameObject.tag == "Banana") //{ // DestroyZombie(1); //} if (collision.gameObject.CompareTag(obstacle)) { gameObject.GetComponent <AudioSource>().Play(); switch (obstacle) { case "Berry": tempHP = 0f; break; case "Banana": tempHP -= 30f; //바나나 맞으면 30씩, 나중에 비율로도 가능 break; default: break; } currentHP = tempHP; zombieHP.value = currentHP / MaxHP; if (currentHP <= 0) { StartCoroutine(IZombieDead()); AchievementPlayer.GetInstance().playerKillCount++; PlayerPrefs.SetInt("PlayerKill", AchievementPlayer.GetInstance().playerKillCount); //죽을 때마다 카운트 증가 } } }
void Update() { time = Math.Round((Time.timeSinceLevelLoad), 1); //씬이 로드 된 이후부터 시간을 소수 둘째 자리로 반올림 score.text = time.ToString(); AchievementPlayer.GetInstance().playerSurvivalTime = Mathf.FloorToInt((float)time); }
public string CalculateAchievement(bool firstTime, Player player, Achievement achievement, TrambambuleDBContextDataContext context) { int level = 0; string label = ""; int newLevel = 0; var currentAchievement = context.AchievementPlayer.FirstOrDefault(w => w.AchievementId == achievement.Id && w.PlayerId == player.Id); if (currentAchievement != null) { level = currentAchievement.LevelOfAchievement; } else { level = 0; } string comment = ""; switch (level) { case 0: CaseLevel1(firstTime, player, achievement, context, ref label, ref newLevel, ref comment); break; case 1: CaseLevel2(firstTime, player, achievement, context, ref label, ref newLevel, ref comment); break; case 2: CaseLevel3(firstTime, player, achievement, context, ref label, ref newLevel, ref comment); break; } //if (newLevel > level) //{ if (currentAchievement == null) { currentAchievement = new AchievementPlayer(); currentAchievement.LevelOfAchievement = newLevel; currentAchievement.AchievementId = achievement.Id; currentAchievement.ToNextLevelLabel = comment; currentAchievement.PlayerId = player.Id; context.AchievementPlayer.InsertOnSubmit(currentAchievement); } else { if (newLevel > level) { currentAchievement.LevelOfAchievement = newLevel; } if (!string.IsNullOrEmpty(comment)) { currentAchievement.ToNextLevelLabel = comment; } } if (newLevel > level) { string levelName = Common.GetAchievementsLevelName(newLevel); return(string.Format("Gracz {0} {1} uzyskał poziom {2} ({3}) w osiągnięciu \"{4}\".", player.FirstName, player.LastName, levelName, label, achievement.Title)); } else { return(""); } //} //else if (comment != "" && currentAchievement != null) //{ // currentAchievement.ToNextLevelLabel = comment; //} //return ""; }
public string CalculateAchievement(bool firstTime, Player player, Achievement achievement, TrambambuleDBContextDataContext context) { int level = 0; string label = ""; int newLevel = 0; var currentAchievement = context.AchievementPlayer.FirstOrDefault(w => w.AchievementId == achievement.Id && w.PlayerId == player.Id); if (currentAchievement != null) level = currentAchievement.LevelOfAchievement; else level = 0; string comment = ""; switch (level) { case 0: CaseLevel1(firstTime, player, achievement, context, ref label, ref newLevel, ref comment); break; case 1: CaseLevel2(firstTime, player, achievement, context, ref label, ref newLevel, ref comment); break; case 2: CaseLevel3(firstTime, player, achievement, context, ref label, ref newLevel, ref comment); break; } //if (newLevel > level) //{ if (currentAchievement == null) { currentAchievement = new AchievementPlayer(); currentAchievement.LevelOfAchievement = newLevel; currentAchievement.AchievementId = achievement.Id; currentAchievement.ToNextLevelLabel = comment; currentAchievement.PlayerId = player.Id; context.AchievementPlayer.InsertOnSubmit(currentAchievement); } else { if (newLevel > level) { currentAchievement.LevelOfAchievement = newLevel; } if (!string.IsNullOrEmpty(comment)) { currentAchievement.ToNextLevelLabel = comment; } } if (newLevel > level) { string levelName = Common.GetAchievementsLevelName(newLevel); return string.Format("Gracz {0} {1} uzyskał poziom {2} ({3}) w osiągnięciu \"{4}\".", player.FirstName, player.LastName, levelName, label, achievement.Title); } else return ""; //} //else if (comment != "" && currentAchievement != null) //{ // currentAchievement.ToNextLevelLabel = comment; //} //return ""; }