summaryrefslogtreecommitdiff
path: root/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs
diff options
context:
space:
mode:
Diffstat (limited to 'SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs')
-rw-r--r--SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs140
1 files changed, 0 insertions, 140 deletions
diff --git a/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs b/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs
deleted file mode 100644
index 7f50ea9..0000000
--- a/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs
+++ /dev/null
@@ -1,140 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public partial class PlayerManager : Singleton<PlayerManager>
-{
- // 持有的装备
- public List<EquipBase> equips { get { return m_Equips; } }
- private List<EquipBase> m_Equips = new List<EquipBase>();
-
- private Coroutine m_CoFire;
-
- public bool isFire { get; private set; }
-
- private bool m_AutoFire;
- private float m_AutoFireDuration = 0.8f;
-
- private float m_LastAxisValue = 0;
-
- void InitEquips()
- {
- m_Equips.Add(new Equip_LightSaber());
- m_Equips.Add(new Equip_Gun());
- m_Equips.Add(new Equip_GrenadeLauncher());
- m_Equips.Add(new Equip_Boomerang());
- m_Equips.Add(new Equip_TeslaCoil());
- m_Equips.Add(new Equip_MightyGlove());
-
- m_AutoFire = false;
-
- m_LastAxisValue = Input.GetAxisRaw("GunTrigger");
- }
-
- /// <summary>
- /// 装备循环
- /// </summary>
- void UpdateEquips()
- {
- for(int i = 0; i < m_Equips.Count; ++i)
- {
- m_Equips[i].Update(m_Crew.gameObject);
- }
- }
-
- /// <summary>
- /// 检查输入,使用装备
- /// </summary>
- void CheckInput()
- {
- float axis = Input.GetAxisRaw("GunTrigger");
-
- if (Input.GetButtonDown("Fire1") || (axis == 1 && m_LastAxisValue != 1))
- {
- if(m_AutoFire)
- {
- m_AutoFire = false;
- }
-
- isFire = true;
- RunFireCoroutine(true);
- }
-
- if (!m_AutoFire && !Input.GetButton("Fire1") && (axis == 0 && m_LastAxisValue != 0))
- {
- if (TinyCountDown.Instance.Get("ReleaseFire") > 0)
- {
- m_AutoFire = true;
- isFire = true;
- RunFireCoroutine(true);
- }
- else
- {
- TinyCountDown.Instance.Set("ReleaseFire", m_AutoFireDuration);
- isFire = false;
- RunFireCoroutine(false);
- }
- }
-
- m_LastAxisValue = axis;
- }
-
- void RunFireCoroutine(bool start)
- {
- if (start)
- {
- if (m_CoFire == null)
- {
- m_CoFire = GameApp.Instance.StartCoroutine(coFire());
- }
- }
- else
- {
- if (m_CoFire != null)
- {
- GameApp.Instance.StopCoroutine(m_CoFire);
- m_Equips.ForEach(e => e.OnStop(m_Crew.gameObject));
- m_CoFire = null;
- }
- }
- }
-
- /// <summary>
- /// 自由开火
- /// </summary>
- /// <returns></returns>
- IEnumerator coFire()
- {
- while (true)
- {
- for(int i = 0; i < m_Equips.Count; ++i)
- {
- EquipBase equip = m_Equips[i];
- if (equip == null)
- continue;
- if(equip.autoMode == EquipBase.AutoMode.Interval)
- {
- string id = equip.GetHashCode().ToString();
- float countDown = TinyCountDown.Instance.Get(id); // 倒计时脱离fire单独计时
- if(countDown <= 0)
- {
- equip.OnTrigger(m_Crew.gameObject);
- TinyCountDown.Instance.Set(id, equip.interval);
- }
- else
- {
- }
- }
- else if(equip.autoMode == EquipBase.AutoMode.Condition)
- {
- if(equip.CheckCondition(m_Crew.gameObject))
- {
- equip.OnTrigger(m_Crew.gameObject);
- }
- }
- }
- yield return null;
- }
- }
-
-} \ No newline at end of file