You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.6 KiB
93 lines
2.6 KiB
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<InputController>(); |
|
|
|
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<ActiveSkill>(); |
|
|
|
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<ActiveSkill>(); |
|
|
|
yield return new WaitForSeconds(prefab.delay); |
|
|
|
active.OnInitialized(player, LayerMask.NameToLayer($"HitAll")); |
|
} |
|
}
|
|
|