/// <summary> /// スキル説明ウィンドウ表示 /// </summary> /// <param name="skillID">0~4</param> public void ShowSkillWindow(Fighter chara, int skillID) { skillWindow.SetActive(true); skillWindowMana.gameObject.SetActive(true); if (showingChara == chara && showingSkillID == skillID) { skillConfirm = true; } else { skillConfirm = false; } showingChara = chara; showingSkillID = skillID; SkillList.Param skillInfo = SkillManager.I.GetSkillInfo(chara.data.skillList[skillID]); skillWindow.transform.FindChild("Name").GetComponent <Text>().text = skillInfo.Name; skillWindow.transform.FindChild("Detail").GetComponent <Text>().text = skillInfo.Detail; for (int i = 0; i < Mana.MAX; ++i) { Color color = Color.white; if (Fighter.manaCnt[i] < skillInfo.Require[i]) { color = Color.red; } skillWindowMana.SetManaText(i, skillInfo.Require[i], color); } }
/// <summary> /// 現在のマナ数に応じてスキルボタンの画像の明度を切り替える /// </summary> /// <param name="mana">それぞれのマナ個数</param> public void CheckMana(int[] mana) { int[] manas = Chara.manaCnt; enableAct = false; for (int i = 0; i < data.skillList.Length; ++i) { SkillList.Param skillInfo = SkillManager.I.GetSkillInfo(data.skillList[i]); bool enableUse = true; if (skillInfo.ID == CHANGE_SKILL_CODE && BattleManager.I.benchCharas.Count == 0) { enableUse = false; } if (GetBuffLevel(BUFF_WAIT) > 0) { charaButton.GetComponent <Image>().color = Color.gray; enableUse = false; } if (skillInfo.Active == 0) { enableUse = false; } else { for (int t = 0; t < Mana.MAX; ++t) { if (manas[t] < skillInfo.Require[t]) { enableUse = false; break; } } if (IsDead()) { enableUse = false; } } if (enableUse) { skillButtonList[i].GetComponent <Image>().color = Color.white; enableAct = true; } else { skillButtonList[i].GetComponent <Image>().color = Color.gray; } } if (GetBuffLevel(BUFF_WAIT) > 0 || IsDead()) { charaButton.GetComponent <Image>().color = Color.gray; } else { charaButton.GetComponent <Image>().color = Color.white; } }
public Fighter.FighterData GetFighterData() { Fighter.FighterData fighterData = new Fighter.FighterData(0); //fighterData.charaType = 1; fighterData.key = "Player"; fighterData.name = "主人公"; fighterData.skillList = new int[4]; fighterData.life = 300; fighterData.maxLife = 300; int i = 0; foreach (string skillKey in parameter.Skills.Keys) { SkillList.Param param = SkillManager.I.GetSkillInfo(skillKey); fighterData.skillList[i] = param.ID; ++i; } return(fighterData); }
public void GetSkill(string key) { SkillList.Param param = Excel <SkillList> .Item.list.Find(o => o.Key == key); Debug.Log("GetSkill" + key); Debug.Log(param.Name); if ( TextManager.I.GetVariable("RED") < param.Red || TextManager.I.GetVariable("BLUE") < param.Blue || TextManager.I.GetVariable("GREEN") < param.Green || TextManager.I.GetVariable("YELLOW") < param.Yellow ) { //TextManager.I.PushText(1, 0, 1, "たりない", null, null); Sound.I.PlaySound("Heli"); return; } StackParameter(Mana.RED, -param.Red); StackParameter(Mana.BLUE, -param.Blue); StackParameter(Mana.GREEN, -param.Green); StackParameter(Mana.YELLOW, -param.Yellow); if (parameter.Skills.ContainsKey(key)) { parameter.Skills[key] += 1; //TextManager.I.PushText(1, 0, 1, param.Name + "のレベルが" + parameter.Skills[key] + "になった", null, null); } else { parameter.Skills.Add(param.Key, 1); //TextManager.I.PushText(1, 0, 1, param.Name + "を習得した", null, null); } TextManager.I.SetVariable(key, parameter.Skills[key]); Sound.I.PlaySound("Levelup"); CommitParameter(false); SkillManager.I.Reset(); SetStatusText(Mana.RED); SetStatusText(Mana.BLUE); SetStatusText(Mana.GREEN); SetStatusText(Mana.YELLOW); SetStatusText(Mana.BLACK); }
static public int[] GetCharaSkill(int fighterID) { FighterList.Param fighter = Excel <FighterList> .Item.list.Find(o => o.ID == fighterID); if (fighter == null) { return(null); } SkillList.Param[] skillParamList = new SkillList.Param[] { Excel <SkillList> .Item.list.Find(o => o.Key == fighter.Skill1), Excel <SkillList> .Item.list.Find(o => o.Key == fighter.Skill2), Excel <SkillList> .Item.list.Find(o => o.Key == fighter.Skill3), Excel <SkillList> .Item.list.Find(o => o.Key == fighter.Skill4) }; int[] ret = new int[] { (skillParamList[0] != null)?skillParamList[0].ID: 0, (skillParamList[1] != null)?skillParamList[1].ID: 0, (skillParamList[2] != null)?skillParamList[2].ID: 0, (skillParamList[3] != null)?skillParamList[3].ID: 0, }; return(ret); }
public int HasPassive(string passiveKey) { if (data.skillList == null || IsDead()) { return(0); } foreach (int id in data.skillList) { SkillList.Param skillInfo = SkillManager.I.GetSkillInfo(id); if (skillInfo.Key == passiveKey) { for (int t = 0; t < Mana.MAX; ++t) { if (GetMyManaCnt(t) < skillInfo.Require[t]) { return(0); } } //Debug.Log("スキル持ち[" + passiveKey + "]"); return(1); } } return(0); }
public void Init(FighterData _data) { data = _data; lifeGauge.Init(data.maxLife, data.life); int[] arySkillID = data.skillList; EventTrigger.Entry entry; for (int i = 0; i < SET_SKILL_MAX; ++i) { if (i >= arySkillID.Length || data.skillList[i] == CHANGE_SKILL_CODE) { if (i == SET_SKILL_MAX - 1 && BattleManager.I.benchCharas.Count > 0) { data.skillList[i] = CHANGE_SKILL_CODE; // Debug.Log("change"); } else { skillButtonList[i].SetActive(false); // Debug.Log("false"); continue; } } else { data.skillList[i] = arySkillID[i]; } // Debug.Log(data.skillList[i]); SkillList.Param skillInfo = SkillManager.I.GetSkillInfo(data.skillList[i]); EventTrigger trigger = skillButtonList[i].GetComponent <EventTrigger>(); int skillID = i; //ホバー時情報表示 entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerEnter; entry.callback.AddListener((BaseEventData eventData) => BattleManager.I.ShowSkillWindow(this, skillID)); trigger.triggers.Add(entry); //離したら情報消去 entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerUp; entry.callback.AddListener( (BaseEventData eventData) => { if (downChara == this && downskillID == skillID) { BattleManager.I.ConfirmSkill(); } } ); trigger.triggers.Add(entry); //離れたら消去 entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerExit; entry.callback.AddListener((BaseEventData eventData) => { downChara = null; downskillID = -1; BattleManager.I.ExitSkillWindow(this, skillID); }); trigger.triggers.Add(entry); //押したものを登録 entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerDown; entry.callback.AddListener((BaseEventData eventData) => { downChara = this; downskillID = skillID; BattleManager.I.ShowSkillWindow(this, skillID); }); trigger.triggers.Add(entry); skillButtonList[i].GetComponent <Image>().sprite = Resources.Load <Sprite>("Skill/" + skillInfo.Key); //Debug.Log("Skill/" + skillInfo.Key); } EventTrigger charaButtonTrigger = charaButton.GetComponent <EventTrigger>(); entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerEnter; entry.callback.AddListener(SetAsTarget()); charaButtonTrigger.triggers.Add(entry); //離れたら消去 entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerExit; entry.callback.AddListener(( BaseEventData eventData) => { downChara = null; downskillID = -1; BattleManager.I.ExitSkillWindow(this, -1); } ); charaButtonTrigger.triggers.Add(entry); }
public IEnumerator UseSkill(int skillID) { Debug.Log(data.life + "/" + data.maxLife); if (IsDead()) { yield break; } if (GetBuffLevel(BUFF_WAIT) > 0) { yield break; } while (true) { if (!isAttacking) { break; } yield return(null); } SkillList.Param skillInfo = SkillManager.I.GetSkillInfo(data.skillList[skillID]); Debug.Log(skillInfo.Name); isAttacking = true; //charaButton.GetComponent<Image>().color = Color.yellow; if (skillInfo.Active == 1) { if (BattleManager.I.ConsumeMana(tag, skillInfo.Require)) { if (skillInfo.ID != CHANGE_SKILL_CODE) { BattleManager.I.StartCoroutine("CharaEffect", data.key); BattleManager.I.StartCoroutine("SkillMessage", skillInfo.Name); AddBuff(BUFF_WAIT, 1, 1); } string skillFunction = "Skill" + skillInfo.Key; Debug.Log(skillFunction); yield return(StartCoroutine(skillFunction)); BattleManager.I.manaCheck(GetMyManaCnt()); } else { Debug.Log(skillInfo.Name + " is not Ready"); if (tag == "Chara") { Sound.I.PlaySound("Heli"); } isAttacking = false; yield break; } } else { Debug.Log("Non Active"); } yield return(new WaitForSeconds(1)); isAttacking = false; BattleManager.I.CheckActiveChara(); BattleManager.I.CheckDestroy(); }