using System; using LitJson; using UnityEngine; namespace GameWorld { public class EnemyHurtAtkEventArgs : EventArgs { public EnemyHurtAtkEventArgs(GameObject _hurted, GameObject _sender, int _attackId, Vector3 _hurtPos, HurtCheck.BodyType _body, EnemyHurtAtkEventArgs.PlayerNormalAtkData _attackData, bool _forceHurt = false) { this.hurted = _hurted; this.sender = _sender; this.attackId = _attackId; this.hurtPos = _hurtPos; this.body = _body; this.attackData = _attackData; this.forceHurt = _forceHurt; this.hurtType = EnemyHurtAtkEventArgs.HurtTypeEnum.Normal; } public EnemyHurtAtkEventArgs(GameObject _hurted, EnemyHurtAtkEventArgs.HurtTypeEnum type) { this.hurted = _hurted; this.hurtType = type; } public EnemyHurtAtkEventArgs(GameObject _hurted, EnemyHurtAtkEventArgs.HurtTypeEnum type, string playerState) { this.hurted = _hurted; this.hurtType = type; this.attackData = new EnemyHurtAtkEventArgs.PlayerNormalAtkData(playerState); } public EnemyHurtAtkEventArgs.PlayerNormalAtkData attackData; public int attackId; public HurtCheck.BodyType body; public bool forceHurt; public GameObject hurted; public Vector3 hurtPos; public EnemyHurtAtkEventArgs.HurtTypeEnum hurtType; public GameObject sender; public enum HurtTypeEnum { Normal, ExecuteFollow, Execute, QTEHurt, Flash } public class PlayerNormalAtkData : EventArgs { public PlayerNormalAtkData(JsonData atkData, bool _firstHurt) { this.damagePercent = atkData.Get("damagePercent", 1f); this.atkName = atkData.Get("atkName", "Atk1"); this.camShakeFrame = atkData.Get("shakeClip", 0); this.shakeStrength = atkData.Get("shakeOffset", 0f); this.shakeType = atkData.Get("shakeType", 0); this.frozenFrame = atkData.Get("frozenClip", 0); this.shakeFrame = atkData.Get("frameShakeClip", 0); this.joystickShakeNum = atkData.Get("joystickShakeNum", -1); this.firstHurt = _firstHurt; } public PlayerNormalAtkData(string _atkName) { this.atkName = _atkName; } public float damagePercent = 1f; public string atkName; public bool firstHurt; public int camShakeFrame; public float shakeStrength = 1f; public int shakeType; public int frozenFrame; public int shakeFrame; public int joystickShakeNum; } } }