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; }
//---------------------------------------------------------------------------- /*! * @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); }