private void Awake() { if (instance == null) { instance = this; } }
public override object Read(ES2Reader reader) { AchievementData data = GetOrCreate <AchievementData>(); Read(reader, data); return(data); }
public void ReadAchievementData(string[] data) { for (int i = 1; i < data.Length; i++) { List <AchievementData> achieveData = new List <AchievementData> (); AchievementData achieve = new AchievementData(); string[] info = data[i].Split(','); if (info.Length >= 6) { int id = 0; int.TryParse(info[0], out id); achieve.describe = info[1]; int.TryParse(info[2], out achieve.num); int.TryParse(info[3], out achieve.rewardType); int.TryParse(info[4], out achieve.rewardId); int.TryParse(info[5], out achieve.rewardNum); if (!achievement_data.ContainsKey(id)) { achieveData.Add(achieve); achievement_data.Add(id, achieveData); } else { achieveData = achievement_data[id]; achieveData.Add(achieve); achievement_data[id] = achieveData; } } } }
// ========================================================================== // /* public - [Do~Something] Function */ public void DoInit <TAchievementData>(TAchievementData[] arrSourceData, IAchievementLogic[] arrAchievementLogicList, params IAchievementProgressData[] arrProgressData) where TAchievementData : IAchievementData { Dictionary <string, IAchievementData> mapAchivementData_Source; Dictionary <string, IAchievementProgressData> mapAchievementData_Progress; _mapAchievementData.Clear(); _listAchievementLogicList = arrAchievementLogicList.OrderBy(p => p.iAchievementLogic_Order).ToList(); try { mapAchivementData_Source = arrSourceData.ToDictionary(p => p.strAchievementKey, p => (IAchievementData)p); mapAchievementData_Progress = arrProgressData.ToDictionary(p => p.strAchievementKey); } catch (System.Exception e) { Debug.LogError($"{nameof(AchievementDataManager)}-{nameof(DoInit)} - Fail - {e}", this); return; } foreach (var pQuestSource in mapAchivementData_Source.Values) { string strQuestKey = pQuestSource.strAchievementKey; AchievementData pQuestData = new AchievementData(pQuestSource, _listAchievementLogicList); pQuestData.OnUpdateAchieve.Subscribe += OnUpdateAchievement_Subscribe; IAchievementProgressData pProgressData; if (mapAchievementData_Progress.TryGetValue(strQuestKey, out pProgressData)) { pQuestData.Event_SetProgressData(pProgressData); } _mapAchievementData.Add(strQuestKey, pQuestData); } }
internal bool Claim(int GlobalId) { this.Refresh(); Data Data = CSV.Tables.Get(Gamefile.Achievements).GetDataWithID(GlobalId); if (Data != null) { if (Data is AchievementData) { AchievementData Achievement = (AchievementData)Data; if (this.GetCountByData(Achievement) >= Achievement.ActionCount) { if (this.Player.Achievements.Add(GlobalId)) { this.Player.AddDiamonds(Achievement.DiamondReward); this.Player.AddExperience(Achievement.ExpReward); return(true); } } } } return(false); }
public void RevcieCallBack(C2sSprotoType.achievement_reward_collect.response resp) { curCallBackView.receiveBtn.isEnabled = true; if (resp.errorcode == 1) { MainUI.Instance.GetItemClick(curCallBackView.data.data.rewarData); for (int i = 0; i < curCallBackView.data.data.rewarData.Count; i++) { BagMgr.Instance.AddItemNumById(curCallBackView.data.data.rewarData[i].data.id, curCallBackView.data.data.rewarData[i].curCount); } AchievementViewData view = new AchievementViewData(); AchievementData data = GameShared.Instance.GetAchievementData((int)resp.next.csv_id); view.curProgress = (int)resp.next.finished; view.data = data; if (view.data.condition != 0 && view.curProgress < 100) { view.data.curStar--; } view.sort = GetSort(view); view.isReceive = resp.next.reward_collected; view.isUnlock = resp.next.is_unlock; Unlock(curCallBackView, view); } curCallBackView = null; }
//アチーブメントが達成しているかをチェック public bool Check(AchievementData achievementData) { switch (achievementData.AchievementConditionType) { case AchievementConditionType.GamePlay: return(true); case AchievementConditionType.ClearStage: return(PlayerStatus.GetStageClear(achievementData.ClearStage1)); case AchievementConditionType.ContinuousCount: if (true) { return(true); } case AchievementConditionType.MissCount: return(achievementData.MissCount1 >= PlayerStatus.GetMissCount()); case AchievementConditionType.PerfectsCount: return(achievementData.PerfectsCount1 >= PlayerStatus.GetPerfectsCount()); case AchievementConditionType.StageClearCount: return(achievementData.StageClearCount1 >= PlayerStatus.GetClearCount()); case AchievementConditionType.ThrowCount: return(achievementData.ThrowCount1 >= PlayerStatus.GetThorwCount()); } return(false); }
public RecordManager(string text) { string[] frameText = text.Split('\n'); numFrames = frameText.Length - 1; //handle the first row string[] first_row_data = frameText[0].Split('|'); string[] robotAIText = first_row_data[0].Split('*'); robotAIData = new RobotAIData[robotAIText.Length]; for(int i = 0; i<robotAIText.Length; i++) { robotAIData[i] = new RobotAIData(robotAIText[i]); } mapData = new MapData(first_row_data[1],first_row_data[2],first_row_data[3]); string[] achievementText = first_row_data[4].Split('*'); achievementData = new AchievementData[achievementText.Length]; for(int i = 0; i<achievementText.Length; i++) { achievementData[i] = new AchievementData(achievementText[i]); } winnerID = Convert.ToInt32(first_row_data[5]); //handle the following frame rows frameData = new FrameData[numFrames]; for(int i = 1; i < frameText.Length; i++) { frameData[i-1] = new FrameData(frameText[i]); } }
/// <summary> /// 所有的成就数据 /// </summary> /// <returns>列表</returns> public List <AchievementData> GetAllAchieveData() { //读取地址 string data = File.ReadAllText(Application.dataPath + "/Achievements/Archievements.json", Encoding.UTF8); //litJson读取Json JsonData root = JsonMapper.ToObject(data); //数组节点名 JsonData node = root["achieves"]; List <AchievementData> alist = new List <AchievementData>(); for (int i = 0; i < node.Count; i++) { AchievementData ad = new AchievementData(); ad.name = (string)node[i]["name"]; ad.id = (int)node[i]["id"]; ad.icon = (string)node[i]["icon"]; ad.describe = (string)node[i]["describe"]; ad.state = (bool)node[i]["state"]; ad.time = (string)node[i]["time"]; alist.Add(ad); } return(alist); }
/// <summary> /// 完成成就测试 /// </summary> public void AchieveTest() { //传入新的成就列表 AchievementData ad = new AchievementData(6, DateTime.Now.ToShortDateString(), true); SavePlayerAchieveData(allAchieveData, ad); }
public bool AddAchievement(string AchievementId) { //Debug.Log("AddAchievement called"); AchievementData achievement = ScriptableObject.CreateInstance("AchievementData") as AchievementData; AchievementEntity achievementEntity = new AchievementEntity(achievement); achievementEntity.Data.hideFlags = HideFlags.None; achievementEntity.Data.Type = AchievementType.ZenArcher; achievementEntity.Data.OnlyMainCampaign = true; achievementEntity.Data.name = AchievementId.Substring(4); // removing "ACH_" achievementEntity.Data.SteamId = AchievementId; achievementEntity.Data.GogId = AchievementId; achievementEntity.Manager = AchievementManager; achievementEntity.Unlock(); AchievementLogicFactory.Create(achievementEntity).Activate(); AchievementManager.Append(achievementEntity); SteamAchievementsManager sam = SteamAchievementsManager.Instance; sam.Achievements = AchievementManager; SteamUserStats.SetAchievement(achievementEntity.Data.SteamId); Debug.Log($"{achievementEntity.Data.name} added to profile"); return(true); }
public override void Write(object obj, ES2Writer writer) { AchievementData data = (AchievementData)obj; // Add your writer.Write calls here. writer.Write(data.Achievements); }
public void onAcceptAchievementByServer(AchievementData data) { _d.runningDatas.put(data.id, data); me.quest.reMakeTask(data.task, FunctionType.Achievement, data.id); data.task.reloadConfig(); me.quest.addRunningTask(data.task); }
public void ReadData() { try { if (System.IO.File.Exists(path)) { string contents = System.IO.File.ReadAllText(path); AchievementWrapper wrapper = JsonUtility.FromJson <AchievementWrapper>(contents); achievementData = wrapper.achievementData; } else { Debug.Log("Unable to read the save data, file does not exist... creating new data"); //If there's no data then we need to create some new data. //If there's no achievements already premade, we create some empty data. //This should not happen as we can set up the default instance of achievements in the inspector. if (achievementData.achievements.Count < 1) { achievementData = new AchievementData(); } SaveData(); } } catch (System.Exception ex) { Debug.Log(ex.Message); } }
/// <summary> /// 获得新成就时,创建提示 /// </summary> /// <param name="_data"></param> void CreateAchievementTip(AchievementData _data) { if (acheievePrefab == null) { acheievePrefab = exResources.GetResource(ResourceType.GUI, "mainUI/Achievement") as GameObject; } if (acheievePrefab == null) { Debug.Log("找不到相关预制!"); return; } GameObject achieveGo = Instantiate(acheievePrefab) as GameObject; achieveGo.transform.parent = this.gameObject.transform; achieveGo.transform.localPosition = acheievePrefab.transform.localPosition; acheievePrefab = null; achieveGo.transform.localScale = Vector3.one; achieveGo.SetActive(true); AchievementTip achievementTip = achieveGo.GetComponent <AchievementTip>(); if (achievementTip != null) { achievementTip.SetAchievementTip(_data); } achieveTipList.Add(achieveGo); CancelInvoke("DestoryAchieveGo"); Invoke("DestoryAchieveGo", 5.0f); }
public void SetActive(AchievementData achievementData) { // get achievement config Debug.Log("Get config for " + achievementData.achievement + " achievement"); AchievementConfig achievementConfig = Array.Find(AchievementsManager.Instance.AchievementConfigs, element => element.achievement == achievementData.achievement); // set name achievementNameText.text = achievementConfig.displayName; // convert time to timespan DateTime dateTime = new DateTime(achievementData.timeTicksWhenAchieved); // set date achievementDateText.text = dateTime.ToShortDateString(); // verify if achivement additional info is not empty if ((achievementData.additionalDetails != null) && (achievementData.additionalDetails != "")) { // set description from data achievementDescriptionText.text = achievementData.additionalDetails; } else { // set description from config achievementDescriptionText.text = achievementConfig.description; } // activate it gameObject.SetActive(true); }
private void ShowAchievementPopUp(AchievementData achievement) { _popUpText.text = achievement.Title; _popUpShowDurationCounter = _popUpShowDuration; _popUpTransform.localScale = Vector2.right; }
/// <summary> /// 是否数据一致 /// </summary> protected override bool toDataEquals(BaseData data) { AchievementData mData = (AchievementData)data; if (this.id != mData.id) { return(false); } if (mData.task != null) { if (this.task == null) { return(false); } if (!this.task.dataEquals(mData.task)) { return(false); } } else { if (this.task != null) { return(false); } } return(true); }
//アチーブメントの表示演出 IEnumerator CoOpenBoad(AchievementData data) { //今表示中のデータ isPlaying = true; //表示テキストを設定 titleText.text = data.titleText; detailText.text = data.detailText; //アチーブメントを表示開始 startAnimation.Play(); while (startAnimation.IsPlaying) { yield return(0); } //しばらく表示する yield return(new WaitForSeconds(waitTime)); //アチーブメントを表示をしまう endAnimation.Play(); while (endAnimation.IsPlaying) { yield return(0); } isPlaying = false; }
public override bool TakeAction() { var achievement = GetAchievement.AchievementList.Find(t => (t.ID == id)); var config = new ShareCacheStruct <Config_Achievement>().FindKey(id); if (achievement == null || config == null || achievement.ID == 0 || achievement.Status != TaskStatus.Finished) { return(false); } type = achievement.Type; switch (config.RewardsType) { case TaskAwardType.Gold: { BigInteger bi = BigInteger.Parse(config.RewardsItemNum); UserHelper.RewardsGold(Current.UserId, bi); } break; case TaskAwardType.Diamond: { UserHelper.RewardsDiamond(Current.UserId, Convert.ToInt32(config.RewardsItemNum)); } break; case TaskAwardType.Item: { UserHelper.RewardsItem(Current.UserId, config.RewardsItemID, Convert.ToInt32(config.RewardsItemNum)); } break; } // 新成就 var stock = new ShareCacheStruct <Config_Achievement>().FindAll(t => (t.AchievementType == achievement.Type)); var select = stock.Find(t => (t.id > achievement.ID)); if (select != null) { achievement.ID = select.id; achievement.Status = TaskStatus.No; } else { achievement.Status = TaskStatus.Received; } //achievement.Count = 0; if (type == AchievementType.Gem) { achievement.Count = "0"; } //else if (type == AchievementType.OpenSoul) // achievement.Count = "0"; receipt = achievement; return(true); }
/// <summary> /// 读取字节流(完整版) /// </summary> protected override void toReadBytesFull(BytesReadStream stream) { base.toReadBytesFull(stream); stream.startReadObj(); BaseData dataT = stream.readDataFullNotNull(); if (dataT != null) { if (dataT is AchievementData) { this.data = (AchievementData)dataT; } else { this.data = new AchievementData(); if (!(dataT.GetType().IsAssignableFrom(typeof(AchievementData)))) { stream.throwTypeReadError(typeof(AchievementData), dataT.GetType()); } this.data.shadowCopy(dataT); } } else { this.data = null; } stream.endReadObj(); }
public void SaveGame() { if (player.mana > 0) { player.takeOneMana(); setInactiveUISave(); SavePointEffect savePointEffect = playerSavePoint.GetComponent <SavePointEffect>(); savePointEffect.runSave1Particle(); PlayerData playerData = new PlayerData(player, godTreeBehavior); AchievementData achievement = new AchievementData(this); ItemData itemData = new ItemData(itemManager, uIMapManager, keyDoorManager); saveLoadManager.SaveGame(playerData, achievement, itemData); savePointEffect.runSave2Particle(); setNotiSavedGame(); if (player.tutorialMapEnable) { uIPlayGame.setActiveArrowUIMap(true); player.tutorialMapEnable = false; } } else { setNotiCanNotSaveGame(); } }
/// <summary> /// Increases the count of the specified achievement progress. /// </summary> /// <param name="Data">The data.</param> /// <param name="Count">The count.</param> internal void IncreaseAchievementProgress(AchievementData Data, int Count) { if (this.Level.GameMode.State != State.Replay) { this.Level.Player.AchievementProgresses.Add(Data, Count); } }
void readAchievement() { AchievementInfo = new Dictionary <int, AchievementData>(); XmlDocument xmlDoc = new XmlDocument(); TextAsset path = Resources.Load <TextAsset>(GameConfig.DatabasePathAchievement); xmlDoc.LoadXml(path.text); XmlNodeList listAchievement = xmlDoc.GetElementsByTagName("Achievement"); foreach (XmlNode infoAchievement in listAchievement) { AchievementData achievementData = new AchievementData(); achievementData.Icon = infoAchievement.SelectSingleNode("Icon").InnerText; achievementData.Name = infoAchievement.SelectSingleNode("Name").InnerText; achievementData.Value = infoAchievement.SelectSingleNode("Value").InnerText; XmlNodeList listReward = infoAchievement.SelectNodes("Reward"); foreach (XmlNode infoReward in listReward) { achievementData.RewardAmount = int.Parse(infoReward.SelectSingleNode("Amount").InnerText); achievementData.RewardValue = infoReward.SelectSingleNode("Value").InnerText; } AchievementInfo.Add(int.Parse(infoAchievement.Attributes["ID"].InnerText.Trim()), achievementData); } }
/// <summary> /// Refreshes the specified achievement progress. /// </summary> /// <param name="Data">The data.</param> /// <param name="Count">The count.</param> internal void RefreshAchievementProgress(AchievementData Data, int Count) { if (this.Level.GameMode.State != State.Replay) { this.Level.Player.AchievementProgresses.Set(Data, Math.Max(Count, this.Level.Player.AchievementProgresses.GetCount(Data))); } }
public void SaveFile() { string strFullFileName = Application.persistentDataPath + "/" + File_Name; if (File.Exists(strFullFileName)) { File.Delete(strFullFileName); return; } FileStream fs = new FileStream(strFullFileName, FileMode.Create); StreamWriter sw = new StreamWriter(fs, Encoding.UTF8); string line; for (int i = 0; i < GameConst.Achievement_Num; i++) { AchievementData data = AchievementTableManager.Instance().GetAchievementDataByIndex(i); line = data.m_nId.ToString() + ":" + m_aAchievementStatus [i].ToString(); sw.WriteLine(line); } sw.Close(); fs.Close(); }
private void Awake() { m_EvolutionData = ConfigManager.Instance.FindData <EvolutionData>(Consts.Config_EvolutionData); m_AchievementData = ConfigManager.Instance.FindData <AchievementData>(Consts.Config_AchievementData); m_ShopData = ConfigManager.Instance.FindData <ShopData>(Consts.Config_ShopData); LoadInfoByLocal(); }
public static AchievementData LoadAchievements() { string path = Application.persistentDataPath + "/savedata.dyc"; if (File.Exists(path)) { BinaryFormatter formatter = new BinaryFormatter(); FileStream stream = new FileStream(path, FileMode.Open); if (stream.Length > 0) { AchievementData data = formatter.Deserialize(stream) as AchievementData; stream.Close(); return(data); } else { return(null); } } else { Debug.LogError("Save file not found in " + path); return(null); } }
public override void Read(ES2Reader reader, object c) { AchievementData data = (AchievementData)c; // Add your reader.Read calls here to read the data into the object. data.Achievements = reader.ReadList <AchievementMeta>(); }
protected Achievement(AchievementData data, List <AchievementCondition> conditions) { this.Data = data; Name = I18N.Instance.Get(data.NameKey); Description = I18N.Instance.Get(data.DescriptionKey); Conditions = conditions; }
/// <summary> /// 写入字节流(简版) /// </summary> protected override void toWriteBytesSimple(BytesWriteStream stream) { if (this.runningDatas != null) { stream.writeLen(this.runningDatas.size()); if (!this.runningDatas.isEmpty()) { AchievementData[] runningDatasVValues = this.runningDatas.getValues(); for (int runningDatasVI = runningDatasVValues.Length - 1; runningDatasVI >= 0; --runningDatasVI) { AchievementData runningDatasV = runningDatasVValues[runningDatasVI]; if (runningDatasV != null) { if (runningDatasV != null) { stream.writeDataSimpleNotNull(runningDatasV); } else { nullObjError("runningDatasV"); } } } } } else { nullObjError("runningDatas"); } if (this.completeDatas != null) { stream.writeLen(this.completeDatas.size()); if (!this.completeDatas.isEmpty()) { AchievementCompleteData[] completeDatasVValues = this.completeDatas.getValues(); for (int completeDatasVI = completeDatasVValues.Length - 1; completeDatasVI >= 0; --completeDatasVI) { AchievementCompleteData completeDatasV = completeDatasVValues[completeDatasVI]; if (completeDatasV != null) { if (completeDatasV != null) { stream.writeDataSimpleNotNull(completeDatasV); } else { nullObjError("completeDatasV"); } } } } } else { nullObjError("completeDatas"); } }
void checkAchievement(AchievementController controller, int id, AchievementData data, object text) { if(id<=2) { if(LevelConfig.getAchievementKillEnemy(id,data,text)) { controller.spriteOutline.color = LevelConfig.ColorAchievementCompletedOutline; controller.spriteBackground.color = LevelConfig.ColorAchievementCompletedBackground; controller.completeIcon.SetActive(true); } } }
public static bool getAchievementKillEnemy(int id, AchievementData data, object text) { int result = -1; bool b = false; if(int.TryParse(text.ToString(), out result)) { if(result < int.Parse(data.Value)) b = false; else b = true; } return b; }
public static string getAchievementTextValue(int id, AchievementData data, object text) { string s = ""; if(id <= 5) // neu dang la nhiem vu giet x enemies { int result = -1; if(int.TryParse(text.ToString(), out result)) { s += (result <= int.Parse(data.Value) ? result : int.Parse(data.Value)).ToString() + " / " + data.Value; } else s += "0 / " + data.Value; } return s; }
private void UpdateCurAchievement(int type, bool daily) { List<AchievementInfo> list = Achievement.GetAchievements(type); if (list == null) { return; } AchievementInfo achievementInfo = null; AchievementData achievementData = null; int num = 0; if (daily) { num = 1; } for (int i = 0; i < list.Count; i++) { if (list[i].Daily == daily) { achievementInfo = list[i]; achievementData = this.GetAchievement(achievementInfo.ID); if (achievementData == null || !achievementData.TakeReward) { break; } } } if (achievementInfo == null) { return; } if (this.curAchievements[num, type] == null) { this.curAchievements[num, type] = new AchievementDataEx(); } if (achievementData == null) { achievementData = new AchievementData(); achievementData.AchievementID = achievementInfo.ID; achievementData.Value = 0; achievementData.CoolDown = 0; achievementData.TakeReward = false; this.achievements.Add(achievementData.AchievementID, achievementData); } this.curAchievements[num, type].Data = achievementData; this.curAchievements[num, type].Info = achievementInfo; }
void readAchievement() { AchievementInfo = new Dictionary<int, AchievementData>(); XmlDocument xmlDoc = new XmlDocument(); TextAsset path = Resources.Load<TextAsset>(GameConfig.DatabasePathAchievement); xmlDoc.LoadXml(path.text); XmlNodeList listAchievement = xmlDoc.GetElementsByTagName("Achievement"); foreach (XmlNode infoAchievement in listAchievement) { AchievementData achievementData = new AchievementData(); achievementData.Icon = infoAchievement.SelectSingleNode("Icon").InnerText; achievementData.Name = infoAchievement.SelectSingleNode("Name").InnerText; achievementData.Value = infoAchievement.SelectSingleNode("Value").InnerText; XmlNodeList listReward = infoAchievement.SelectNodes("Reward"); foreach (XmlNode infoReward in listReward) { achievementData.RewardAmount = int.Parse(infoReward.SelectSingleNode("Amount").InnerText); achievementData.RewardValue = infoReward.SelectSingleNode("Value").InnerText; } AchievementInfo.Add(int.Parse(infoAchievement.Attributes["ID"].InnerText.Trim()), achievementData); } }