/// <summary> /// 初始化函数,加载文件路径 /// </summary> public void Init() { PlayerStatusManager.Instance.LvUP += StartUpdateUI; List <BaseSkill> SkillInfoList = new List <BaseSkill>(); SkillItemList = new List <SkillListItem>(); string sql = "select * from skill_information"; DataTable dt = MysqlHelper.ExecuteTable(sql, CommandType.Text, null); foreach (DataRow item in dt.Rows) { Type type = Type.GetType(item["skill_type"].ToString()); object[] parameters = new object[1]; parameters[0] = item; object obj = Activator.CreateInstance(type, parameters); BaseSkill bs = obj as BaseSkill; SkillInfoList.Add(bs); } for (int i = 0; i < SkillInfoList.Count; i++) { if (SkillInfoList[i].PlayerType == PlayerStatusManager.Instance.playerInfo.PlayerType) { SkillListItem si = (SkillListItem)UIPackage.CreateObject("SkillMenu", "SkillListItem"); si.SkillInfo = SkillInfoList[i]; si.SetValues(); SkillItemList.Add(si); } } }
private void OnDragStart(EventContext context) { SkillListItem si = (SkillListItem)context.sender; context.PreventDefault(); //DragDropManager.inst.StartDrag(sb, sb.icon, sb.icon, (int)context.data); DragDropManager.inst.StartDrag(si, si.Icon.icon, si, (int)context.data); }
/// <summary> /// Carrega todas as skills ativas do heroi que está em seu turno no menu de skills. /// </summary> /// <param name="skills"> Lista com todas as skills do heroi. </param> public void UpdateSkillsContent(List <Skill> skills) { // Deleta todos os itens previamente alocados no content foreach (SkillElement element in skillsContent.GetComponentsInChildren <SkillElement>()) { Destroy(element.gameObject); } // Variável auxiliar para a ordenação dos itens AxisInteractableItem lastItem = null; // Passa por todas as skills da lista, adicionando as ativas no menu e as ordenando foreach (PlayerSkill skill in skills) { if (skill.active) { // Instancia um novo item e o coloca no content GameObject newSkill = Instantiate(skillObject, skillsContent); newSkill.GetComponent <SkillElement>().skill = skill; newSkill.GetComponent <Image>().sprite = skill.skillImage; // Define este script como responsável pelo item criado SkillListItem newSkillListItem = newSkill.GetComponent <SkillListItem>(); newSkillListItem.skillList = this; // Adiciona a decisão de clique no item criado ClickableItem newClickableItem = newSkill.GetComponent <ClickableItem>(); newClickableItem.BCD = clickDecision; // Adiciona a skill no item que a ativará SkillItem newSkillItem = newSkill.GetComponent <SkillItem>(); newSkillItem.skill = skill; // Ordena o item na lista AxisInteractableItem newItem = newSkill.GetComponent <AxisInteractableItem>(); if (lastItem != null) { newItem.upItem = lastItem; lastItem.downItem = newItem; } else { manager.firstItem = newItem; } lastItem = newItem; } } manager.Active(); }
/// <summary> /// 拖拽释放 /// </summary> /// <param name="context"></param> private void OnDrop(EventContext context) { int i = Int32.Parse(((GButton)context.sender).data.ToString()); //ShortCutList[i-1].icon = (string)context.data; try { SkillListItem si = (SkillListItem)context.data; //foreach (var item in shortCutList) //{ // if(item.Skillinfo== si.SkillInfo) // return; //} shortCutList[i].ShortCutInfo.SkillID = si.SkillInfo.SkillID; shortCutList[i].Skillinfo = si.SkillInfo; shortCutList[i].icon = si.Icon.icon; } catch (Exception) { } }