summaryrefslogtreecommitdiff
path: root/SurvivalTest/Assets/Scripts/Weapons/WeaponBase.cs
diff options
context:
space:
mode:
Diffstat (limited to 'SurvivalTest/Assets/Scripts/Weapons/WeaponBase.cs')
-rw-r--r--SurvivalTest/Assets/Scripts/Weapons/WeaponBase.cs66
1 files changed, 66 insertions, 0 deletions
diff --git a/SurvivalTest/Assets/Scripts/Weapons/WeaponBase.cs b/SurvivalTest/Assets/Scripts/Weapons/WeaponBase.cs
new file mode 100644
index 0000000..d143199
--- /dev/null
+++ b/SurvivalTest/Assets/Scripts/Weapons/WeaponBase.cs
@@ -0,0 +1,66 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public abstract class WeaponBase
+{
+
+ public abstract string name { get; }
+
+ public abstract string iconPath { get; }
+
+ /// <summary>
+ /// 连发模式
+ /// </summary>
+ public enum AutoMode
+ {
+ Interval, // 按时连发,需要设置Interval
+ Condition, // 按条件触发,需要重写CheckCondition
+ Always, // 常驻
+ }
+
+ public abstract AutoMode autoMode { get; }
+
+ /// <summary>
+ /// 触发的时间间隔
+ /// </summary>
+ public virtual float interval { get; }
+
+ /// <summary>
+ /// 初始化
+ /// </summary>
+ public virtual void OnInitialize(GameObject owner)
+ {
+ }
+
+ /// <summary>
+ /// 销毁
+ /// </summary>
+ /// <param name="owner"></param>
+ public virtual void OnDestroy(GameObject owner)
+ {
+ }
+
+ /// <summary>
+ /// 使用装备
+ /// </summary>
+ public abstract void OnTrigger(GameObject owner);
+
+ public virtual bool CheckCondition(GameObject owner)
+ {
+ return false;
+ }
+
+ /// <summary>
+ /// 停止开火
+ /// </summary>
+ /// <param name="owner"></param>
+ public virtual void OnStop(GameObject owner)
+ {
+ }
+
+ public virtual void Update(GameObject owner)
+ {
+ }
+
+}