using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class HoldActive : MonoBehaviour { Character player; InputController input; Inventory inven; public void OnInitialized(MapManager mapManager) { img.enabled = equip.idx != string.Empty; player = mapManager.player.character; player.ec.Remove(OnEvent); player.ec.Add(OnEvent); input = player.GetComponent(); inven = mapManager.player.inven; inven.ec.Remove(OnEvent); inven.ec.Add(OnEvent); } public Image img; public Text txtName; public Slider slider; public Text txtCnt; [Space(10)] public ItemData equip; void OnEvent(int type, object value) { switch ((Character.State)type) { case Character.State.ActiveItem: { if (equip != null) player.skill.UnInstall(equip); equip = (ItemData)value; player.skill.Install(equip); player.MANA = (int)equip.value; player.MANA_MAX = (int)equip.value; prefab = PrefabManager.Instance.PrefabGet($"Effect/ActiveSkill {equip.idx}").GetComponent(); img.sprite = SpriteManager.Instance.SpriteGet("AtlasIngame", $"ui{equip.idx}"); img.enabled = true; txtName.text = $"{DataManager.Instance.dataLanguage.Search("item", $"{equip.idx}")}"; Refresh(); } break; case Character.State.Mana_Change: { Refresh(); } break; } } [Space(10)] public int cntCurrent; void Refresh() { slider.value = (float)player.MANA / player.MANA_MAX; txtCnt.text = $"{player.MANA}/{player.MANA_MAX}"; } public ActiveSkill prefab = null; private void Update() { if(prefab != null && Input.GetKeyDown(KeyCode.Space) && player.MANA_MAX <= player.MANA) { player.MANA = 0; Refresh(); StartCoroutine(Active_Wait(player.transform.position)); } } IEnumerator Active_Wait(Vector3 pos) { ActiveSkill active = player.map.ObjectCreate(prefab.gameObject, prefab.targetUser ? player.transform : null, Vector3.one, pos).GetComponent(); yield return new WaitForSeconds(prefab.delay); active.OnInitialized(player, LayerMask.NameToLayer($"HitAll")); } }