public SaveDataSlotViewModel(RootViewModel rootViewModel, WeaponUsageSaveSlotInfo saveSlotInfo) { SaveSlotInfo = saveSlotInfo; SlotNumber = saveSlotInfo.SlotNumber; Name = saveSlotInfo.Name; HR = saveSlotInfo.HR; MR = saveSlotInfo.MR; Playtime = MiscUtils.PlaytimeToGameString(saveSlotInfo.Playtime); LowRank = new WeaponUsageViewModel(rootViewModel, ViewType.LowRank, saveSlotInfo.LowRank); HighRank = new WeaponUsageViewModel(rootViewModel, ViewType.HighRank, saveSlotInfo.HighRank); MasterRank = new WeaponUsageViewModel(rootViewModel, ViewType.MasterRank, saveSlotInfo.MasterRank); Investigations = new WeaponUsageViewModel(rootViewModel, ViewType.Investigations, saveSlotInfo.Investigations); GuidingLands = new WeaponUsageViewModel(rootViewModel, ViewType.GuidingLands, saveSlotInfo.GuidingLands); WeaponUsage all = saveSlotInfo.LowRank + saveSlotInfo.HighRank + saveSlotInfo.MasterRank + saveSlotInfo.Investigations + saveSlotInfo.GuidingLands; All = new WeaponUsageViewModel(rootViewModel, ViewType.All, all); }
public WeaponUsageViewModel(RootViewModel rootViewModel, ViewType viewType, WeaponUsage weaponUsage) { if (rootViewModel == null) { throw new ArgumentNullException(nameof(rootViewModel)); } this.rootViewModel = rootViewModel; this.viewType = viewType; zoomFactor = PersistedZoomFactor; refreshRendersThrottler = new Throttler(ForceRender, 500); ushort[] arrayValues = new ushort[] { weaponUsage.GreatSword, weaponUsage.LongSword, weaponUsage.SwordAndShield, weaponUsage.DualBlades, weaponUsage.Hammer, weaponUsage.HuntingHorn, weaponUsage.Lance, weaponUsage.Gunlance, weaponUsage.SwitchAxe, weaponUsage.ChargeBlade, weaponUsage.InsectGlaive, weaponUsage.LightBowgun, weaponUsage.HeavyBowgun, weaponUsage.Bow }; ushort min = arrayValues.Min(); ushort max = arrayValues.Max(); double length = max - min; viewModels = arrayValues .Select((wu, i) => new WeaponUsageValueViewModel(weaponTypes[i], wu, length > 0 ? (wu - min) / length : 1.0)) .ToList(); Values = ApplySorting().ToList(); IsVisible = viewType == rootViewModel.ViewType; rootViewModel.SortingChanged += OnSortingChanged; rootViewModel.ViewTypeChanged += OnViewTypeChanged; }
private void PrintWeaponUsage(WeaponUsage weaponUsage) { var sb = new StringBuilder(" "); sb.Append($"GS: {weaponUsage.GreatSword}, "); sb.Append($"LS: {weaponUsage.LongSword}, "); sb.Append($"SnS: {weaponUsage.SwordAndShield}, "); sb.Append($"DB: {weaponUsage.DualBlades}, "); sb.Append($"Hammer: {weaponUsage.Hammer}, "); sb.Append($"HH: {weaponUsage.HuntingHorn}, "); sb.Append($"Lance: {weaponUsage.Lance}, "); sb.Append($"GL: {weaponUsage.Gunlance}, "); sb.Append($"SA: {weaponUsage.SwitchAxe}, "); sb.Append($"CB: {weaponUsage.ChargeBlade}, "); sb.Append($"IG: {weaponUsage.InsectGlaive}, "); sb.Append($"LBG: {weaponUsage.LightBowgun}, "); sb.Append($"HBG: {weaponUsage.HeavyBowgun}, "); sb.Append($"Bow: {weaponUsage.Bow}"); Console.WriteLine(sb.ToString()); }