Esempio n. 1
0
 /// <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);
     }
 }
Esempio n. 2
0
 /// <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;
     }
 }
Esempio n. 3
0
    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);
    }
Esempio n. 4
0
    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);
    }
Esempio n. 5
0
    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);
    }
Esempio n. 6
0
 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);
 }
Esempio n. 7
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);
    }
Esempio n. 8
0
    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();
    }