Esempio n. 1
0
    /// <summary>
    /// アクティブスキルからブーストスキルの発動情報を抽出し追加
    /// </summary>
    /// <param name="active_skill_activity"></param>
    public void AddActivityBoostSkill(BattleSkillActivity active_skill_activity)
    {
        if (active_skill_activity == null ||
            active_skill_activity.m_SkillType != ESKILLTYPE.eACTIVE)
        {
            return;
        }

        // ブーストパネルを未使用の場合
        if (active_skill_activity.m_bBonusBoost == false)
        {
            return;
        }

        MasterDataSkillActive skillActiveParam = active_skill_activity.getMasterDataSkillActive();

        if (skillActiveParam == null ||
            skillActiveParam.skill_boost_id == 0)
        {
            return;
        }

        // ブーストスキル情報を取得
        MasterDataSkillBoost skillBoostParam = BattleParam.m_MasterDataCache.useSkillBoost(skillActiveParam.skill_boost_id);

        if (skillBoostParam == null)
        {
            return;
        }

        // ブーストスキルを構築
        BattleSkillActivity boost_skill_activity = new BattleSkillActivity();

        if (boost_skill_activity != null)
        {
            // 共通情報を設定
            boost_skill_activity.m_SkillParamOwnerNum = active_skill_activity.m_SkillParamOwnerNum;             // 発動者
            boost_skill_activity.m_SkillParamFieldID  = InGameDefine.SELECT_NONE;                               // フィールドID(ブーストパネルの判定にも使っている)
            boost_skill_activity.m_SkillParamSkillID  = skillActiveParam.skill_boost_id;                        // ブーストスキルID
            boost_skill_activity.m_SkillName          = skillActiveParam.Get_skill_boost_name();                // ブーストスキル名
            boost_skill_activity.m_SkillType          = ESKILLTYPE.eBOOST;                                      // 発動スキルの種類

            boost_skill_activity.m_Element = skillActiveParam.skill_boost_element;                              // 基本情報:属性
            boost_skill_activity.m_Type    = skillBoostParam.skill_type;                                        // 基本情報:スキルタイプ
            boost_skill_activity.m_Category_BoostSkillCategory_PROPERTY = skillBoostParam.skill_cate;           // 基本情報:効果カテゴリ
            boost_skill_activity.m_Effect = skillActiveParam.skill_boost_effect;                                // 基本情報:エフェクト

            boost_skill_activity.m_skill_power         = skillBoostParam.skill_power;                           // 攻撃情報:攻撃力(%)
            boost_skill_activity.m_skill_power_fix     = skillBoostParam.skill_power_fix;                       // 攻撃情報:攻撃力(固定)
            boost_skill_activity.m_skill_power_hp_rate = skillBoostParam.skill_power_hp_rate;                   // 攻撃情報:攻撃力(対象HPの割合)
            boost_skill_activity.m_skill_absorb        = skillBoostParam.skill_absorb;                          // 攻撃情報:吸収量(%)

            boost_skill_activity.m_skill_chk_atk_affinity = skillBoostParam.skill_chk_atk_affinity;             // 効果情報:攻撃側:属性相性チェック
            boost_skill_activity.m_skill_chk_atk_leader   = skillBoostParam.skill_chk_atk_leader;               // 効果情報:攻撃側:リーダースキルチェック
            boost_skill_activity.m_skill_chk_atk_passive  = skillBoostParam.skill_chk_atk_passive;              // 効果情報:攻撃側:パッシブスキルチェック
            boost_skill_activity.m_skill_chk_atk_ailment  = skillBoostParam.skill_chk_atk_ailment;              // 効果情報:攻撃側:状態変化チェック
            boost_skill_activity.m_skill_chk_atk_combo    = MasterDataDefineLabel.BoolType.DISABLE;             // 攻撃情報:攻撃側:コンボレートの影響

            boost_skill_activity.m_skill_chk_def_defence = skillBoostParam.skill_chk_def_defence;               // 効果情報:防御側:防御無視チェック
            boost_skill_activity.m_skill_chk_def_ailment = skillBoostParam.skill_chk_def_ailment;               // 効果情報:防御側:状態変化チェック
            boost_skill_activity.m_skill_chk_def_barrier = skillBoostParam.skill_chk_def_barrier;               // 効果情報:防御側:状態バリアチェック

            boost_skill_activity.m_statusAilment_target = skillBoostParam.status_ailment_target;                // 状態変化対象
            boost_skill_activity.m_statusAilment        = new int[] { skillBoostParam.status_ailment1,          // 状態変化1
                                                                      skillBoostParam.status_ailment2,          // 状態変化2
                                                                      skillBoostParam.status_ailment3,          // 状態変化3
                                                                      skillBoostParam.status_ailment4 };        // 状態変化4

            boost_skill_activity.m_nStatusAilmentDelay = skillBoostParam.status_ailment_delay;                  // 状態変化遅延。

            // 汎用情報を設定
            boost_skill_activity._setParam(skillBoostParam);


            // リストに登録
            m_SkillRequestBoost.addSkillRequest(boost_skill_activity);
        }
    }
Esempio n. 2
0
    /// <summary>
    /// ヒーロースキルのスキルアクティビティを取得
    /// </summary>
    /// <returns></returns>
    public BattleSkillActivity getHeroSkillActivity()
    {
        //--------------------------------
        //	追加効果の有無
        //--------------------------------
        uint hero_skill_id = HERO_SKILL_ATK_ONLY_ID;

        if (BattleSceneUtil.checkChancePercentSkill(getAdditionalEffectPercent()))
        {
            hero_skill_id = HERO_SKILL_ID;
            DebugBattleLog.writeText(DebugBattleLog.StrOpe + "主人公スキル追加効果:あり(追加効果発動確率:" + getAdditionalEffectPercent().ToString() + "%)");
        }
        else
        {
            DebugBattleLog.writeText(DebugBattleLog.StrOpe + "主人公スキル追加効果:なし(追加効果発動確率:" + getAdditionalEffectPercent().ToString() + "%)");
        }

        MasterDataSkillLimitBreak param = BattleParam.m_MasterDataCache.useSkillLimitBreak(hero_skill_id);

        if (param == null)
        {
            return(null);
        }

        //--------------------------------
        //	スキル発動情報
        //--------------------------------
        BattleSkillActivity activity = new BattleSkillActivity();

        activity.m_SkillParamOwnerNum = GlobalDefine.PartyCharaIndex.HERO;
        activity.m_SkillParamFieldID  = InGameDefine.SELECT_NONE;
        activity.m_SkillParamSkillID  = hero_skill_id;
        activity.m_Effect             = param.skill_effect;
        activity.m_Type      = param.skill_type;
        activity.m_Element   = param.skill_elem;
        activity.m_SkillType = ESKILLTYPE.eLIMITBREAK;
        activity.m_Category_SkillCategory_PROPERTY = param.skill_cate;
        activity.m_SkillParamTarget = null;


        activity.m_skill_power         = param.skill_power;
        activity.m_skill_power_fix     = param.skill_power_fix;
        activity.m_skill_power_hp_rate = param.skill_power_hp_rate;

        activity.m_skill_absorb       = param.skill_absorb;
        activity.m_skill_kickback     = param.skill_kickback;
        activity.m_skill_kickback_fix = param.skill_kickback_fix;

        activity.m_skill_chk_atk_affinity = param.skill_chk_atk_affinity;
        activity.m_skill_chk_atk_leader   = param.skill_chk_atk_leader;
        activity.m_skill_chk_atk_passive  = param.skill_chk_atk_passive;
        activity.m_skill_chk_atk_ailment  = param.skill_chk_atk_ailment;
        activity.m_skill_chk_atk_combo    = MasterDataDefineLabel.BoolType.DISABLE;         // コンボレートはのらない

        activity.m_skill_chk_def_defence = param.skill_chk_def_defence;
        activity.m_skill_chk_def_ailment = param.skill_chk_def_ailment;
        activity.m_skill_chk_def_barrier = param.skill_chk_def_barrier;

        activity.m_statusAilment_target = param.status_ailment_target;
        activity.m_statusAilment        = new int[] { param.status_ailment1,
                                                      param.status_ailment2,
                                                      param.status_ailment3,
                                                      param.status_ailment4 };

        activity._setParam(param);

        return(activity);
    }