Super Knight : Enter the Dungeon
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

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