BITFALL/Assets/Artists/Scripts/Item/ScriptableEquip.cs

45 lines
1.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using AYellowpaper.SerializedCollections;
using UnityEngine;
using BITKit;
namespace BITFALL
{
/// <summary>
/// 资产化装配配置
/// </summary>
public class ScriptableEquip : ScriptableItem
{
[Header(nameof(ScriptableEquip))]
[SerializeField] protected int initialDamage;
[Space]
[SerializeField] protected int meleeDamage;
[SerializeField] protected float meleeRange;
[SerializeField] protected int meleeForce;
[Space]
[SerializeField] protected int heavyMeleeDamage;
[SerializeField] protected float heavyMeleeRange;
[SerializeField] protected int heavyMeleeForce;
[Space] [SerializeField] protected SerializedDictionary<string, int> tagDamage;
[Space] [SerializeField] protected float initialMoveSpeed;
[Space] [SerializeField] protected float initialAimMoveSpeed;
public int MeleeDamage => meleeDamage;
public float MeleeRange => meleeRange;
public int MeleeForce => meleeForce;
public int HeavyMeleeDamage => heavyMeleeDamage;
public float HeavyMeleeRange => heavyMeleeRange;
public int HeavyMeleeForce => heavyMeleeForce;
public float InitialMovementSpeed => initialMoveSpeed;
public float InitialAimMovementSpeed => initialAimMoveSpeed;
public int GetDamageByTag(string tag)
{
if (string.IsNullOrEmpty(tag)) return initialDamage;
return tagDamage.TryGetValue(tag, out var damage) ? damage : initialDamage;
}
}
}