示例#1
0
        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;
        }
示例#3
0
        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());
        }