|
|
|
|
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"));
|
|
|
|
|
}
|
|
|
|
|
}
|