public void AddProgressToAchievement(string achievementName, int progressAmount) { Quest achievement = GetAchievementByName(achievementName); if (achievement == null) { Debug.LogWarning("AchievementManager::AddProgressToAchievement() - Trying to add progress to an achievemnet that doesn't exist: " + achievementName); return; } if (achievement.AddProgress(progressAmount)) { AchievementEarned(); } // espacio para salvar }
public Quest Find(string questID) { Quest quest = null; { Util.Sqlite.DataReader reader = Database.Execute(Database.Type.MetaData, "SELECT quest_id, quest_name, reward_coin, reward_item_id, sprite_path FROM meta_quest WHERE quest_id='" + questID + "'" ); while (true == reader.Read()) { quest = new Quest(); quest.quest_id = reader.GetString("quest_id"); quest.quest_name = reader.GetString("quest_name"); quest.sprite_path = reader.GetString("sprite_path"); quest.reward.coin = reader.GetInt32("reward_coin"); quest.reward.item_id = reader.GetString("reward_item_id"); } if (null == quest) { throw new System.Exception("invalid quest(quest_id:" + questID + ")"); } } { Util.Sqlite.DataReader reader = Database.Execute(Database.Type.MetaData, "SELECT quest_step, progress_name, progress_type, progress_key, progress_goal FROM meta_quest_progress WHERE quest_id='" + questID + "' ORDER BY quest_step" ); while (true == reader.Read()) { QuestProgress progress = new QuestProgress(); progress.name = reader.GetString("progress_name"); progress.type = reader.GetString("progress_type"); progress.key = reader.GetString("progress_key"); progress.goal = reader.GetInt32("progress_goal"); progress.quest = quest; quest.AddProgress(reader.GetInt32("quest_step"), progress); } if (0 == quest.progresses.Count) { throw new System.Exception("quest progress count is 0(quest_id:" + questID + ")"); } } { Util.Sqlite.DataReader reader = Database.Execute(Database.Type.MetaData, "SELECT dialogue_type, dialogue_num, dialogue_text, sprite_path FROM meta_quest_dialogue WHERE quest_id='" + questID + "' ORDER BY dialogue_type, dialogue_num" ); while (true == reader.Read()) { Quest.Dialogue dialogue = new Quest.Dialogue(); dialogue.sprite_path = reader.GetString("sprite_path"); dialogue.text = reader.GetString("dialogue_text"); int dialogueType = reader.GetInt32("dialogue_type"); switch (dialogueType) { case 1: quest.start_dialogues.Add(dialogue); break; case 2: break; case 3: quest.complete_dialogues.Add(dialogue); break; } } } return(quest); }