41 lines
1.0 KiB
C#
41 lines
1.0 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Cysharp.Threading.Tasks;
|
|
|
|
namespace Net.Project.B.Loot
|
|
{
|
|
/// <summary>
|
|
/// 可配置战利品
|
|
/// </summary>
|
|
public interface IScriptableLoot
|
|
{
|
|
public int Id { get; }
|
|
/// <summary>
|
|
/// 种子
|
|
/// </summary>
|
|
public int Seed { get; }
|
|
/// <summary>
|
|
/// 名称
|
|
/// </summary>
|
|
public string Name { get; }
|
|
/// <summary>
|
|
/// 物品和权重
|
|
/// </summary>
|
|
public IReadOnlyDictionary<int, int> ItemWeights { get; }
|
|
/// <summary>
|
|
/// 类型
|
|
/// </summary>
|
|
public IWorldLootType LootType { get; }
|
|
}
|
|
public interface IWorldLootType{}
|
|
public interface ILootService
|
|
{
|
|
public UniTask<IReadOnlyDictionary<int,int>> GetLoot(IWorldLootType type);
|
|
}
|
|
[Serializable]
|
|
public struct WorldContainerLoot:IWorldLootType{}
|
|
[Serializable]
|
|
public struct WorldItemLoot:IWorldLootType{}
|
|
}
|