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

36 lines
1.4 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using BITKit;
namespace BITFALL.Guns
{
public class ScriptableGun : ScriptableEquip
{
[Header(nameof(ScriptableGun))]
[SerializeReference, SubclassSelector] protected IFireMode fireMode = new AutoFireMode();
[SerializeField] private int initialBulletForce;
[SerializeField] private int initialBulletSpeed = 128;
[SerializeField] private int initialAimZoom = 1;
[SerializeField] private bool isScopeAim;
[SerializeField] private Optional<int> buckshot;
[SerializeField] private float initialHipFireSpread = 1;
[SerializeField] private AnimationCurve damageMultiplierCurve;
public IFireMode FireMode => fireMode;
public int InitialBulletForce => initialBulletForce;
public int InitialDamage => initialDamage;
public int InitialBulletSpeed => initialBulletSpeed;
public int InitialAimZoom => initialAimZoom;
public bool IsScopeAim => isScopeAim;
public IOptional<int> BuckShot => buckshot;
public float InitialHipFireSpread => initialHipFireSpread;
public int GetDamageByDistance(float distance,string tag = null)
{
var baseDamage = GetDamageByTag(tag);
return (int)(damageMultiplierCurve.Evaluate(distance)*baseDamage);
}
}
}