summaryrefslogtreecommitdiff
path: root/SurvivalTest/Assets/Scripts/Managers
diff options
context:
space:
mode:
Diffstat (limited to 'SurvivalTest/Assets/Scripts/Managers')
-rw-r--r--SurvivalTest/Assets/Scripts/Managers/BattleManager.cs1
-rw-r--r--SurvivalTest/Assets/Scripts/Managers/PlayerManager.cs9
-rw-r--r--SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs76
-rw-r--r--SurvivalTest/Assets/Scripts/Managers/PlayerManager_Items.cs25
4 files changed, 84 insertions, 27 deletions
diff --git a/SurvivalTest/Assets/Scripts/Managers/BattleManager.cs b/SurvivalTest/Assets/Scripts/Managers/BattleManager.cs
index 102bc34..4cdaa72 100644
--- a/SurvivalTest/Assets/Scripts/Managers/BattleManager.cs
+++ b/SurvivalTest/Assets/Scripts/Managers/BattleManager.cs
@@ -8,6 +8,7 @@ public class BattleManager : Singleton<BattleManager>
public void Init()
{
UIManager.Instance.OpenPanel(PanelType.PanelItemBar, null);
+ UIManager.Instance.OpenPanel(PanelType.PanelEquipBar, null);
}
public void Update()
diff --git a/SurvivalTest/Assets/Scripts/Managers/PlayerManager.cs b/SurvivalTest/Assets/Scripts/Managers/PlayerManager.cs
index 59593b0..8bd1dd0 100644
--- a/SurvivalTest/Assets/Scripts/Managers/PlayerManager.cs
+++ b/SurvivalTest/Assets/Scripts/Managers/PlayerManager.cs
@@ -8,10 +8,6 @@ public partial class PlayerManager : Singleton<PlayerManager>
// 角色
private CrewScript m_Crew;
- // 持有的装备
- public List<EquipBase> equips { get { return m_Equips; } }
- private List<EquipBase> m_Equips = new List<EquipBase>();
-
// 持有的饰品
public List<DecorationBase> decorations { get { return m_Decorations; } }
private List<DecorationBase> m_Decorations = new List<DecorationBase>();
@@ -19,12 +15,15 @@ public partial class PlayerManager : Singleton<PlayerManager>
public void Init()
{
InitItems();
-
+ InitEquips();
}
public void Update()
{
+ CheckInput();
+
UpdateItems();
+ UpdateEquips();
}
public void SetCrew(CrewScript crew)
diff --git a/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs b/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs
index ce85849..67e8ae7 100644
--- a/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs
+++ b/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs
@@ -2,9 +2,83 @@ 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;
+
+ void InitEquips()
+ {
+ m_Equips.Add(new Equip_Gun());
+ m_Equips.Add(new Equip_GrenadeLauncher());
+ }
+
+ /// <summary>
+ /// 装备循环
+ /// </summary>
+ void UpdateEquips()
+ {
+ for(int i = 0; i < m_Equips.Count; ++i)
+ {
+ m_Equips[i].Update();
+ }
+ }
+
+ /// <summary>
+ /// 检查输入,使用装备
+ /// </summary>
+ void CheckInput()
+ {
+ if (Input.GetButtonDown("Fire1") || (Input.GetAxis("GunTrigger") == 1))
+ {
+ if (m_CoFire == null)
+ {
+ m_CoFire = GameApp.Instance.StartCoroutine(coFire());
+ }
+ }
+ if (!Input.GetButton("Fire1") && (Input.GetAxis("GunTrigger") == 0))
+ {
+ if (m_CoFire != null)
+ {
+ GameApp.Instance.StopCoroutine(m_CoFire);
+ 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);
+ if(countDown <= 0)
+ {
+ equip.OnTrigger(m_Crew.gameObject);
+ TinyCountDown.Instance.Set(id, equip.interval);
+ }
+ else
+ {
+ }
+ }
+ }
+ yield return null;
+ }
+ }
} \ No newline at end of file
diff --git a/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Items.cs b/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Items.cs
index a0cfe52..df924ca 100644
--- a/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Items.cs
+++ b/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Items.cs
@@ -8,37 +8,20 @@ public partial class PlayerManager : Singleton<PlayerManager>
public List<ItemBase> items { get { return m_Items; } }
private List<ItemBase> m_Items = new List<ItemBase>();
- // 当前选中的物品
- ItemBase m_CurrentItem = null;
-
void InitItems()
{
m_Items.Add(new Item_B2Phone());
m_Items.Add(new Item_SpaceBeamer());
}
- /// <summary>
- /// 选中物品
- /// </summary>
- public void SetCurrentItem(ItemBase item)
+ public void UseItem(ItemBase item)
{
- if (!items.Contains(item))
+ if(!items.Contains(item))
{
- Debug.LogError("No such item");
+ Debug.LogError("No such item, name=" + item.name);
return;
}
- m_CurrentItem = item;
- }
-
- /// <summary>
- /// 使用当前道具
- /// </summary>
- public void UseCurrentItem()
- {
- if (m_CurrentItem == null)
- return;
-
- m_CurrentItem.OnUse(m_Crew.gameObject);
+ item.OnUse(m_Crew.gameObject);
}
void UpdateItems()