internal DevelopmentTopicInfo(DevelopmentProgress tech, DevelopmentResult investmentResult) { this.topic = tech.Topic; this.textVars = new Var(DevelopmentTopic.LevelKey, tech.NextLevel). And(DevelopmentTopic.PriorityKey, tech.Priority).Get; this.Cost = tech.Topic.Cost.Evaluate(textVars); this.InvestedPoints = tech.InvestedPoints; this.Investment = investmentResult.InvestedPoints; this.Level = tech.Level; this.NextLevel = investmentResult.CompletedCount > 1 ? tech.Level + (int)investmentResult.CompletedCount : tech.NextLevel; }
public override void LoadFromResponse(string apiname, dynamic data) { base.LoadFromResponse(apiname, (object)data); IsSucceeded = (int)data.api_create_flag != 0; Materials = Array.AsReadOnly((int[])data.api_material); void AddToDatabase(dynamic equipmentData) { var eq = new EquipmentData(); eq.LoadFromResponse(apiname, Codeplex.Data.DynamicJson.Parse(equipmentData.ToString())); KCDatabase.Instance.Equipments.Add(eq); } bool isOldAPI = data.api_shizai_flag(); if (isOldAPI) { // 旧 API フォーマット (-2019/09/30 12:00) Results = Array.AsReadOnly(new[] { IsSucceeded ? new DevelopmentResult(data.api_slot_item) : new DevelopmentResult() }); if (IsSucceeded) { AddToDatabase(data.api_slot_item); } } else { // 新 API フォーマット (2019/09/30 21:00-) dynamic[] elems = data.api_get_items; var results = new DevelopmentResult[elems.Length]; for (int i = 0; i < elems.Length; i++) { results[i] = new DevelopmentResult(elems[i]); if (results[i].IsSucceeded) { AddToDatabase(elems[i]); } } Results = Array.AsReadOnly(results); } KCDatabase.Instance.Material.LoadFromResponse(apiname, data.api_material); }
public void Progress(DevelopmentResult progressData) { this.Level += (int)progressData.CompletedCount; this.InvestedPoints = progressData.LeftoverPoints; }
internal DevelopmentReport(DevelopmentResult techProgress) { this.TechProgress = techProgress; }