Skip to content

Commit

Permalink
monster wiki fullfilled
Browse files Browse the repository at this point in the history
  • Loading branch information
Lightczx committed Feb 25, 2023
1 parent 54535cd commit e50c1b9
Show file tree
Hide file tree
Showing 37 changed files with 739 additions and 88 deletions.
1 change: 1 addition & 0 deletions src/Snap.Hutao/Snap.Hutao/App.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
<shmmc:GachaAvatarIconConverter x:Key="GachaAvatarIconConverter"/>
<shmmc:GachaEquipIconConverter x:Key="GachaEquipIconConverter"/>
<shmmc:ItemIconConverter x:Key="ItemIconConverter"/>
<shmmc:MonsterIconConverter x:Key="MonsterIconConverter"/>
<shmmc:PropertyDescriptor x:Key="PropertyDescriptor"/>
<shmmc:QualityColorConverter x:Key="QualityColorConverter"/>
<shmmc:WeaponTypeIconConverter x:Key="WeaponTypeIconConverter"/>
Expand Down
2 changes: 1 addition & 1 deletion src/Snap.Hutao/Snap.Hutao/Core/Caching/ImageCache.cs
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ private async Task DownloadFileAsync(Uri uri, string baseFile)
else if (message.StatusCode == HttpStatusCode.NotFound)
{
// directly goto https://static.hut.ao
retryCount = 3;
retryCount += 3;
}
else if (message.StatusCode == HttpStatusCode.TooManyRequests)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// Licensed under the MIT license.

using CommunityToolkit.Mvvm.ComponentModel;
using Snap.Hutao.Model.Metadata;
using Snap.Hutao.Model.Metadata.Item;

namespace Snap.Hutao.Model.Binding.Cultivation;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.

using Snap.Hutao.Model.Metadata;
using Snap.Hutao.Model.Metadata.Item;

namespace Snap.Hutao.Model.Binding.Cultivation;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.

using Snap.Hutao.Model.Metadata;
using Snap.Hutao.Model.Metadata.Avatar;
using Snap.Hutao.Model.Metadata.Item;
using Snap.Hutao.Model.Primitive;

namespace Snap.Hutao.Model.Binding.Hutao;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// Licensed under the MIT license.

using CommunityToolkit.Mvvm.ComponentModel;
using Snap.Hutao.Model.Metadata;
using Snap.Hutao.Model.Metadata.Item;

namespace Snap.Hutao.Model.Binding.Inventory;

Expand Down
16 changes: 16 additions & 0 deletions src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/FightProperty.cs
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,8 @@ internal enum FightProperty
/// <summary>
/// 物理抗性提升
/// </summary>
[LocalizationKey("ServiceAvatarInfoPropertyRESPhysical")]
[Format(FormatMethod.Percent)]
FIGHT_PROP_PHYSICAL_SUB_HURT = 29,

/// <summary>
Expand Down Expand Up @@ -233,36 +235,50 @@ internal enum FightProperty
/// <summary>
/// 火元素抗性提升
/// </summary>
[LocalizationKey("ServiceAvatarInfoPropertyRESFire")]
[Format(FormatMethod.Percent)]
FIGHT_PROP_FIRE_SUB_HURT = 50,

/// <summary>
/// 雷元素抗性提升
/// </summary>
[LocalizationKey("ServiceAvatarInfoPropertyRESElec")]
[Format(FormatMethod.Percent)]
FIGHT_PROP_ELEC_SUB_HURT = 51,

/// <summary>
/// 雷元素抗性提升
/// </summary>
[LocalizationKey("ServiceAvatarInfoPropertyRESWater")]
[Format(FormatMethod.Percent)]
FIGHT_PROP_WATER_SUB_HURT = 52,

/// <summary>
/// 草元素抗性提升
/// </summary>
[LocalizationKey("ServiceAvatarInfoPropertyRESGrass")]
[Format(FormatMethod.Percent)]
FIGHT_PROP_GRASS_SUB_HURT = 53,

/// <summary>
/// 风元素抗性提升
/// </summary>
[LocalizationKey("ServiceAvatarInfoPropertyRESWind")]
[Format(FormatMethod.Percent)]
FIGHT_PROP_WIND_SUB_HURT = 54,

/// <summary>
/// 岩元素抗性提升
/// </summary>
[LocalizationKey("ServiceAvatarInfoPropertyRESRock")]
[Format(FormatMethod.Percent)]
FIGHT_PROP_ROCK_SUB_HURT = 55,

/// <summary>
/// 冰元素抗性提升
/// </summary>
[LocalizationKey("ServiceAvatarInfoPropertyRESIce")]
[Format(FormatMethod.Percent)]
FIGHT_PROP_ICE_SUB_HURT = 56,

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.

using Snap.Hutao.Model.Binding;
using Snap.Hutao.Model.Binding.Gacha;
using Snap.Hutao.Model.Binding.Hutao;
using Snap.Hutao.Model.Calculable;
using Snap.Hutao.Model.Metadata.Abstraction;
using Snap.Hutao.Model.Metadata.Converter;
using Snap.Hutao.Model.Metadata.Item;

namespace Snap.Hutao.Model.Metadata.Avatar;

Expand Down Expand Up @@ -47,7 +47,7 @@ public ICalculableAvatar ToCalculable()
/// 转换为基础物品
/// </summary>
/// <returns>基础物品</returns>
public Item ToItemBase()
public Binding.Item ToItemBase()
{
return new()
{
Expand Down
18 changes: 18 additions & 0 deletions src/Snap.Hutao/Snap.Hutao/Model/Metadata/BaseValue.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.

using Snap.Hutao.Model.Intrinsic;

namespace Snap.Hutao.Model.Metadata;

/// <summary>
Expand All @@ -22,4 +24,20 @@ internal class BaseValue
/// 基础防御力
/// </summary>
public float DefenseBase { get; set; }

/// <summary>
/// 获取值
/// </summary>
/// <param name="fightProperty">战斗属性</param>
/// <returns>值</returns>
public float GetValue(FightProperty fightProperty)
{
return fightProperty switch
{
FightProperty.FIGHT_PROP_BASE_HP => HpBase,
FightProperty.FIGHT_PROP_BASE_ATTACK => AttackBase,
FightProperty.FIGHT_PROP_BASE_DEFENSE => DefenseBase,
_ => 0,
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,14 @@ internal sealed class ItemIconConverter : ValueConverter<string, Uri>
/// <returns>链接</returns>
public static Uri IconNameToUri(string name)
{
return Web.HutaoEndpoints.StaticFile("ItemIcon", $"{name}.png").ToUri();
if (name.StartsWith("UI_RelicIcon_"))
{
return RelicIconConverter.IconNameToUri(name);
}
else
{
return Web.HutaoEndpoints.StaticFile("ItemIcon", $"{name}.png").ToUri();
}
}

/// <inheritdoc/>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.

using Snap.Hutao.Control;

namespace Snap.Hutao.Model.Metadata.Converter;

/// <summary>
/// 怪物图标转换器
/// </summary>
internal sealed class MonsterIconConverter : ValueConverter<string, Uri>
{
/// <summary>
/// 名称转Uri
/// </summary>
/// <param name="name">名称</param>
/// <returns>链接</returns>
public static Uri IconNameToUri(string name)
{
return Web.HutaoEndpoints.StaticFile("MonsterIcon", $"{name}.png").ToUri();
}

/// <inheritdoc/>
public override Uri Convert(string from)
{
return IconNameToUri(from);
}
}
50 changes: 50 additions & 0 deletions src/Snap.Hutao/Snap.Hutao/Model/Metadata/Item/Display.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.

using Snap.Hutao.Model.Intrinsic;
using Snap.Hutao.Model.Primitive;
using System.Collections.Immutable;

namespace Snap.Hutao.Model.Metadata.Item;

/// <summary>
/// 展示物品
/// </summary>
[HighQuality]
internal class Display
{
/// <summary>
/// 物品Id
/// </summary>
public MaterialId Id { get; set; }

/// <summary>
/// 等级
/// </summary>
public ItemQuality RankLevel { get; set; }

/// <summary>
/// 物品类型
/// </summary>
public ItemType ItemType { get; set; }

/// <summary>
/// 图标
/// </summary>
public string Icon { get; set; } = default!;

/// <summary>
/// 名称
/// </summary>
public string Name { get; set; } = default!;

/// <summary>
/// 描述
/// </summary>
public string Description { get; set; } = default!;

/// <summary>
/// 类型描述
/// </summary>
public string TypeDescription { get; set; } = default!;
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
using Snap.Hutao.Model.Primitive;
using System.Collections.Immutable;

namespace Snap.Hutao.Model.Metadata;
namespace Snap.Hutao.Model.Metadata.Item;

/// <summary>
/// 材料
/// </summary>
internal sealed class Material
internal sealed class Material : Display
{
private static readonly ImmutableHashSet<MaterialId> MondayThursdayItems = new HashSet<MaterialId>
{
Expand Down Expand Up @@ -48,46 +48,11 @@ internal sealed class Material
114045, 114046, 114047, 114048, // 谧林涓露
}.ToImmutableHashSet();

/// <summary>
/// 物品Id
/// </summary>
public MaterialId Id { get; set; }

/// <summary>
/// 等级
/// </summary>
public ItemQuality RankLevel { get; set; }

/// <summary>
/// 物品类型
/// </summary>
public ItemType ItemType { get; set; }

/// <summary>
/// 材料类型
/// </summary>
public MaterialType MaterialType { get; set; }

/// <summary>
/// 图标
/// </summary>
public string Icon { get; set; } = default!;

/// <summary>
/// 名称
/// </summary>
public string Name { get; set; } = default!;

/// <summary>
/// 描述
/// </summary>
public string Description { get; set; } = default!;

/// <summary>
/// 类型描述
/// </summary>
public string TypeDescription { get; set; } = default!;

/// <summary>
/// 效果描述
/// </summary>
Expand Down
8 changes: 7 additions & 1 deletion src/Snap.Hutao/Snap.Hutao/Model/Metadata/Monster/Monster.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
// Licensed under the MIT license.

using Snap.Hutao.Model.Intrinsic;
using Snap.Hutao.Model.Metadata.Item;
using Snap.Hutao.Model.Primitive;

namespace Snap.Hutao.Model.Metadata.Monster;
Expand Down Expand Up @@ -49,7 +50,7 @@ internal sealed class Monster
/// <summary>
/// 掉落物 Id
/// </summary>
public IEnumerable<MaterialId>? Drops { get; set; } = default!;
public List<MaterialId>? Drops { get; set; } = default!;

/// <summary>
/// 基本属性
Expand All @@ -61,4 +62,9 @@ internal sealed class Monster
/// </summary>
[JsonConverter(typeof(Core.Json.Converter.StringEnumKeyDictionaryConverter))]
public Dictionary<FightProperty, GrowCurveType> GrowCurves { get; set; } = default!;

/// <summary>
/// 养成物品视图
/// </summary>
public List<Display>? DropsView { get; set; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,25 @@ internal sealed class MonsterBaseValue : BaseValue
/// 物抗
/// </summary>
public float PhysicalSubHurt { get; set; }

/// <summary>
/// 抗性
/// </summary>
public List<NameValue<string>> SubHurts
{
get
{
return new()
{
Converter.PropertyDescriptor.FormatNameValue(Intrinsic.FightProperty.FIGHT_PROP_FIRE_SUB_HURT, FireSubHurt),
Converter.PropertyDescriptor.FormatNameValue(Intrinsic.FightProperty.FIGHT_PROP_WATER_SUB_HURT, WaterSubHurt),
Converter.PropertyDescriptor.FormatNameValue(Intrinsic.FightProperty.FIGHT_PROP_GRASS_SUB_HURT, GrassSubHurt),
Converter.PropertyDescriptor.FormatNameValue(Intrinsic.FightProperty.FIGHT_PROP_ELEC_SUB_HURT, ElecSubHurt),
Converter.PropertyDescriptor.FormatNameValue(Intrinsic.FightProperty.FIGHT_PROP_WIND_SUB_HURT, WindSubHurt),
Converter.PropertyDescriptor.FormatNameValue(Intrinsic.FightProperty.FIGHT_PROP_ICE_SUB_HURT, IceSubHurt),
Converter.PropertyDescriptor.FormatNameValue(Intrinsic.FightProperty.FIGHT_PROP_ROCK_SUB_HURT, RockSubHurt),
Converter.PropertyDescriptor.FormatNameValue(Intrinsic.FightProperty.FIGHT_PROP_PHYSICAL_SUB_HURT, PhysicalSubHurt),
};
}
}
}
6 changes: 6 additions & 0 deletions src/Snap.Hutao/Snap.Hutao/Model/Primitive/MonsterId.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,10 @@ public override int GetHashCode()
{
return Value.GetHashCode();
}

/// <inheritdoc/>
public override string ToString()
{
return Value.ToString();
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit e50c1b9

Please # to comment.