From bdf47cf0fd36a5c858575a805cca70ab623868eb Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 29 Oct 2020 19:39:42 +0800 Subject: *misc --- Assets/Scripts/Avatar/Abilities.meta | 8 + Assets/Scripts/Avatar/Abilities/AbilityBase.cs | 66 ++++++ .../Scripts/Avatar/Abilities/AbilityBase.cs.meta | 11 + Assets/Scripts/Avatar/Abilities/AttackAbility.cs | 143 ++++++++++++ .../Scripts/Avatar/Abilities/AttackAbility.cs.meta | 11 + Assets/Scripts/Avatar/Abilities/DashAbility.cs | 18 ++ .../Scripts/Avatar/Abilities/DashAbility.cs.meta | 11 + Assets/Scripts/Avatar/Abilities/DodgeAbility.cs | 16 ++ .../Scripts/Avatar/Abilities/DodgeAbility.cs.meta | 11 + Assets/Scripts/Avatar/Abilities/HurtAbility.cs | 21 ++ .../Scripts/Avatar/Abilities/HurtAbility.cs.meta | 11 + Assets/Scripts/Avatar/Abilities/IdleAbility.cs | 52 +++++ .../Scripts/Avatar/Abilities/IdleAbility.cs.meta | 11 + Assets/Scripts/Avatar/Abilities/JumpAbility.cs | 241 +++++++++++++++++++++ .../Scripts/Avatar/Abilities/JumpAbility.cs.meta | 11 + Assets/Scripts/Avatar/Abilities/MoveAbility.cs | 68 ++++++ .../Scripts/Avatar/Abilities/MoveAbility.cs.meta | 11 + Assets/Scripts/Avatar/AbilitySystem.cs | 90 ++++++++ Assets/Scripts/Avatar/AbilitySystem.cs.meta | 11 + Assets/Scripts/Avatar/Actions.meta | 8 + .../Scripts/Avatar/Actions/ActionAnimCrossFade.cs | 23 ++ .../Avatar/Actions/ActionAnimCrossFade.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionBase.cs | 23 ++ Assets/Scripts/Avatar/Actions/ActionBase.cs.meta | 11 + .../Scripts/Avatar/Actions/ActionDontUseGravity.cs | 18 ++ .../Avatar/Actions/ActionDontUseGravity.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionEffects.meta | 8 + Assets/Scripts/Avatar/Actions/ActionFlashEffect.cs | 14 ++ .../Avatar/Actions/ActionFlashEffect.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionFreeze.cs | 18 ++ Assets/Scripts/Avatar/Actions/ActionFreeze.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionJump.cs | 21 ++ Assets/Scripts/Avatar/Actions/ActionJump.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionJumpBack.cs | 18 ++ .../Scripts/Avatar/Actions/ActionJumpBack.cs.meta | 11 + .../Scripts/Avatar/Actions/ActionJumpBackward.cs | 18 ++ .../Avatar/Actions/ActionJumpBackward.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionJumpForward.cs | 21 ++ .../Avatar/Actions/ActionJumpForward.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionLog.cs | 18 ++ Assets/Scripts/Avatar/Actions/ActionLog.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionPlaySfx.cs | 19 ++ .../Scripts/Avatar/Actions/ActionPlaySfx.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionPlaySound.cs | 18 ++ .../Scripts/Avatar/Actions/ActionPlaySound.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionPositionAdd.cs | 18 ++ .../Avatar/Actions/ActionPositionAdd.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionRush.cs | 18 ++ Assets/Scripts/Avatar/Actions/ActionRush.cs.meta | 11 + .../Avatar/Actions/ActionSetFeetPosition.cs | 18 ++ .../Avatar/Actions/ActionSetFeetPosition.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionSetPosition.cs | 15 ++ .../Avatar/Actions/ActionSetPosition.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionSetVelocity.cs | 21 ++ .../Avatar/Actions/ActionSetVelocity.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionShakeCamera.cs | 18 ++ .../Avatar/Actions/ActionShakeCamera.cs.meta | 11 + .../Scripts/Avatar/Actions/ActionSwitchAbility.cs | 21 ++ .../Avatar/Actions/ActionSwitchAbility.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionTowardLeft.cs | 19 ++ .../Avatar/Actions/ActionTowardLeft.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionTowardRight.cs | 19 ++ .../Avatar/Actions/ActionTowardRight.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionTurn180.cs | 19 ++ .../Scripts/Avatar/Actions/ActionTurn180.cs.meta | 11 + Assets/Scripts/Avatar/Actions/ActionUseGravity.cs | 18 ++ .../Avatar/Actions/ActionUseGravity.cs.meta | 11 + .../Scripts/Avatar/Actions/ActionWipeCmdRecord.cs | 11 + .../Avatar/Actions/ActionWipeCmdRecord.cs.meta | 11 + Assets/Scripts/Avatar/Actions/CameraActions.meta | 8 + .../Actions/CameraActions/ActionMoveCamera.cs | 16 ++ .../Actions/CameraActions/ActionMoveCamera.cs.meta | 11 + .../Actions/CameraActions/ActionPauseTime.cs | 18 ++ .../Actions/CameraActions/ActionPauseTime.cs.meta | 11 + Assets/Scripts/Avatar/Actions/EffectActions.meta | 8 + .../Actions/EffectActions/ActionDisableGhost.cs | 19 ++ .../EffectActions/ActionDisableGhost.cs.meta | 11 + .../Actions/EffectActions/ActionEffectGhost.cs | 19 ++ .../EffectActions/ActionEffectGhost.cs.meta | 11 + Assets/Scripts/Avatar/Actions/UberActions.meta | 8 + .../Avatar/Actions/UberActions/ActionUber.cs | 18 ++ .../Avatar/Actions/UberActions/ActionUber.cs.meta | 11 + Assets/Scripts/Avatar/Avatar.cs | 62 ++++++ Assets/Scripts/Avatar/Avatar.cs.meta | 11 + Assets/Scripts/Avatar/Bahaviours.meta | 8 + .../Scripts/Avatar/Bahaviours/GhostEffectSpwan.cs | 14 ++ .../Avatar/Bahaviours/GhostEffectSpwan.cs.meta | 11 + Assets/Scripts/Avatar/Conditions.meta | 8 + .../Avatar/Conditions/ConditionAbilitySeq.cs | 26 +++ .../Avatar/Conditions/ConditionAbilitySeq.cs.meta | 11 + .../Avatar/Conditions/ConditionAttkExpireTime.cs | 21 ++ .../Conditions/ConditionAttkExpireTime.cs.meta | 11 + Assets/Scripts/Avatar/Conditions/ConditionBase.cs | 196 +++++++++++++++++ .../Avatar/Conditions/ConditionBase.cs.meta | 11 + .../Avatar/Conditions/ConditionButtonHold.cs | 18 ++ .../Avatar/Conditions/ConditionButtonHold.cs.meta | 11 + .../Scripts/Avatar/Conditions/ConditionCheckHp.cs | 18 ++ .../Avatar/Conditions/ConditionCheckHp.cs.meta | 11 + .../Scripts/Avatar/Conditions/ConditionCheckMp.cs | 18 ++ .../Avatar/Conditions/ConditionCheckMp.cs.meta | 11 + Assets/Scripts/Avatar/Conditions/ConditionCombo.cs | 14 ++ .../Avatar/Conditions/ConditionCombo.cs.meta | 11 + .../Scripts/Avatar/Conditions/ConditionCommand.cs | 22 ++ .../Avatar/Conditions/ConditionCommand.cs.meta | 11 + .../Avatar/Conditions/ConditionCommandSeq.cs | 54 +++++ .../Avatar/Conditions/ConditionCommandSeq.cs.meta | 11 + Assets/Scripts/Avatar/Conditions/ConditionInair.cs | 21 ++ .../Avatar/Conditions/ConditionInair.cs.meta | 11 + .../Scripts/Avatar/Conditions/ConditionJumpDone.cs | 18 ++ .../Avatar/Conditions/ConditionJumpDone.cs.meta | 11 + .../Avatar/Conditions/ConditionJumpOnGround.cs | 18 ++ .../Conditions/ConditionJumpOnGround.cs.meta | 11 + .../Avatar/Conditions/ConditionJumpReady.cs | 18 ++ .../Avatar/Conditions/ConditionJumpReady.cs.meta | 11 + .../Avatar/Conditions/ConditionMotionAtEnd.cs | 31 +++ .../Avatar/Conditions/ConditionMotionAtEnd.cs.meta | 11 + .../Avatar/Conditions/ConditionMotionFrameRange.cs | 18 ++ .../Conditions/ConditionMotionFrameRange.cs.meta | 11 + .../Avatar/Conditions/ConditionMotionRange.cs | 28 +++ .../Avatar/Conditions/ConditionMotionRange.cs.meta | 11 + .../Avatar/Conditions/ConditionMoveButtonHold.cs | 18 ++ .../Conditions/ConditionMoveButtonHold.cs.meta | 11 + .../Avatar/Conditions/ConditionNoMoveButtonHold.cs | 16 ++ .../Conditions/ConditionNoMoveButtonHold.cs.meta | 11 + .../Scripts/Avatar/Conditions/ConditionNotHit.cs | 18 ++ .../Avatar/Conditions/ConditionNotHit.cs.meta | 11 + .../Scripts/Avatar/Conditions/ConditionNotHurt.cs | 18 ++ .../Avatar/Conditions/ConditionNotHurt.cs.meta | 11 + .../Avatar/Conditions/ConditionTowardLeft.cs | 19 ++ .../Avatar/Conditions/ConditionTowardLeft.cs.meta | 11 + .../Avatar/Conditions/ConditionTowardRight.cs | 18 ++ .../Avatar/Conditions/ConditionTowardRight.cs.meta | 11 + Assets/Scripts/Avatar/Conditions/Interactive.meta | 8 + .../Avatar/Conditions/Interactive/ConditionHit.cs | 21 ++ .../Conditions/Interactive/ConditionHit.cs.meta | 11 + .../Avatar/Conditions/Interactive/ConditionHurt.cs | 20 ++ .../Conditions/Interactive/ConditionHurt.cs.meta | 11 + Assets/Scripts/Avatar/HitDef.cs | 9 + Assets/Scripts/Avatar/HitDef.cs.meta | 11 + Assets/Scripts/Avatar/IInteractable.cs | 21 ++ Assets/Scripts/Avatar/IInteractable.cs.meta | 11 + Assets/Scripts/Avatar/Trigger.cs | 72 ++++++ Assets/Scripts/Avatar/Trigger.cs.meta | 11 + 143 files changed, 2923 insertions(+) create mode 100644 Assets/Scripts/Avatar/Abilities.meta create mode 100644 Assets/Scripts/Avatar/Abilities/AbilityBase.cs create mode 100644 Assets/Scripts/Avatar/Abilities/AbilityBase.cs.meta create mode 100644 Assets/Scripts/Avatar/Abilities/AttackAbility.cs create mode 100644 Assets/Scripts/Avatar/Abilities/AttackAbility.cs.meta create mode 100644 Assets/Scripts/Avatar/Abilities/DashAbility.cs create mode 100644 Assets/Scripts/Avatar/Abilities/DashAbility.cs.meta create mode 100644 Assets/Scripts/Avatar/Abilities/DodgeAbility.cs create mode 100644 Assets/Scripts/Avatar/Abilities/DodgeAbility.cs.meta create mode 100644 Assets/Scripts/Avatar/Abilities/HurtAbility.cs create mode 100644 Assets/Scripts/Avatar/Abilities/HurtAbility.cs.meta create mode 100644 Assets/Scripts/Avatar/Abilities/IdleAbility.cs create mode 100644 Assets/Scripts/Avatar/Abilities/IdleAbility.cs.meta create mode 100644 Assets/Scripts/Avatar/Abilities/JumpAbility.cs create mode 100644 Assets/Scripts/Avatar/Abilities/JumpAbility.cs.meta create mode 100644 Assets/Scripts/Avatar/Abilities/MoveAbility.cs create mode 100644 Assets/Scripts/Avatar/Abilities/MoveAbility.cs.meta create mode 100644 Assets/Scripts/Avatar/AbilitySystem.cs create mode 100644 Assets/Scripts/Avatar/AbilitySystem.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionAnimCrossFade.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionAnimCrossFade.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionBase.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionBase.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionDontUseGravity.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionDontUseGravity.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionEffects.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionFlashEffect.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionFlashEffect.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionFreeze.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionFreeze.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionJump.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionJump.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionJumpBack.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionJumpBack.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionJumpBackward.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionJumpBackward.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionJumpForward.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionJumpForward.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionLog.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionLog.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionPlaySfx.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionPlaySfx.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionPlaySound.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionPlaySound.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionPositionAdd.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionPositionAdd.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionRush.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionRush.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionSetFeetPosition.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionSetFeetPosition.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionSetPosition.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionSetPosition.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionSetVelocity.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionSetVelocity.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionShakeCamera.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionShakeCamera.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionSwitchAbility.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionSwitchAbility.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionTowardLeft.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionTowardLeft.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionTowardRight.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionTowardRight.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionTurn180.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionTurn180.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionUseGravity.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionUseGravity.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/ActionWipeCmdRecord.cs create mode 100644 Assets/Scripts/Avatar/Actions/ActionWipeCmdRecord.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/CameraActions.meta create mode 100644 Assets/Scripts/Avatar/Actions/CameraActions/ActionMoveCamera.cs create mode 100644 Assets/Scripts/Avatar/Actions/CameraActions/ActionMoveCamera.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/CameraActions/ActionPauseTime.cs create mode 100644 Assets/Scripts/Avatar/Actions/CameraActions/ActionPauseTime.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/EffectActions.meta create mode 100644 Assets/Scripts/Avatar/Actions/EffectActions/ActionDisableGhost.cs create mode 100644 Assets/Scripts/Avatar/Actions/EffectActions/ActionDisableGhost.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/EffectActions/ActionEffectGhost.cs create mode 100644 Assets/Scripts/Avatar/Actions/EffectActions/ActionEffectGhost.cs.meta create mode 100644 Assets/Scripts/Avatar/Actions/UberActions.meta create mode 100644 Assets/Scripts/Avatar/Actions/UberActions/ActionUber.cs create mode 100644 Assets/Scripts/Avatar/Actions/UberActions/ActionUber.cs.meta create mode 100644 Assets/Scripts/Avatar/Avatar.cs create mode 100644 Assets/Scripts/Avatar/Avatar.cs.meta create mode 100644 Assets/Scripts/Avatar/Bahaviours.meta create mode 100644 Assets/Scripts/Avatar/Bahaviours/GhostEffectSpwan.cs create mode 100644 Assets/Scripts/Avatar/Bahaviours/GhostEffectSpwan.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionAbilitySeq.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionAbilitySeq.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionAttkExpireTime.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionAttkExpireTime.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionBase.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionBase.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionButtonHold.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionButtonHold.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionCheckHp.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionCheckHp.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionCheckMp.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionCheckMp.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionCombo.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionCombo.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionCommand.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionCommand.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionCommandSeq.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionCommandSeq.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionInair.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionInair.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionJumpDone.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionJumpDone.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionJumpOnGround.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionJumpOnGround.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionJumpReady.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionJumpReady.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionMotionAtEnd.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionMotionAtEnd.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionMotionFrameRange.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionMotionFrameRange.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionMotionRange.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionMotionRange.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionMoveButtonHold.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionMoveButtonHold.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionNoMoveButtonHold.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionNoMoveButtonHold.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionNotHit.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionNotHit.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionNotHurt.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionNotHurt.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionTowardLeft.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionTowardLeft.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionTowardRight.cs create mode 100644 Assets/Scripts/Avatar/Conditions/ConditionTowardRight.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/Interactive.meta create mode 100644 Assets/Scripts/Avatar/Conditions/Interactive/ConditionHit.cs create mode 100644 Assets/Scripts/Avatar/Conditions/Interactive/ConditionHit.cs.meta create mode 100644 Assets/Scripts/Avatar/Conditions/Interactive/ConditionHurt.cs create mode 100644 Assets/Scripts/Avatar/Conditions/Interactive/ConditionHurt.cs.meta create mode 100644 Assets/Scripts/Avatar/HitDef.cs create mode 100644 Assets/Scripts/Avatar/HitDef.cs.meta create mode 100644 Assets/Scripts/Avatar/IInteractable.cs create mode 100644 Assets/Scripts/Avatar/IInteractable.cs.meta create mode 100644 Assets/Scripts/Avatar/Trigger.cs create mode 100644 Assets/Scripts/Avatar/Trigger.cs.meta (limited to 'Assets/Scripts/Avatar') diff --git a/Assets/Scripts/Avatar/Abilities.meta b/Assets/Scripts/Avatar/Abilities.meta new file mode 100644 index 00000000..4b958769 --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 962b8b798c2077c4db88f3828ba14d55 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Abilities/AbilityBase.cs b/Assets/Scripts/Avatar/Abilities/AbilityBase.cs new file mode 100644 index 00000000..8b1a5549 --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/AbilityBase.cs @@ -0,0 +1,66 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 同一个角色同一个时间只能有一个ability +/// +public abstract class AbilityBase +{ + protected int m_AbilityID; + public int ID + { + get + { + return m_AbilityID; + } + } + + public AbilityBase() + { + m_AbilityID = UIDManager.Acquire(); + } + + public virtual void OnInit() { } + + /// + /// 进入当前ability的回调 + /// + public virtual void OnEnter() { } + + /// + /// 退出当前ability的回调 + /// + public virtual void OnExit() { } + + /// + /// 当前ability的update函数 + /// + public virtual void OnUpdate() { } + + /// + /// 在物理模拟之后更新 + /// + public virtual void OnLateUpdate() { } + + /// + /// 过渡到下一个ability的回调 + /// + /// + public virtual void OnTranslate(AbilityBase to) { } + + /// + /// 检测到hitbox碰撞时的回调 + /// + public virtual void OnHit() { } + + /// + /// 检测到hurtbox碰撞时的回调 + /// + public virtual void OnHurt() { } + + /// + /// 检测到defendbox碰撞时的回调 + /// + public virtual void OnDefend() { } +} diff --git a/Assets/Scripts/Avatar/Abilities/AbilityBase.cs.meta b/Assets/Scripts/Avatar/Abilities/AbilityBase.cs.meta new file mode 100644 index 00000000..79a6b7eb --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/AbilityBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a3b3cfab4bd1dd74bb539687535b58f1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Abilities/AttackAbility.cs b/Assets/Scripts/Avatar/Abilities/AttackAbility.cs new file mode 100644 index 00000000..9ca52a4c --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/AttackAbility.cs @@ -0,0 +1,143 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public struct AttackAbilityConfig +{ + public Vector3 velocity; // velocity setup + public int motion; + public Animator animator; + public PhysicsBody body; +} + +// 单独的一个招式 +public class AttackAbility : AbilityBase +{ + AttackAbilityConfig m_Config = new AttackAbilityConfig(); + + /// + /// 在跑动状态时可以切换的ability + /// + private List m_Triggers = new List(); + + private List m_LateTriggers = new List(); + + /// + /// 这个招式所有hit的效果 + /// + public HitDefination[] HitDef; + + /// + /// 从动画结束开始计时 + /// + float m_TimeCount; + public float ExpireTime + { + get + { + return m_TimeCount; + } + } + + /// + /// 这个招式的hit个数 + /// + public int HitCount + { + get + { + return HitDef != null ? HitDef.Length : 0; + } + } + + + public AttackAbility(Animator animator, int animation, PhysicsBody body = null) + { + m_Config.animator = animator; + m_Config.motion = animation; + m_Config.velocity = Vector3.zero; + m_Config.body = body; + } + + public AttackAbility(AttackAbilityConfig config) + { + m_Config = config; + } + + public override void OnInit() + { + } + + public override void OnDefend() + { + throw new System.NotImplementedException(); + } + + public override void OnEnter() + { + m_TimeCount = 0; + + m_Config.animator.CrossFade(m_Config.motion, 0); + + if(m_Config.body != null) + { + m_Config.body.LocalVelocity = m_Config.velocity; + } + } + + public override void OnExit() + { + m_TimeCount = 0; + } + + public override void OnHit() + { + } + + public override void OnHurt() + { + } + + public override void OnTranslate(AbilityBase to) + { + } + + public override void OnUpdate() + { + AnimatorStateInfo info = m_Config.animator.GetCurrentAnimatorStateInfo(0); + if(info.shortNameHash == m_Config.motion && info.normalizedTime >= 0.99f) + { + m_TimeCount += Time.deltaTime; + } + foreach (var abilityTrigger in m_Triggers) + { + if (abilityTrigger.Update() && abilityTrigger.Swallow) + break; + } + } + + // 在物理模拟之后 + public override void OnLateUpdate() + { + foreach (var trigger in m_LateTriggers) + { + if (trigger.Update() && trigger.Swallow) + break; + } + } + + public void AddTrigger(Trigger trigger) + { + if (trigger == null || m_Triggers.Contains(trigger)) + return; + m_Triggers.Add(trigger); + } + + public void AddLateTrigger(Trigger trigger) + { + if (trigger == null || m_LateTriggers.Contains(trigger)) + return; + m_LateTriggers.Add(trigger); + } + +} diff --git a/Assets/Scripts/Avatar/Abilities/AttackAbility.cs.meta b/Assets/Scripts/Avatar/Abilities/AttackAbility.cs.meta new file mode 100644 index 00000000..4159d2bc --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/AttackAbility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eefcc728a2660c0459b0d79230cc4dec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Abilities/DashAbility.cs b/Assets/Scripts/Avatar/Abilities/DashAbility.cs new file mode 100644 index 00000000..b9a479b5 --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/DashAbility.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class DashAbility : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Abilities/DashAbility.cs.meta b/Assets/Scripts/Avatar/Abilities/DashAbility.cs.meta new file mode 100644 index 00000000..c246c665 --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/DashAbility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6d5a31f4a65fbba429d0a2ff3b3a49a4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Abilities/DodgeAbility.cs b/Assets/Scripts/Avatar/Abilities/DodgeAbility.cs new file mode 100644 index 00000000..79e8fc61 --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/DodgeAbility.cs @@ -0,0 +1,16 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +/// +/// Dodge ability +/// +public class DodgeAbility : AbilityBase +{ + public DodgeAbility() + { + + } + +} diff --git a/Assets/Scripts/Avatar/Abilities/DodgeAbility.cs.meta b/Assets/Scripts/Avatar/Abilities/DodgeAbility.cs.meta new file mode 100644 index 00000000..e7297a88 --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/DodgeAbility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 838e30895704e13479bfb0f5c06229e5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Abilities/HurtAbility.cs b/Assets/Scripts/Avatar/Abilities/HurtAbility.cs new file mode 100644 index 00000000..c12c89c6 --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/HurtAbility.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 将伤害类型进行分类,决定不同的motion类型 +/// +public enum HurtType +{ + Light = 0, // 轻击 + Medium, // 中击 + Hard, // 重击 + Back, + Up, + Diagup +} + +public class HurtAbility : AbilityBase +{ + +} diff --git a/Assets/Scripts/Avatar/Abilities/HurtAbility.cs.meta b/Assets/Scripts/Avatar/Abilities/HurtAbility.cs.meta new file mode 100644 index 00000000..0e70d0be --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/HurtAbility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6984a899f4c7f574a8dbffe0372c6c2e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Abilities/IdleAbility.cs b/Assets/Scripts/Avatar/Abilities/IdleAbility.cs new file mode 100644 index 00000000..d42308db --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/IdleAbility.cs @@ -0,0 +1,52 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +public class IdleAbility : AbilityBase +{ + Animator m_Animator; + + int m_AnimHash; + + /// + /// 在Idle状态时可以切换的ability + /// + private List m_Triggers = new List(); + + public IdleAbility(Animator animator, int animation) + : base() + { + m_Animator = animator; + m_AnimHash = animation; + } + + public override void OnEnter() + { + m_Animator.CrossFadeInFixedTime(m_AnimHash, 0.25f); + } + + public override void OnInit() + { + base.OnInit(); + } + + public override void OnUpdate() + { + foreach(var trigger in m_Triggers) + { + if (trigger.Update() && trigger.Swallow) + break; + } + + base.OnUpdate(); + } + + public void AddTrigger(Trigger trigger) + { + if (trigger == null || m_Triggers.Contains(trigger)) + return; + m_Triggers.Add(trigger); + } + +} diff --git a/Assets/Scripts/Avatar/Abilities/IdleAbility.cs.meta b/Assets/Scripts/Avatar/Abilities/IdleAbility.cs.meta new file mode 100644 index 00000000..07d0c292 --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/IdleAbility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 367ca0f7efe3fe14baf88eb3ce60a78b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Abilities/JumpAbility.cs b/Assets/Scripts/Avatar/Abilities/JumpAbility.cs new file mode 100644 index 00000000..e0f73efa --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/JumpAbility.cs @@ -0,0 +1,241 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public struct JumpAbilityConfig +{ + public PhysicsBody body; + public PhysicsPrimitive collider; + public Animator animator; + + public float neutralJumpSpeedY; // 垂直跳跃的基础速度 + public float fowardJumpSpeedX; // 向前跳跃的水平速度 + public float backwardJumpSpeedX; // 向后跳跃的水平速度(一般来说是负值) + + public int animJump; + public int animNU; + public int animFU; + public int animBU; + public int animND; + public int animFD; + public int animBD; + public int animJumpEnd; +} + +public class JumpAbility : AbilityBase +{ + public enum Direction + { + Neutral, + Forward, + Backward + } + + private enum State + { + Ready, + Up, + Down, + End, + } + + Direction m_Dir; + + PhysicsBody m_Body; + PhysicsPrimitive m_Collider; + + Animator m_Animator; + + public float m_NeutralJumpSpeedY; // 垂直跳跃的基础速度 + public float m_FowardJumpSpeedX; // 向前跳跃的水平速度 + public float m_BackwardJumpSpeedX; // 向后跳跃的水平速度(一般来说是负值) + + // jump motions + int m_AnimJumpStart; // on ground + int m_AnimJumpNeutralUpwards; + int m_AnimJumpNeutralDownwards; + int m_AnimJumpFwdUpwards; + int m_AnimJumpFwdDownwards; + int m_AnimJumpBackUpwards; + int m_AnimJumpBackDownwards; + int m_AnimJumpEnd; // on ground again + + int m_CurAnim; + State m_CurState; + int m_CurUpMotion; + int m_CurDownMotion; + Vector3 m_CurInitVelocity; + + private List m_Triggers = new List(); + + public JumpAbility(JumpAbilityConfig config) + { + m_Body = config.body; + m_Collider = config.collider; + m_Animator = config.animator; + m_NeutralJumpSpeedY = config.neutralJumpSpeedY; + m_FowardJumpSpeedX = config.fowardJumpSpeedX; + m_BackwardJumpSpeedX = config.backwardJumpSpeedX; + m_AnimJumpStart = config.animJump; + m_AnimJumpNeutralUpwards = config.animNU; + m_AnimJumpNeutralDownwards = config.animND; + m_AnimJumpFwdUpwards = config.animFU; + m_AnimJumpFwdDownwards = config.animFD; + m_AnimJumpBackUpwards = config.animBU; + m_AnimJumpBackDownwards = config.animBD; + m_AnimJumpEnd = config.animJumpEnd; // on ground again + } + + public void SetDir(Direction dir) + { + m_Dir = dir; + } + + public override void OnEnter() + { + base.OnEnter(); + + m_CurAnim = 0; + + switch(m_Dir) + { + case Direction.Neutral: + m_CurUpMotion = m_AnimJumpNeutralUpwards; + m_CurDownMotion = m_AnimJumpNeutralDownwards; + m_CurInitVelocity = new Vector3(0, m_NeutralJumpSpeedY, 0); + break; + case Direction.Forward: + m_CurUpMotion = m_AnimJumpFwdUpwards; + m_CurDownMotion = m_AnimJumpFwdDownwards; + m_CurInitVelocity = new Vector3(m_FowardJumpSpeedX, m_NeutralJumpSpeedY, 0); + break; + case Direction.Backward: + m_CurUpMotion = m_AnimJumpBackUpwards; + m_CurDownMotion = m_AnimJumpBackDownwards; + m_CurInitVelocity = new Vector3(m_BackwardJumpSpeedX, m_NeutralJumpSpeedY, 0); + break; + } + + bool isOnGround = m_Collider.IsOnGround; + bool isUp = m_Body.Velocity.y > 0; + bool isDown = m_Body.Velocity.y < 0; + bool isFreeFall = Mathf.Approximately(m_Body.Velocity.y, 0); + + if (isOnGround) + m_CurState = State.Ready; + else if (isUp) + m_CurState = State.Up; + else if (isDown || isFreeFall) + m_CurState = State.Down; + } + + public override void OnUpdate() + { + foreach (var abilityTrigger in m_Triggers) + { + if (abilityTrigger.Update() && abilityTrigger.Swallow) + return; + } + + AnimatorStateInfo motionInfo = m_Animator.GetCurrentAnimatorStateInfo(0); + + switch (m_CurState) + { + case State.Ready: + if(m_CurAnim != m_AnimJumpStart) + { + m_Animator.CrossFade(m_AnimJumpStart, 0.2f); + m_CurAnim = m_AnimJumpStart; + } + if(motionInfo.shortNameHash == m_AnimJumpStart && motionInfo.normalizedTime >= 1f) + { + m_Body.LocalVelocity = m_CurInitVelocity; + m_CurState = State.Up; + } + break; + case State.Up: + if(m_CurAnim != m_CurUpMotion) + { + m_Animator.CrossFade(m_CurUpMotion, 0.2f); + m_CurAnim = m_CurUpMotion; + } + if(m_Body.Velocity.y <= 0) + { + m_CurState = State.Down; + } + break; + case State.Down: + if(m_CurAnim != m_CurDownMotion) + { + m_Animator.CrossFade(m_CurDownMotion, 0.2f); + m_CurAnim = m_CurDownMotion; + } + if(m_Collider.IsOnGround) + { + m_CurState = State.End; + } + break; + case State.End: + if(m_CurAnim != m_AnimJumpEnd) + { + m_Animator.CrossFade(m_AnimJumpEnd, 0.2f); + m_CurAnim = m_AnimJumpEnd; + } + break; + } + } + + public override void OnLateUpdate() + { + base.OnLateUpdate(); + } + + /// + /// 跳跃准备动作已经完毕 + /// + /// + public bool IsJumpReady() + { + if (m_CurAnim != m_AnimJumpStart) + return false; + + AnimatorStateInfo state = m_Animator.GetCurrentAnimatorStateInfo(0); + if (state.shortNameHash == m_CurAnim && state.normalizedTime >= 1f) + return true; + + return false; + } + + /// + /// 结束 + /// + /// + public bool IsJumpDone() + { + if (m_CurState == State.End) + { + AnimatorStateInfo state = m_Animator.GetCurrentAnimatorStateInfo(0); + return state.shortNameHash == m_AnimJumpEnd && state.normalizedTime >= 1f; + } + + return false; + } + + /// + /// 着地 + /// + /// + public bool IsJumpGround() + { + return m_CurState == State.End && m_Collider.IsOnGround; + } + + public void AddTrigger(Trigger trigger) + { + if (trigger == null || m_Triggers.Contains(trigger)) + return; + m_Triggers.Add(trigger); + } + + +} \ No newline at end of file diff --git a/Assets/Scripts/Avatar/Abilities/JumpAbility.cs.meta b/Assets/Scripts/Avatar/Abilities/JumpAbility.cs.meta new file mode 100644 index 00000000..6c67c462 --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/JumpAbility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ed5b337c63528354f8b4f2ba0a59481d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Abilities/MoveAbility.cs b/Assets/Scripts/Avatar/Abilities/MoveAbility.cs new file mode 100644 index 00000000..757cd2d1 --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/MoveAbility.cs @@ -0,0 +1,68 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class MoveAbility : AbilityBase +{ + Animator m_Animator; + int m_AnimHash; + + /// + /// 在跑动状态时可以切换的ability + /// + private List m_Triggers = new List(); + + public MoveAbility(Animator animator, int animation) + { + m_Animator = animator; + m_AnimHash = animation; + } + + public override void OnInit() + { + + } + + public override void OnDefend() + { + throw new System.NotImplementedException(); + } + + public override void OnEnter() + { + m_Animator.CrossFadeInFixedTime(m_AnimHash, 0.1f); + } + + public override void OnExit() + { + } + + public override void OnHit() + { + } + + public override void OnHurt() + { + } + + public override void OnTranslate(AbilityBase to) + { + } + + public override void OnUpdate() + { + foreach (var abilityTrigger in m_Triggers) + { + if (abilityTrigger.Update() && abilityTrigger.Swallow) + break; + } + } + + public void AddTrigger(Trigger trigger) + { + if (trigger == null || m_Triggers.Contains(trigger)) + return; + m_Triggers.Add(trigger); + } + +} diff --git a/Assets/Scripts/Avatar/Abilities/MoveAbility.cs.meta b/Assets/Scripts/Avatar/Abilities/MoveAbility.cs.meta new file mode 100644 index 00000000..08b2954c --- /dev/null +++ b/Assets/Scripts/Avatar/Abilities/MoveAbility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4581355020e27084f869d6001787e11e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/AbilitySystem.cs b/Assets/Scripts/Avatar/AbilitySystem.cs new file mode 100644 index 00000000..46156c55 --- /dev/null +++ b/Assets/Scripts/Avatar/AbilitySystem.cs @@ -0,0 +1,90 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 每个角色拥有一个ablity system +/// +public class AbilitySystem +{ + private static List AbilitySystems = new List(); + + /// + /// 当前执行的ability + /// + private AbilityBase m_Currrent; + + public AbilityBase Current + { + get + { + return m_Currrent; + } + } + + private List m_Abilities = new List(); + + public AbilitySystem() + { + AbilitySystems.Add(this); + } + + public static void Update() + { + foreach(var systems in AbilitySystems) + { + systems.OnUpdate(); + } + } + + public static void LateUpdate() + { + foreach (var systems in AbilitySystems) + { + systems.OnLateUpdate(); + } + } + + public void ForceStart(AbilityBase ability) + { + if (ability == null) + return; + + if (m_Currrent != null) + m_Currrent.OnExit(); + + m_Currrent = ability; + m_Currrent.OnEnter(); + } + + public void AddAbility(AbilityBase ability) + { + m_Abilities.Add(ability); + } + + public void OnUpdate() + { + if(m_Currrent != null) + { + m_Currrent.OnUpdate(); + } + } + + public void OnLateUpdate() + { + if(m_Currrent != null) + { + m_Currrent.OnLateUpdate(); + } + } + + + public void SwitchToAbility(AbilityBase targetAbility) + { + if (m_Currrent != null) + m_Currrent.OnExit(); + m_Currrent = targetAbility; + m_Currrent.OnEnter(); + } + +} \ No newline at end of file diff --git a/Assets/Scripts/Avatar/AbilitySystem.cs.meta b/Assets/Scripts/Avatar/AbilitySystem.cs.meta new file mode 100644 index 00000000..52e8267c --- /dev/null +++ b/Assets/Scripts/Avatar/AbilitySystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2cf426be55a8b8b48a1b794fa6938e94 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions.meta b/Assets/Scripts/Avatar/Actions.meta new file mode 100644 index 00000000..d3b985d9 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 11a73902b983ea045bd5fb50d69dc802 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionAnimCrossFade.cs b/Assets/Scripts/Avatar/Actions/ActionAnimCrossFade.cs new file mode 100644 index 00000000..6f2252d7 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionAnimCrossFade.cs @@ -0,0 +1,23 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionAnimCrossFade : ActionBase +{ + Animator m_Animator; + int m_TargetAnimation; + float m_Duration; + + public ActionAnimCrossFade(Animator animator, int toAnim, float duration = 0) + { + m_Animator = animator; + m_TargetAnimation = toAnim; + m_Duration = duration; + } + + public override void Execute() + { + m_Animator.CrossFade(m_TargetAnimation, m_Duration); + } + +} \ No newline at end of file diff --git a/Assets/Scripts/Avatar/Actions/ActionAnimCrossFade.cs.meta b/Assets/Scripts/Avatar/Actions/ActionAnimCrossFade.cs.meta new file mode 100644 index 00000000..6eed1575 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionAnimCrossFade.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 86ec4b9e82965164ba7d950129542f85 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionBase.cs b/Assets/Scripts/Avatar/Actions/ActionBase.cs new file mode 100644 index 00000000..1458e340 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionBase.cs @@ -0,0 +1,23 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public abstract class ActionBase +{ + private int m_ID; + public int ID + { + get + { + return m_ID; + } + } + + protected ActionBase() + { + m_ID = UIDManager.Acquire(); + } + + public abstract void Execute(); + +} diff --git a/Assets/Scripts/Avatar/Actions/ActionBase.cs.meta b/Assets/Scripts/Avatar/Actions/ActionBase.cs.meta new file mode 100644 index 00000000..8ef84b69 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bbdb3ec1494e7c8418f9068fb2815cfc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionDontUseGravity.cs b/Assets/Scripts/Avatar/Actions/ActionDontUseGravity.cs new file mode 100644 index 00000000..82b176fd --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionDontUseGravity.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionDontUseGravity : ActionBase +{ + PhysicsBody m_Body; + + public ActionDontUseGravity(PhysicsBody body) + { + m_Body = body; + } + + public override void Execute() + { + m_Body.UseGravity = false; + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionDontUseGravity.cs.meta b/Assets/Scripts/Avatar/Actions/ActionDontUseGravity.cs.meta new file mode 100644 index 00000000..9957eef0 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionDontUseGravity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 500bcab3888d71747971dfa5f364fcd6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionEffects.meta b/Assets/Scripts/Avatar/Actions/ActionEffects.meta new file mode 100644 index 00000000..17a426dd --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionEffects.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0b5ccfefc2e6b104a8566f4da9a16c5f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionFlashEffect.cs b/Assets/Scripts/Avatar/Actions/ActionFlashEffect.cs new file mode 100644 index 00000000..c411c3fa --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionFlashEffect.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 创建角色残影 +/// +public class ActionFlashEffect : ActionBase +{ + public override void Execute() + { + + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionFlashEffect.cs.meta b/Assets/Scripts/Avatar/Actions/ActionFlashEffect.cs.meta new file mode 100644 index 00000000..ea99c96b --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionFlashEffect.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9a193a2045f759e4abaff6bfef12658f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionFreeze.cs b/Assets/Scripts/Avatar/Actions/ActionFreeze.cs new file mode 100644 index 00000000..7f26f35a --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionFreeze.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionFreze : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionFreeze.cs.meta b/Assets/Scripts/Avatar/Actions/ActionFreeze.cs.meta new file mode 100644 index 00000000..eb9fe77a --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionFreeze.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 32c173c981e85414c83ec9b0fc7d9722 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionJump.cs b/Assets/Scripts/Avatar/Actions/ActionJump.cs new file mode 100644 index 00000000..cb3da106 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionJump.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// 垂直跳跃,切换到jump ability +public class ActionJump : ActionSwitchAbility +{ + private JumpAbility m_JumpAbility; + + public ActionJump(AbilitySystem system, JumpAbility jumpAbility) + : base(system, jumpAbility) + { + m_JumpAbility = jumpAbility; + } + + public override void Execute() + { + m_JumpAbility.SetDir(JumpAbility.Direction.Neutral); + base.Execute(); // switch to jump ability + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionJump.cs.meta b/Assets/Scripts/Avatar/Actions/ActionJump.cs.meta new file mode 100644 index 00000000..8c48a0a7 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionJump.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 987cd3139a86b4c4fa0acdbb621e9e14 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionJumpBack.cs b/Assets/Scripts/Avatar/Actions/ActionJumpBack.cs new file mode 100644 index 00000000..c21fce77 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionJumpBack.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionJumpBack : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionJumpBack.cs.meta b/Assets/Scripts/Avatar/Actions/ActionJumpBack.cs.meta new file mode 100644 index 00000000..c8db01c7 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionJumpBack.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1b4b55d531ec4084294169cddfbeb57a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionJumpBackward.cs b/Assets/Scripts/Avatar/Actions/ActionJumpBackward.cs new file mode 100644 index 00000000..0751d659 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionJumpBackward.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionJumpBackward : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionJumpBackward.cs.meta b/Assets/Scripts/Avatar/Actions/ActionJumpBackward.cs.meta new file mode 100644 index 00000000..99c729b3 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionJumpBackward.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 635bcce72805fc14ebc1cb057db4e1b2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionJumpForward.cs b/Assets/Scripts/Avatar/Actions/ActionJumpForward.cs new file mode 100644 index 00000000..4e71dcf6 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionJumpForward.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// 垂直跳跃,切换到jump ability +public class ActionJumpForward : ActionSwitchAbility +{ + private JumpAbility m_JumpAbility; + + public ActionJumpForward(AbilitySystem system, JumpAbility jumpAbility) + : base(system, jumpAbility) + { + m_JumpAbility = jumpAbility; + } + + public override void Execute() + { + m_JumpAbility.SetDir(JumpAbility.Direction.Forward); + base.Execute(); // switch to jump ability + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionJumpForward.cs.meta b/Assets/Scripts/Avatar/Actions/ActionJumpForward.cs.meta new file mode 100644 index 00000000..27f6ba43 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionJumpForward.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0c97763c6fe099c43bab267ccc3888a9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionLog.cs b/Assets/Scripts/Avatar/Actions/ActionLog.cs new file mode 100644 index 00000000..b276d2ef --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionLog.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionLog : ActionBase +{ + string m_Content = ""; + + public ActionLog(string content) + { + m_Content = content; + } + + public override void Execute() + { + Debug.Log(m_Content); + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionLog.cs.meta b/Assets/Scripts/Avatar/Actions/ActionLog.cs.meta new file mode 100644 index 00000000..92995276 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionLog.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 012a5a398b677f94abeb0aa12659d5ec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionPlaySfx.cs b/Assets/Scripts/Avatar/Actions/ActionPlaySfx.cs new file mode 100644 index 00000000..442ce999 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionPlaySfx.cs @@ -0,0 +1,19 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionPlaySfx : ActionBase +{ + GameObject m_Sfx; + Vector3 m_TargetPos; + + public ActionPlaySfx(GameObject sfx, Vector3 position) + { + m_Sfx = sfx; + m_TargetPos = position; + } + + public override void Execute() + { + } +} \ No newline at end of file diff --git a/Assets/Scripts/Avatar/Actions/ActionPlaySfx.cs.meta b/Assets/Scripts/Avatar/Actions/ActionPlaySfx.cs.meta new file mode 100644 index 00000000..2b206e8f --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionPlaySfx.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 302075a0d3527d44f9188351f0f6d070 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionPlaySound.cs b/Assets/Scripts/Avatar/Actions/ActionPlaySound.cs new file mode 100644 index 00000000..237b7455 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionPlaySound.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionPlaySound : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionPlaySound.cs.meta b/Assets/Scripts/Avatar/Actions/ActionPlaySound.cs.meta new file mode 100644 index 00000000..a9bbf014 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionPlaySound.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c43194c5e437d5d4fb02a7b0618a7b0e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionPositionAdd.cs b/Assets/Scripts/Avatar/Actions/ActionPositionAdd.cs new file mode 100644 index 00000000..9db10173 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionPositionAdd.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionPosAdd : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionPositionAdd.cs.meta b/Assets/Scripts/Avatar/Actions/ActionPositionAdd.cs.meta new file mode 100644 index 00000000..209f3795 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionPositionAdd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fc9cfba8e327546488ec1c83add3e127 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionRush.cs b/Assets/Scripts/Avatar/Actions/ActionRush.cs new file mode 100644 index 00000000..19f1b625 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionRush.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionRush : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionRush.cs.meta b/Assets/Scripts/Avatar/Actions/ActionRush.cs.meta new file mode 100644 index 00000000..760ef5f0 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionRush.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 43fb6de9baefcab4087468f33ae40a51 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionSetFeetPosition.cs b/Assets/Scripts/Avatar/Actions/ActionSetFeetPosition.cs new file mode 100644 index 00000000..8869801d --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionSetFeetPosition.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionSetFeetPosition : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionSetFeetPosition.cs.meta b/Assets/Scripts/Avatar/Actions/ActionSetFeetPosition.cs.meta new file mode 100644 index 00000000..87656dc0 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionSetFeetPosition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: da4e331f7a5282e4ca369384e69e98a4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionSetPosition.cs b/Assets/Scripts/Avatar/Actions/ActionSetPosition.cs new file mode 100644 index 00000000..a4e62294 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionSetPosition.cs @@ -0,0 +1,15 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionSetPosition : ActionBase +{ + public ActionSetPosition() + { + } + + public override void Execute() + { + throw new System.NotImplementedException(); + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionSetPosition.cs.meta b/Assets/Scripts/Avatar/Actions/ActionSetPosition.cs.meta new file mode 100644 index 00000000..466f5692 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionSetPosition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6125833c9bb56f546bbd74cb0c7c32b3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionSetVelocity.cs b/Assets/Scripts/Avatar/Actions/ActionSetVelocity.cs new file mode 100644 index 00000000..3289ac81 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionSetVelocity.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionSetVelocity : ActionBase +{ + PhysicsBody m_Body; + + Vector3 m_Velocity; + + public ActionSetVelocity(PhysicsBody body, Vector3 velocity) + { + m_Body = body; + m_Velocity = velocity; + } + + public override void Execute() + { + m_Body.Velocity = m_Velocity; + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionSetVelocity.cs.meta b/Assets/Scripts/Avatar/Actions/ActionSetVelocity.cs.meta new file mode 100644 index 00000000..3f677ed0 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionSetVelocity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0334529cb8b95d5449a4d50a41099c0e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionShakeCamera.cs b/Assets/Scripts/Avatar/Actions/ActionShakeCamera.cs new file mode 100644 index 00000000..d55270ab --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionShakeCamera.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionShakeCamera : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionShakeCamera.cs.meta b/Assets/Scripts/Avatar/Actions/ActionShakeCamera.cs.meta new file mode 100644 index 00000000..93a39df8 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionShakeCamera.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a5f356ae9f970af40b86475bc21a0d5c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionSwitchAbility.cs b/Assets/Scripts/Avatar/Actions/ActionSwitchAbility.cs new file mode 100644 index 00000000..1e214d72 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionSwitchAbility.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// 基础的切换 ability +public class ActionSwitchAbility : ActionBase +{ + AbilitySystem m_AbilitySystem; + AbilityBase m_TargetAbility; + + public ActionSwitchAbility(AbilitySystem abilitySystem, AbilityBase targetAbility) + { + m_AbilitySystem = abilitySystem; + m_TargetAbility = targetAbility; + } + + public override void Execute() + { + m_AbilitySystem.SwitchToAbility(m_TargetAbility); + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionSwitchAbility.cs.meta b/Assets/Scripts/Avatar/Actions/ActionSwitchAbility.cs.meta new file mode 100644 index 00000000..3059d95d --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionSwitchAbility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ce17bc5eca89ffc468e536284af75c4f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionTowardLeft.cs b/Assets/Scripts/Avatar/Actions/ActionTowardLeft.cs new file mode 100644 index 00000000..8d888d30 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionTowardLeft.cs @@ -0,0 +1,19 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionTowardLeft : ActionBase +{ + Transform m_Obj; + Vector3 m_Angel = new Vector3(0, -90, 0); + + public ActionTowardLeft(Transform obj) + { + m_Obj = obj; + } + + public override void Execute() + { + m_Obj.rotation = Quaternion.Euler(m_Angel); + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionTowardLeft.cs.meta b/Assets/Scripts/Avatar/Actions/ActionTowardLeft.cs.meta new file mode 100644 index 00000000..313b4775 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionTowardLeft.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 44aaf2eda01524845942fae69a26b5e1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionTowardRight.cs b/Assets/Scripts/Avatar/Actions/ActionTowardRight.cs new file mode 100644 index 00000000..b7dadf3a --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionTowardRight.cs @@ -0,0 +1,19 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionTowardRight : ActionBase +{ + Transform m_Obj; + Vector3 m_Angel = new Vector3(0, 90, 0); + + public ActionTowardRight(Transform obj) + { + m_Obj = obj; + } + + public override void Execute() + { + m_Obj.rotation = Quaternion.Euler(m_Angel); + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionTowardRight.cs.meta b/Assets/Scripts/Avatar/Actions/ActionTowardRight.cs.meta new file mode 100644 index 00000000..1477951b --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionTowardRight.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a2b93c99bf228014392dcff8416c8fe0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionTurn180.cs b/Assets/Scripts/Avatar/Actions/ActionTurn180.cs new file mode 100644 index 00000000..325a3e88 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionTurn180.cs @@ -0,0 +1,19 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionTurn180 : ActionBase +{ + Transform m_Obj; + Vector3 m_Angel = new Vector3(0, 180, 0); + + public ActionTurn180(Transform obj) + { + m_Obj = obj; + } + + public override void Execute() + { + m_Obj.Rotate(m_Angel); + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionTurn180.cs.meta b/Assets/Scripts/Avatar/Actions/ActionTurn180.cs.meta new file mode 100644 index 00000000..ee218a48 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionTurn180.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fcc6f64fbe0e7cb48a2db882fe5611c7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionUseGravity.cs b/Assets/Scripts/Avatar/Actions/ActionUseGravity.cs new file mode 100644 index 00000000..92cf3261 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionUseGravity.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionUseGravity : ActionBase +{ + PhysicsBody m_Body; + + public ActionUseGravity(PhysicsBody body) + { + m_Body = body; + } + + public override void Execute() + { + m_Body.UseGravity = true; + } +} diff --git a/Assets/Scripts/Avatar/Actions/ActionUseGravity.cs.meta b/Assets/Scripts/Avatar/Actions/ActionUseGravity.cs.meta new file mode 100644 index 00000000..42eeb7aa --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionUseGravity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5b25d9149f0503645907db055a0e94f5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/ActionWipeCmdRecord.cs b/Assets/Scripts/Avatar/Actions/ActionWipeCmdRecord.cs new file mode 100644 index 00000000..b3bdd3fa --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionWipeCmdRecord.cs @@ -0,0 +1,11 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionWipeCmdRecord : ActionBase +{ + public override void Execute() + { + InputManager.Instance.CommandRecord.Clear(); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Avatar/Actions/ActionWipeCmdRecord.cs.meta b/Assets/Scripts/Avatar/Actions/ActionWipeCmdRecord.cs.meta new file mode 100644 index 00000000..86c5ec59 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/ActionWipeCmdRecord.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6124291d136fa604bafde35cb10af76b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/CameraActions.meta b/Assets/Scripts/Avatar/Actions/CameraActions.meta new file mode 100644 index 00000000..a4650ff8 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/CameraActions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7d30a503b2bf1b04284baaadbf080a1f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/CameraActions/ActionMoveCamera.cs b/Assets/Scripts/Avatar/Actions/CameraActions/ActionMoveCamera.cs new file mode 100644 index 00000000..607473c2 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/CameraActions/ActionMoveCamera.cs @@ -0,0 +1,16 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionMoveCamera : ActionBase +{ + public ActionMoveCamera() + { + + } + + public override void Execute() + { + throw new System.NotImplementedException(); + } +} diff --git a/Assets/Scripts/Avatar/Actions/CameraActions/ActionMoveCamera.cs.meta b/Assets/Scripts/Avatar/Actions/CameraActions/ActionMoveCamera.cs.meta new file mode 100644 index 00000000..3812e732 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/CameraActions/ActionMoveCamera.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 67f15f0e55848fe4187e667a2e3e7d76 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/CameraActions/ActionPauseTime.cs b/Assets/Scripts/Avatar/Actions/CameraActions/ActionPauseTime.cs new file mode 100644 index 00000000..5a22bc1e --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/CameraActions/ActionPauseTime.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionPauseTime : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Actions/CameraActions/ActionPauseTime.cs.meta b/Assets/Scripts/Avatar/Actions/CameraActions/ActionPauseTime.cs.meta new file mode 100644 index 00000000..5cca5838 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/CameraActions/ActionPauseTime.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4f2e2377ca8624a4097987aa981db53d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/EffectActions.meta b/Assets/Scripts/Avatar/Actions/EffectActions.meta new file mode 100644 index 00000000..8b300c5b --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/EffectActions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c8aea8ed2489dde4fba46dde6f2a8d09 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/EffectActions/ActionDisableGhost.cs b/Assets/Scripts/Avatar/Actions/EffectActions/ActionDisableGhost.cs new file mode 100644 index 00000000..2da01daf --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/EffectActions/ActionDisableGhost.cs @@ -0,0 +1,19 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// 残影特效 +public class ActionDisableGhost : ActionBase +{ + CharacterGhostEffect m_GhostEffect; + + public ActionDisableGhost(CharacterGhostEffect effect) + { + m_GhostEffect = effect; + } + + public override void Execute() + { + m_GhostEffect.IsEnable = false; + } +} diff --git a/Assets/Scripts/Avatar/Actions/EffectActions/ActionDisableGhost.cs.meta b/Assets/Scripts/Avatar/Actions/EffectActions/ActionDisableGhost.cs.meta new file mode 100644 index 00000000..185da50b --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/EffectActions/ActionDisableGhost.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8548d7836b8033643954ca68cc3a5948 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/EffectActions/ActionEffectGhost.cs b/Assets/Scripts/Avatar/Actions/EffectActions/ActionEffectGhost.cs new file mode 100644 index 00000000..fa2d8e74 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/EffectActions/ActionEffectGhost.cs @@ -0,0 +1,19 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// 残影特效 +public class ActionEffectGhost : ActionBase +{ + CharacterGhostEffect m_GhostEffect; + + public ActionEffectGhost(CharacterGhostEffect effect) + { + m_GhostEffect = effect; + } + + public override void Execute() + { + m_GhostEffect.IsEnable = true; + } +} diff --git a/Assets/Scripts/Avatar/Actions/EffectActions/ActionEffectGhost.cs.meta b/Assets/Scripts/Avatar/Actions/EffectActions/ActionEffectGhost.cs.meta new file mode 100644 index 00000000..6a55db7d --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/EffectActions/ActionEffectGhost.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 68cbffdb70cd84041b2aa7b2134a10e8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/UberActions.meta b/Assets/Scripts/Avatar/Actions/UberActions.meta new file mode 100644 index 00000000..c2620d0e --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/UberActions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 74422fa2d75a19040b26845660f7b51b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Actions/UberActions/ActionUber.cs b/Assets/Scripts/Avatar/Actions/UberActions/ActionUber.cs new file mode 100644 index 00000000..b62d3b37 --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/UberActions/ActionUber.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionUber : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Actions/UberActions/ActionUber.cs.meta b/Assets/Scripts/Avatar/Actions/UberActions/ActionUber.cs.meta new file mode 100644 index 00000000..69d003aa --- /dev/null +++ b/Assets/Scripts/Avatar/Actions/UberActions/ActionUber.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5986fb71b8f521d4c9bffe103916f1c5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Avatar.cs b/Assets/Scripts/Avatar/Avatar.cs new file mode 100644 index 00000000..47d8c4b7 --- /dev/null +++ b/Assets/Scripts/Avatar/Avatar.cs @@ -0,0 +1,62 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +/// +/// 角色,包括player和opponents +/// +public class Avatar : MonoBehaviour, IInteractable +{ + + + public PhysicsBody m_Body; + public PhysicsBox m_BodyCollider; + public PhysicsBox[] m_Hitbox; + public PhysicsBox[] m_Hurtbox; + + public PhysicsPrimitive[] GetAllPrimitive() + { + throw new System.NotImplementedException(); + } + + public PhysicsBox GetHitbox() + { + throw new System.NotImplementedException(); + } + + public PhysicsBox GetHurtbox() + { + throw new System.NotImplementedException(); + } + + public PhysicsPrimitive[] GetAllHit() + { + throw new System.NotImplementedException(); + } + + public bool IsHit() + { + for (int i = 0; i < m_Hitbox.Length; ++i) + { + if (PhysicsWorld.Instance.HasCollision(m_Hitbox[i])) + { + return true; + } + } + return false; + } + + public bool IsHurt() + { + for (int i = 0; i < m_Hitbox.Length; ++i) + { + if (PhysicsWorld.Instance.HasCollision(m_Hurtbox[i])) + { + return true; + } + } + return false; + } + +} diff --git a/Assets/Scripts/Avatar/Avatar.cs.meta b/Assets/Scripts/Avatar/Avatar.cs.meta new file mode 100644 index 00000000..88269a31 --- /dev/null +++ b/Assets/Scripts/Avatar/Avatar.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4a9cb2414b4a10143919919cfe80537e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Bahaviours.meta b/Assets/Scripts/Avatar/Bahaviours.meta new file mode 100644 index 00000000..982222bf --- /dev/null +++ b/Assets/Scripts/Avatar/Bahaviours.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d10a8e3e46f321146b54b9f74ca76db6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Bahaviours/GhostEffectSpwan.cs b/Assets/Scripts/Avatar/Bahaviours/GhostEffectSpwan.cs new file mode 100644 index 00000000..cbc9c632 --- /dev/null +++ b/Assets/Scripts/Avatar/Bahaviours/GhostEffectSpwan.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class GhostEffectSpwan : MonoBehaviour +{ + public CharacterGhostEffect GhostEffect; + + public void SpawnGhost() + { + GhostEffect.CreateGhost(); + } + +} diff --git a/Assets/Scripts/Avatar/Bahaviours/GhostEffectSpwan.cs.meta b/Assets/Scripts/Avatar/Bahaviours/GhostEffectSpwan.cs.meta new file mode 100644 index 00000000..4acfc78c --- /dev/null +++ b/Assets/Scripts/Avatar/Bahaviours/GhostEffectSpwan.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 12bdc2613cfcd9043ad58b1bcc15c8ce +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions.meta b/Assets/Scripts/Avatar/Conditions.meta new file mode 100644 index 00000000..0bfa1b8d --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2d3b745adf374e14b9f4e095c52ef3d6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionAbilitySeq.cs b/Assets/Scripts/Avatar/Conditions/ConditionAbilitySeq.cs new file mode 100644 index 00000000..b55cacb8 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionAbilitySeq.cs @@ -0,0 +1,26 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 记录之前的ability序列满足某个序列 +/// combo的时候根据当前序列决定combo +/// +public class ConditionAbilitySeq : ConditionBase +{ + List m_TargetAbilitySeq = new List(); + + public ConditionAbilitySeq(List commandSeq) + : base() + { + m_TargetAbilitySeq = commandSeq; + } + + public override bool Evaluate() + { + // 验证记录的abilitySeq是否满足 + + + throw new System.NotImplementedException(); + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionAbilitySeq.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionAbilitySeq.cs.meta new file mode 100644 index 00000000..5070f1cc --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionAbilitySeq.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7bbf0480c45c29843b8ba41229bb29b1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionAttkExpireTime.cs b/Assets/Scripts/Avatar/Conditions/ConditionAttkExpireTime.cs new file mode 100644 index 00000000..a3944600 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionAttkExpireTime.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionAttkExpireTime : ConditionBase +{ + AttackAbility m_Ability; + float m_ExpireTime; + + public ConditionAttkExpireTime(AttackAbility attack, float expireTime) + { + m_Ability = attack; + m_ExpireTime = expireTime; + } + + public override bool Evaluate() + { + return m_Ability.ExpireTime > m_ExpireTime; + } +} + diff --git a/Assets/Scripts/Avatar/Conditions/ConditionAttkExpireTime.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionAttkExpireTime.cs.meta new file mode 100644 index 00000000..80b4d7a7 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionAttkExpireTime.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 385e621dcc66179459c6f2a2b3b81319 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionBase.cs b/Assets/Scripts/Avatar/Conditions/ConditionBase.cs new file mode 100644 index 00000000..8dff29da --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionBase.cs @@ -0,0 +1,196 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 触发条件基类 +/// +public abstract class ConditionBase +{ + + public ConditionBase() + { + } + + public abstract bool Evaluate(); + +} + +/// +/// 两个condition都达成才会返回真 +/// +public sealed class ConditionNot : ConditionBase +{ + ConditionBase m_Condition; + + + public ConditionNot(ConditionBase cond) + : base() + { + m_Condition = cond; + } + + public override bool Evaluate() + { + return !m_Condition.Evaluate(); + } +} + +/// +/// 总是满足 +/// +public sealed class ConditionAlways : ConditionBase +{ + public override bool Evaluate() + { + return true; + } +} + +/// +/// 总是不满足 +/// +public sealed class ConditionAlwaysNot : ConditionBase +{ + public override bool Evaluate() + { + return false; + } +} + +/// +/// 两个condition都达成才会返回真 +/// +public sealed class ConditionAnd : ConditionBase +{ + ConditionBase m_FirstCondition, m_LastCondition; + + + public ConditionAnd(ConditionBase first, ConditionBase last) + : base() + { + m_FirstCondition = first; + m_LastCondition = last; + } + + public override bool Evaluate() + { + return m_FirstCondition.Evaluate() && m_LastCondition.Evaluate(); + } +} + +/// +/// 两个condition至少一个达成才会返回真 +/// +public sealed class ConditionOr : ConditionBase +{ + ConditionBase m_FirstCondition, m_LastCondition; + + + public ConditionOr(ConditionBase first, ConditionBase last) + : base() + { + m_FirstCondition = first; + m_LastCondition = last; + } + + public override bool Evaluate() + { + return m_FirstCondition.Evaluate() || m_LastCondition.Evaluate(); + } +} + + +/// +/// 两个condition都不达成才会返回真 +/// +public sealed class ConditionNone : ConditionBase +{ + ConditionBase m_FirstCondition, m_LastCondition; + + public ConditionNone(ConditionBase first, ConditionBase last) + : base() + { + m_FirstCondition = first; + m_LastCondition = last; + } + + public override bool Evaluate() + { + return !m_FirstCondition.Evaluate() && !m_LastCondition.Evaluate(); + } +} + + +/// +/// 多个condition都达成才会返回真 +/// +public sealed class ConditionMultiAnd : ConditionBase +{ + List m_Conditions = new List(); + + public ConditionMultiAnd(List conditions) + : base() + { + m_Conditions.AddRange(conditions); + } + + public override bool Evaluate() + { + foreach(var condition in m_Conditions) + { + if(!condition.Evaluate()) + return false; + } + return true; + } +} + +/// +/// 多个condition至少一个达成才会返回真 +/// +public sealed class ConditionMultiOr : ConditionBase +{ + List m_Conditions; + + public ConditionMultiOr(List conditions) + : base() + { + m_Conditions.AddRange(conditions); + } + + public override bool Evaluate() + { + foreach (var condition in m_Conditions) + { + if (condition.Evaluate()) + return true; + } + return false; + } +} + +/// +/// 多个condition都不达成才会返回真 +/// +public sealed class ConditionMultiNone : ConditionBase +{ + List m_Conditions; + + public ConditionMultiNone(List conditions) + : base() + { + m_Conditions.AddRange(conditions); + } + + public override bool Evaluate() + { + foreach (var condition in m_Conditions) + { + if (condition.Evaluate()) + return false; + } + return true; + } +} + diff --git a/Assets/Scripts/Avatar/Conditions/ConditionBase.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionBase.cs.meta new file mode 100644 index 00000000..4c321ffd --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 21029775aaf8cdd4a868a45725313c3a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionButtonHold.cs b/Assets/Scripts/Avatar/Conditions/ConditionButtonHold.cs new file mode 100644 index 00000000..52abad03 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionButtonHold.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionButtonHold : ConditionBase +{ + GamepadButton m_Button; + + public ConditionButtonHold(GamepadButton button) + { + m_Button = button; + } + + public override bool Evaluate() + { + return InputManager.Instance.IsButtonHold(m_Button); + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionButtonHold.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionButtonHold.cs.meta new file mode 100644 index 00000000..82d350e2 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionButtonHold.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2b0cd6f63cbe32649a15ab38d5bb6ee3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionCheckHp.cs b/Assets/Scripts/Avatar/Conditions/ConditionCheckHp.cs new file mode 100644 index 00000000..ec4e489c --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionCheckHp.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionCheckHp : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionCheckHp.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionCheckHp.cs.meta new file mode 100644 index 00000000..e5b205b2 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionCheckHp.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e4b80b2be76ae9149af7b8a57f1e68ef +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionCheckMp.cs b/Assets/Scripts/Avatar/Conditions/ConditionCheckMp.cs new file mode 100644 index 00000000..c14bff3c --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionCheckMp.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionCheckMp : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionCheckMp.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionCheckMp.cs.meta new file mode 100644 index 00000000..d920a18f --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionCheckMp.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a603843f7ac083c45ba5b2ec23d4cc0b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionCombo.cs b/Assets/Scripts/Avatar/Conditions/ConditionCombo.cs new file mode 100644 index 00000000..1b6159cb --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionCombo.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 连击操作,综合ConditionMotionRange和ConditionCommand +/// +public class ConditionCombo : ConditionBase +{ + public override bool Evaluate() + { + throw new System.NotImplementedException(); + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionCombo.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionCombo.cs.meta new file mode 100644 index 00000000..45582943 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionCombo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 015528a2fbc923f45b1e25c11a6ade2b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionCommand.cs b/Assets/Scripts/Avatar/Conditions/ConditionCommand.cs new file mode 100644 index 00000000..d735ef5b --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionCommand.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 按下某个command +/// +public class ConditionCommand : ConditionBase +{ + GamepadButton m_TargetCommand; + + public ConditionCommand(GamepadButton command) + { + m_TargetCommand = command; + } + + public override bool Evaluate() + { + return InputManager.Instance.CurrentCommand.code == m_TargetCommand; + } + +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionCommand.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionCommand.cs.meta new file mode 100644 index 00000000..100638e6 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionCommand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6334908b568b7c046bbeb3f526f95841 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionCommandSeq.cs b/Assets/Scripts/Avatar/Conditions/ConditionCommandSeq.cs new file mode 100644 index 00000000..71a7dbf3 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionCommandSeq.cs @@ -0,0 +1,54 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 一个command序列,用来触发连击 +/// +public class ConditionCommandSeq : ConditionBase +{ + List m_CommandSeq = new List(); + float m_DeltaTime = 0; + List m_LastCmdID = new List(); + + List id = new List(); + + public ConditionCommandSeq(List commandSeq, float maxDeltaTime) + { + m_CommandSeq.AddRange(commandSeq); + m_DeltaTime = maxDeltaTime; + } + + public override bool Evaluate() + { + List commandRecord = InputManager.Instance.CommandRecord; + if (commandRecord == null || commandRecord.Count < m_CommandSeq.Count) + return false; + id.Clear(); + for (int i = 1; i < m_CommandSeq.Count; ++i) + { + GamepadButton button = m_CommandSeq[i]; + GamepadButton preButton = m_CommandSeq[i-1]; + int j = commandRecord.Count - m_CommandSeq.Count + i; + Command cmd = commandRecord[j]; + Command preCmd = commandRecord[j-1]; + if (preCmd.code != preButton || cmd.code != button) + return false; + if (cmd.time - preCmd.time > m_DeltaTime) + return false; + id.Add(preCmd.id); + if (j == commandRecord.Count - 1) + id.Add(cmd.id); + } + + //for (int i = 0; i < id.Count; ++i) + //{ + // if (m_LastCmdID.Contains(id[i])) + // return false; + //} + //m_LastCmdID.Clear(); + //m_LastCmdID.AddRange(id); + + return true; + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionCommandSeq.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionCommandSeq.cs.meta new file mode 100644 index 00000000..fc77bd3c --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionCommandSeq.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7316354e3f99412419c866e0fc3906c6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionInair.cs b/Assets/Scripts/Avatar/Conditions/ConditionInair.cs new file mode 100644 index 00000000..2c631970 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionInair.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 某个角色是否浮空 +/// +public class ConditionInAir : ConditionBase +{ + PhysicsPrimitive m_Prim; + + public ConditionInAir(PhysicsPrimitive prim) + { + m_Prim = prim; + } + + public override bool Evaluate() + { + return m_Prim.Bound.w > PhysicsWorld.Ground; + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionInair.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionInair.cs.meta new file mode 100644 index 00000000..8bbf610f --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionInair.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8855eebdb67a2cc4baeb2a21e5b40ed4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionJumpDone.cs b/Assets/Scripts/Avatar/Conditions/ConditionJumpDone.cs new file mode 100644 index 00000000..8d900348 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionJumpDone.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionJumpDone : ConditionBase +{ + JumpAbility m_Jump; + + public ConditionJumpDone(JumpAbility jump) + { + m_Jump = jump; + } + + public override bool Evaluate() + { + return m_Jump.IsJumpDone(); + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionJumpDone.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionJumpDone.cs.meta new file mode 100644 index 00000000..34a9de96 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionJumpDone.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 734f6d264357f2c43b13f8203f7ecd41 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionJumpOnGround.cs b/Assets/Scripts/Avatar/Conditions/ConditionJumpOnGround.cs new file mode 100644 index 00000000..47f74cab --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionJumpOnGround.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionJumpOnGround : ConditionBase +{ + JumpAbility m_Jump; + + public ConditionJumpOnGround(JumpAbility jump) + { + m_Jump = jump; + } + + public override bool Evaluate() + { + return m_Jump.IsJumpGround(); + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionJumpOnGround.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionJumpOnGround.cs.meta new file mode 100644 index 00000000..33f0341b --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionJumpOnGround.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1a04452218ec0b849bbed3d0ba35cd12 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionJumpReady.cs b/Assets/Scripts/Avatar/Conditions/ConditionJumpReady.cs new file mode 100644 index 00000000..a6bd96c0 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionJumpReady.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionJumpReady : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionJumpReady.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionJumpReady.cs.meta new file mode 100644 index 00000000..d947e116 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionJumpReady.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 300b4929ffe151c43bfce427115a05a9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionMotionAtEnd.cs b/Assets/Scripts/Avatar/Conditions/ConditionMotionAtEnd.cs new file mode 100644 index 00000000..18d71e86 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionMotionAtEnd.cs @@ -0,0 +1,31 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 动画已经播放完毕 +/// +public class ConditionMotionAtEnd : ConditionBase +{ + Animator m_Animator; + int m_AnimationHash; + + public ConditionMotionAtEnd(Animator animator, int animationHash) + : base() + { + m_Animator = animator; + m_AnimationHash = animationHash; + } + + public override bool Evaluate() + { + AnimatorStateInfo info = m_Animator.GetCurrentAnimatorStateInfo(0); + if(info.shortNameHash == m_AnimationHash) + { + float t = info.normalizedTime; + if (t >= 0.99f) + return true; + } + return false; + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionMotionAtEnd.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionMotionAtEnd.cs.meta new file mode 100644 index 00000000..1688dd68 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionMotionAtEnd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f5cbdf2ebe12b5d46afa21a62609d15c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionMotionFrameRange.cs b/Assets/Scripts/Avatar/Conditions/ConditionMotionFrameRange.cs new file mode 100644 index 00000000..282ef929 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionMotionFrameRange.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionAnimFrameRange : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionMotionFrameRange.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionMotionFrameRange.cs.meta new file mode 100644 index 00000000..3fc88fb1 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionMotionFrameRange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 28e7aa2c7b5a9d74b936ec5731eeec36 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionMotionRange.cs b/Assets/Scripts/Avatar/Conditions/ConditionMotionRange.cs new file mode 100644 index 00000000..c902ae26 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionMotionRange.cs @@ -0,0 +1,28 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 某个动画是否播放到了某个时间(归一化了的)范围内 +/// +public sealed class ConditionMotionRange : ConditionBase +{ + Vector2 m_TimeRange = new Vector2(); + Animator m_Animator; + + public ConditionMotionRange(Animator animator, float start, float end) + { + m_Animator = animator; + + m_TimeRange.Set(start, end); + } + + public override bool Evaluate() + { + AnimatorStateInfo info = m_Animator.GetCurrentAnimatorStateInfo(0); + float time = info.normalizedTime; + bool result = time >= m_TimeRange.x && time <= m_TimeRange.y; + return result; + } + +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionMotionRange.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionMotionRange.cs.meta new file mode 100644 index 00000000..926a8560 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionMotionRange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 56b6b5bfaf0d4e147a2f0f1809e7739b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionMoveButtonHold.cs b/Assets/Scripts/Avatar/Conditions/ConditionMoveButtonHold.cs new file mode 100644 index 00000000..1084f191 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionMoveButtonHold.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionMoveButtonHold : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionMoveButtonHold.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionMoveButtonHold.cs.meta new file mode 100644 index 00000000..45cf47bb --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionMoveButtonHold.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 77299e998cbe9d1429c2d0b731bff6e3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionNoMoveButtonHold.cs b/Assets/Scripts/Avatar/Conditions/ConditionNoMoveButtonHold.cs new file mode 100644 index 00000000..06a76784 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionNoMoveButtonHold.cs @@ -0,0 +1,16 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionNoMoveButtonHold : ConditionBase +{ + public ConditionNoMoveButtonHold() + { + } + + public override bool Evaluate() + { + bool isMoveButtonDown = InputManager.Instance.IsButtonHold(GamepadButton.Left) || InputManager.Instance.IsButtonHold(GamepadButton.Right); + return !isMoveButtonDown; + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionNoMoveButtonHold.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionNoMoveButtonHold.cs.meta new file mode 100644 index 00000000..db883c19 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionNoMoveButtonHold.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ce1302d58bf3a7043b6e2e25d13525d9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionNotHit.cs b/Assets/Scripts/Avatar/Conditions/ConditionNotHit.cs new file mode 100644 index 00000000..8db94951 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionNotHit.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionNotHit : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionNotHit.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionNotHit.cs.meta new file mode 100644 index 00000000..7058713f --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionNotHit.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b0d86b3d8867b144f90fcedf4a6351c3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionNotHurt.cs b/Assets/Scripts/Avatar/Conditions/ConditionNotHurt.cs new file mode 100644 index 00000000..9604677a --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionNotHurt.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionNotHurt : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionNotHurt.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionNotHurt.cs.meta new file mode 100644 index 00000000..bbe77240 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionNotHurt.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ab089a23fff18a647856f2e33a145784 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionTowardLeft.cs b/Assets/Scripts/Avatar/Conditions/ConditionTowardLeft.cs new file mode 100644 index 00000000..36cbfd05 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionTowardLeft.cs @@ -0,0 +1,19 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionTowardLeft : ConditionBase +{ + Transform m_Obj; + + public ConditionTowardLeft(Transform obj) + { + m_Obj = obj; + } + + public override bool Evaluate() + { + return Mathf.Approximately(m_Obj.rotation.eulerAngles.y, 270f) + || Mathf.Approximately(m_Obj.rotation.eulerAngles.y, -90f); + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionTowardLeft.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionTowardLeft.cs.meta new file mode 100644 index 00000000..e3a399a6 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionTowardLeft.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e2f90baa8b157234f93cdb949b43cd24 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/ConditionTowardRight.cs b/Assets/Scripts/Avatar/Conditions/ConditionTowardRight.cs new file mode 100644 index 00000000..d26a1fd0 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionTowardRight.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ConditionTowardRight : ConditionBase +{ + Transform m_Obj; + + public ConditionTowardRight(Transform obj) + { + m_Obj = obj; + } + + public override bool Evaluate() + { + return Mathf.Approximately(m_Obj.rotation.eulerAngles.y, 90f); + } +} diff --git a/Assets/Scripts/Avatar/Conditions/ConditionTowardRight.cs.meta b/Assets/Scripts/Avatar/Conditions/ConditionTowardRight.cs.meta new file mode 100644 index 00000000..901efb57 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/ConditionTowardRight.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ab6f3e1b40a1eff4196b069e4fd25469 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/Interactive.meta b/Assets/Scripts/Avatar/Conditions/Interactive.meta new file mode 100644 index 00000000..cf125393 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/Interactive.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 38b2530cdab57854e90007371516c2bf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/Interactive/ConditionHit.cs b/Assets/Scripts/Avatar/Conditions/Interactive/ConditionHit.cs new file mode 100644 index 00000000..d36cc538 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/Interactive/ConditionHit.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// hitbox击中 +public class ConditionHit : ConditionBase +{ + IInteractable m_Obj; + + public ConditionHit(IInteractable obj) + { + m_Obj = obj; + + } + + public override bool Evaluate() + { + bool isHit = m_Obj.IsHit(); + return isHit; + } +} diff --git a/Assets/Scripts/Avatar/Conditions/Interactive/ConditionHit.cs.meta b/Assets/Scripts/Avatar/Conditions/Interactive/ConditionHit.cs.meta new file mode 100644 index 00000000..9c607983 --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/Interactive/ConditionHit.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c354907230901bf45849e4bb93601b60 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Conditions/Interactive/ConditionHurt.cs b/Assets/Scripts/Avatar/Conditions/Interactive/ConditionHurt.cs new file mode 100644 index 00000000..8a76528d --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/Interactive/ConditionHurt.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// hurtbox被击中 +public class ConditionHurt : ConditionBase +{ + IInteractable m_Obj; + + public ConditionHurt(IInteractable obj) + { + m_Obj = obj; + } + + public override bool Evaluate() + { + bool isHit = m_Obj.IsHit(); + return isHit; + } +} diff --git a/Assets/Scripts/Avatar/Conditions/Interactive/ConditionHurt.cs.meta b/Assets/Scripts/Avatar/Conditions/Interactive/ConditionHurt.cs.meta new file mode 100644 index 00000000..e54feb2d --- /dev/null +++ b/Assets/Scripts/Avatar/Conditions/Interactive/ConditionHurt.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 62448f0af4616f64c987ac12131db584 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/HitDef.cs b/Assets/Scripts/Avatar/HitDef.cs new file mode 100644 index 00000000..a0361753 --- /dev/null +++ b/Assets/Scripts/Avatar/HitDef.cs @@ -0,0 +1,9 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// 一个hit的效果,如果一个attack有多个hit,需要定义多个HitDef +public struct HitDefination +{ + +} diff --git a/Assets/Scripts/Avatar/HitDef.cs.meta b/Assets/Scripts/Avatar/HitDef.cs.meta new file mode 100644 index 00000000..d542f9ff --- /dev/null +++ b/Assets/Scripts/Avatar/HitDef.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 25b7556b2c9481e49938afa25157f3fc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/IInteractable.cs b/Assets/Scripts/Avatar/IInteractable.cs new file mode 100644 index 00000000..23e49912 --- /dev/null +++ b/Assets/Scripts/Avatar/IInteractable.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public interface IInteractable +{ + PhysicsPrimitive[] GetAllPrimitive(); + + PhysicsBox GetHitbox(); + + PhysicsBox GetHurtbox(); + + PhysicsPrimitive[] GetAllHit(); + + bool IsHit(); + + bool IsHurt(); + + + +} diff --git a/Assets/Scripts/Avatar/IInteractable.cs.meta b/Assets/Scripts/Avatar/IInteractable.cs.meta new file mode 100644 index 00000000..ae065c04 --- /dev/null +++ b/Assets/Scripts/Avatar/IInteractable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f6f243903bde9804488701c6d0f7920a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Trigger.cs b/Assets/Scripts/Avatar/Trigger.cs new file mode 100644 index 00000000..70a6d0f4 --- /dev/null +++ b/Assets/Scripts/Avatar/Trigger.cs @@ -0,0 +1,72 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public enum TriggerOnlyOnce +{ + Off = 0, + On = 1, +} + +public enum TriggerSwallow +{ + Off = 0, + On = 1 +} + + +/// +/// 不同效果的trigger继承这个基类 +/// + +public sealed class Trigger +{ + private TriggerSwallow m_Swallow; + public bool Swallow + { + get + { + return m_Swallow == TriggerSwallow.On; + } + } + + private ConditionBase m_Condition; + private List m_ActionChain = new List(); + + public Trigger(ConditionBase condition, List actions, TriggerOnlyOnce onlyOnce = TriggerOnlyOnce.Off, TriggerSwallow swallow = TriggerSwallow.On) + { + m_Swallow = swallow; + m_Condition = condition; + m_ActionChain.AddRange(actions); + } + public Trigger(ConditionBase condition, ActionBase action, TriggerOnlyOnce onlyOnce = TriggerOnlyOnce.Off, TriggerSwallow swallow = TriggerSwallow.On) + { + m_Swallow = swallow; + m_Condition = condition; + m_ActionChain.Add(action); + } + + //重置触发器的参数 + public void Reset() + { + + } + + /// + /// 如果触发执行了,返回true,否则返回false + /// + /// + public bool Update() + { + if (m_Condition.Evaluate()) + { + foreach(var action in m_ActionChain) + { + action.Execute(); + } + return true; + } + return false; + } + +} \ No newline at end of file diff --git a/Assets/Scripts/Avatar/Trigger.cs.meta b/Assets/Scripts/Avatar/Trigger.cs.meta new file mode 100644 index 00000000..91d7d1b8 --- /dev/null +++ b/Assets/Scripts/Avatar/Trigger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8c2bda4ac997ddc4e8e9e38c7c718882 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- cgit v1.1-26-g67d0