summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Avatar
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Avatar')
-rw-r--r--Assets/Scripts/Avatar/Abilities/AttackAbility.cs2
-rw-r--r--Assets/Scripts/Avatar/Abilities/UberAbility.cs12
-rw-r--r--Assets/Scripts/Avatar/Abilities/UberAbility.cs.meta11
-rw-r--r--Assets/Scripts/Avatar/AbilitySystem.cs19
-rw-r--r--Assets/Scripts/Avatar/Actions/ActionEffects.meta8
-rw-r--r--Assets/Scripts/Avatar/Actions/ActionSetLocalVelocity.cs21
-rw-r--r--Assets/Scripts/Avatar/Actions/ActionSetLocalVelocity.cs.meta11
7 files changed, 81 insertions, 3 deletions
diff --git a/Assets/Scripts/Avatar/Abilities/AttackAbility.cs b/Assets/Scripts/Avatar/Abilities/AttackAbility.cs
index 38c5d62f..c6e4d21e 100644
--- a/Assets/Scripts/Avatar/Abilities/AttackAbility.cs
+++ b/Assets/Scripts/Avatar/Abilities/AttackAbility.cs
@@ -105,7 +105,7 @@ public class AttackAbility : AbilityBase
hitInfo.AddRecord(avatar);
Debug.Log("hit " + avatar.Name);
PhysicsBody body = avatar.Body;
- body.AddForce(new Vector3(3000, 0, 0));
+ body.SetLocalForce(new Vector3(1000, 5000, 0));
if(avatar is ArmorSoldierScript)
{
ArmorSoldierScript solider = avatar as ArmorSoldierScript;
diff --git a/Assets/Scripts/Avatar/Abilities/UberAbility.cs b/Assets/Scripts/Avatar/Abilities/UberAbility.cs
new file mode 100644
index 00000000..0a5bb8c5
--- /dev/null
+++ b/Assets/Scripts/Avatar/Abilities/UberAbility.cs
@@ -0,0 +1,12 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+// 一个角色只能有一个uber ability,用来处理状态的自动切换
+public abstract class UberAbility : AbilityBase
+{
+ public abstract void OnUpdate();
+
+ public abstract void OnLateUpdate();
+
+}
diff --git a/Assets/Scripts/Avatar/Abilities/UberAbility.cs.meta b/Assets/Scripts/Avatar/Abilities/UberAbility.cs.meta
new file mode 100644
index 00000000..644a961f
--- /dev/null
+++ b/Assets/Scripts/Avatar/Abilities/UberAbility.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4e409e4f283e85841a62293fe96b1cce
+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
index 024e73cb..3e2ab838 100644
--- a/Assets/Scripts/Avatar/AbilitySystem.cs
+++ b/Assets/Scripts/Avatar/AbilitySystem.cs
@@ -22,6 +22,8 @@ public class AbilitySystem
private List<AbilityBase> m_Abilities = new List<AbilityBase>();
+ private UberAbility m_UberAbility;
+
public AbilitySystem()
{
}
@@ -38,6 +40,11 @@ public class AbilitySystem
m_Currrent.OnEnter();
}
+ public void SetUberAbility(UberAbility ability)
+ {
+ m_UberAbility = ability;
+ }
+
public void AddAbility(AbilityBase ability)
{
m_Abilities.Add(ability);
@@ -49,7 +56,11 @@ public class AbilitySystem
{
m_Currrent.OnUpdate();
}
- }
+ if(m_UberAbility != null)
+ {
+ m_UberAbility.OnUpdate();
+ }
+ }
public void OnLateUpdate()
{
@@ -57,7 +68,11 @@ public class AbilitySystem
{
m_Currrent.OnLateUpdate();
}
- }
+ if(m_UberAbility != null)
+ {
+ m_UberAbility.OnLateUpdate();
+ }
+ }
public void OnHit(PhysicsCollisionInfo info)
{
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/ActionSetLocalVelocity.cs b/Assets/Scripts/Avatar/Actions/ActionSetLocalVelocity.cs
new file mode 100644
index 00000000..5e2f62ed
--- /dev/null
+++ b/Assets/Scripts/Avatar/Actions/ActionSetLocalVelocity.cs
@@ -0,0 +1,21 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class ActionSetLocalVelocity : ActionBase
+{
+ PhysicsBody m_Body;
+
+ Vector3 m_Velocity;
+
+ public ActionSetLocalVelocity(PhysicsBody body, Vector3 localVelocity)
+ {
+ m_Body = body;
+ m_Velocity = localVelocity;
+ }
+
+ public override void Execute()
+ {
+ m_Body.LocalVelocity = m_Velocity;
+ }
+}
diff --git a/Assets/Scripts/Avatar/Actions/ActionSetLocalVelocity.cs.meta b/Assets/Scripts/Avatar/Actions/ActionSetLocalVelocity.cs.meta
new file mode 100644
index 00000000..0a91e7cd
--- /dev/null
+++ b/Assets/Scripts/Avatar/Actions/ActionSetLocalVelocity.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d0c4285c1d134b045b7a5f323c258579
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: