1
This commit is contained in:
@@ -19,11 +19,12 @@ namespace BITKit.Entities
|
||||
public abstract class BITEquipBase<T> : StateBasedMonoBehaviour<T>, IEquipBase where T : IState
|
||||
{
|
||||
[Header(Constant.Header.Settings)]
|
||||
[SerializeField] protected AssetableEquip item;
|
||||
[SerializeField] protected AssetableItem item;
|
||||
|
||||
[Header(Constant.Header.Components)]
|
||||
public UnityAnimator animator;
|
||||
[SerializeField] private Renderer[] renderers;
|
||||
[SerializeField] protected Transform cameraTransform;
|
||||
|
||||
[Header(Constant.Header.Services)]
|
||||
[SerializeReference,SubclassSelector] protected IMeleeService meleeService;
|
||||
@@ -39,12 +40,12 @@ namespace BITKit.Entities
|
||||
public virtual string AddressablePath => item.AddressablePath;
|
||||
protected virtual Vector3 meleeForce => Transform.forward;
|
||||
public bool IsEntered { get; set; }
|
||||
private Quaternion _initialCameraRotation;
|
||||
|
||||
public virtual void Entry()
|
||||
{
|
||||
AllowRendering.AddElement(this);
|
||||
animator.animator.enabled = true;
|
||||
animator.animator.Update(0);
|
||||
inputActionGroup.allowInput.AddElement(this);
|
||||
}
|
||||
public virtual UniTask EntryAsync()
|
||||
{
|
||||
@@ -58,18 +59,26 @@ namespace BITKit.Entities
|
||||
public virtual UniTask ExitAsync()
|
||||
{
|
||||
AllowRendering.RemoveElement(this);
|
||||
if (cameraTransform is not null)
|
||||
{
|
||||
cameraTransform.localPosition = default;
|
||||
cameraTransform.localRotation = _initialCameraRotation;
|
||||
}
|
||||
return UniTask.CompletedTask;
|
||||
}
|
||||
|
||||
public virtual void OnAwake()
|
||||
{
|
||||
AllowRendering.AddListener(x=>renderers.ForEach(y=>
|
||||
AllowRendering.AddListener(x => renderers.ForEach(y =>
|
||||
{
|
||||
y.enabled = x;
|
||||
animator.animator.enabled = x;
|
||||
animator.enabled = x;
|
||||
}));
|
||||
AllowRendering.Invoke();
|
||||
|
||||
if (cameraTransform is not null)
|
||||
_initialCameraRotation = cameraTransform.localRotation;
|
||||
Initialize();
|
||||
inputActionGroup.allowInput.Invoke();
|
||||
}
|
||||
|
||||
public virtual void OnDestroy()
|
||||
@@ -86,6 +95,7 @@ namespace BITKit.Entities
|
||||
public virtual void AnimationEvent(string eventName)
|
||||
{
|
||||
if (IsEntered is false) return;
|
||||
if (item is not AssetableEquip equip) return;
|
||||
switch (eventName)
|
||||
{
|
||||
case "Melee":
|
||||
@@ -94,9 +104,9 @@ namespace BITKit.Entities
|
||||
{
|
||||
PlayerId = Entity.Id,
|
||||
Position = Transform.position,
|
||||
Force = meleeForce * item.MeleeForce,
|
||||
Range = item.MeleeRange,
|
||||
Damage = item.MeleeDamage
|
||||
Force = meleeForce * equip.MeleeForce,
|
||||
Range = equip.MeleeRange,
|
||||
Damage = equip.MeleeDamage
|
||||
});
|
||||
break;
|
||||
case "HeavyAttack":
|
||||
@@ -104,9 +114,9 @@ namespace BITKit.Entities
|
||||
{
|
||||
PlayerId = Entity.Id,
|
||||
Position = Transform.position,
|
||||
Force = meleeForce * item.HeavyMeleeForce,
|
||||
Range = item.HeavyMeleeRange,
|
||||
Damage = item.HeavyMeleeDamage,
|
||||
Force = meleeForce * equip.HeavyMeleeForce,
|
||||
Range = equip.HeavyMeleeRange,
|
||||
Damage = equip.HeavyMeleeDamage,
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user