예제 #1
0
    public void SetSkillCutin(SkillRequestParam skillRequest)
    {
        for (int idx = 0; idx < skillRequest.getRequestCount(); idx++)
        {
            BattleSkillActivity skill_activity = skillRequest.getSkillRequestByIndex(idx);
            SetSkillCutin(skill_activity);
        }

        m_SkillRequestParam = skillRequest;
    }
예제 #2
0
    //----------------------------------------------------------------------------

    /*!
     *  @brief	戦闘処理ステップ:ゲーム:ブーストスキルによるアクションタイトル表示
     */
    //----------------------------------------------------------------------------
    public void CutinStart()
    {
        if (m_SkillRequestBoost == null ||
            m_SkillRequestBoost.getRequestCount() <= 0
            )
        {
            Debug.LogError("SkillActivity Is None!");
            return;
        }

        BattleSkillCutinManager.Instance.ClrSkillCutin();
        BattleSkillCutinManager.Instance.SetSkillCutin(m_SkillRequestBoost);
        BattleSkillCutinManager.Instance.CutinStart2(true);     //ブーストスキル
    }
예제 #3
0
    //----------------------------------------------------------------------------

    /*!
     *  @brief		リンクスキルの最大発動数をチェック
     *  @param[in]	BattleSkillActivity[]	(activityArray)	ノーマルスキル発動情報
     */
    //----------------------------------------------------------------------------
    private static int CheckLinkSkillNum(SkillRequestParam skill_requeset_param, bool[] dest_skill_owner)
    {
        int ret_val = 0;

        for (int idx = 0; idx < dest_skill_owner.Length; idx++)
        {
            dest_skill_owner[idx] = false;
        }

        //--------------------------------
        // ノーマルスキル発動者を取得
        //--------------------------------
        for (int num = 0; num < skill_requeset_param.getRequestCount(); ++num)
        {
            BattleSkillActivity normalActivity = skill_requeset_param.getSkillRequestByIndex(num);
            if (normalActivity == null ||
                normalActivity.m_SkillType != ESKILLTYPE.eACTIVE ||
                normalActivity.m_SkillParamOwnerNum == GlobalDefine.PartyCharaIndex.GENERAL)
            {
                continue;
            }

            // 発動者の登録処理
            for (int ownerNum = 0; ownerNum < dest_skill_owner.Length; ++ownerNum)
            {
                if ((GlobalDefine.PartyCharaIndex)ownerNum == normalActivity.m_SkillParamOwnerNum &&
                    dest_skill_owner[ownerNum] == false)
                {
                    dest_skill_owner[ownerNum] = true;
                    break;
                }
            }
        }


        //--------------------------------
        // リンクスキル発動判定
        //--------------------------------
        for (int num = 0; num < dest_skill_owner.Length; ++num)
        {
            if (dest_skill_owner[num] == false)
            {
                continue;
            }

            // リンクキャラを取得
            CharaOnce partyChara = BattleParam.m_PlayerParty.getPartyMember((GlobalDefine.PartyCharaIndex)num, CharaParty.CharaCondition.SKILL_ACTIVE);
            if (partyChara == null)
            {
                continue;
            }

            MasterDataParamChara charaMaster = BattleParam.m_MasterDataCache.useCharaParam(partyChara.m_LinkParam.m_CharaID);
            if (charaMaster == null)
            {
                dest_skill_owner[num] = false;
                continue;
            }

            // リンクスキル発動判定(基本発動率 + リンクポイント)
            uint odds = CharaLinkUtil.GetLinkSkillOdds(charaMaster, partyChara.m_LinkParam.m_CharaLinkPoint);
            if (BattleSceneUtil.checkChancePercentSkill((int)odds, (int)CharaLinkUtil.SKILL_LINK_ODDS_MAX))
            {
                ret_val++;
            }
            else
            {
                dest_skill_owner[num] = false;
            }
        }

        return(ret_val);
    }