More move effects

This commit is contained in:
2025-03-02 14:03:51 +01:00
parent 9b0ac36597
commit c0bc905c46
40 changed files with 804 additions and 46 deletions

View File

@@ -4,6 +4,7 @@ using System.Collections.Immutable;
using System.IO;
using System.Linq;
using System.Text.Json;
using JetBrains.Annotations;
using PkmnLib.Dataloader.Models;
using PkmnLib.Static;
using PkmnLib.Static.Libraries;
@@ -25,13 +26,15 @@ public static class ItemDataLoader
library.Add(i);
return library;
}
public delegate IItem ItemFactoryDelegate(SerializedItem serialized, StringKey name, ItemCategory type,
BattleItemCategory battleType, int price, ImmutableHashSet<StringKey> flags,
ISecondaryEffect? effect, ISecondaryEffect? battleTriggerEffect, byte flingPower);
// ReSharper disable once MemberCanBePrivate.Global
public static Func<SerializedItem, StringKey, ItemCategory, BattleItemCategory, int,
IEnumerable<StringKey>, ISecondaryEffect?, ISecondaryEffect?,
// ReSharper disable once FieldCanBeMadeReadOnly.Global
IItem> ItemConstructor = (_, name, type, battleType, price, flags, effect, battleTriggerEffect) =>
new ItemImpl(name, type, battleType, price, flags, effect, battleTriggerEffect);
[PublicAPI]
public static ItemFactoryDelegate ItemConstructor { get; set; } = (_, name, type, battleType, price, flags, effect,
battleTriggerEffect, flingPower) =>
new ItemImpl(name, type, battleType, price, flags, effect, battleTriggerEffect, flingPower);
private static IItem DeserializeItem(SerializedItem serialized)
{
@@ -42,6 +45,7 @@ public static class ItemDataLoader
var battleTriggerEffect = serialized.BattleEffect?.ParseEffect();
return ItemConstructor(serialized, serialized.Name, itemType, battleType, serialized.Price,
serialized.Flags.Select(x => (StringKey)x).ToImmutableHashSet(), effect, battleTriggerEffect);
serialized.Flags.Select(x => (StringKey)x).ToImmutableHashSet(), effect, battleTriggerEffect,
serialized.FlingPower);
}
}

View File

@@ -14,4 +14,10 @@
<ProjectReference Include="..\PkmnLib.Static\PkmnLib.Static.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="JetBrains.Annotations">
<HintPath>..\..\..\..\.nuget\packages\jetbrains.annotations\2024.2.0\lib\netstandard2.0\JetBrains.Annotations.dll</HintPath>
</Reference>
</ItemGroup>
</Project>