Beispiel #1
0
 /// <summary>
 /// 種族ボーナス設定
 /// </summary>
 /// <param name="skill_id"></param>
 public void setupRaceBonus(MasterDataParamChara cCharaMasterData)
 {
     BaseHeight  = BASE_DEFAULT_HEIGHT;
     TitleHeight = TITLE_DEFAULT_HEIGHT;
     TitleWidth  = RACE_BONUS_TITLE_WIDTH;
     MessageBgH  = MESSAGE_BG_HEIGHT;
     setLinkTitleImage("skill_name_bg0", "RACE BONUS");
     IsSkillItem  = false;
     IsViewStatus = false;
     IsViewIcon   = false;
     if (cCharaMasterData != null)
     {
         // 種族
         LinkTitleText = GameTextUtil.GetKindToText(cCharaMasterData.kind, cCharaMasterData.sub_kind);
         // 説明文
         SkillDetailText = CharaLinkUtil.GetLinkBonusRaceText(cCharaMasterData);
     }
     else
     {
         // 説明文
         SkillDetailText = EmptyStr;
     }
     MessageBgResize();
 }
    void Update()
    {
        //----------------------------------------
        // インスタンスのチェック
        //----------------------------------------
        if (SceneObjReferGameMain.Instance == null)
        {
            return;
        }

        if (m_Window == null ||
            m_WindowPos == null ||
            m_CharaIcon == null
            //		||   m_Collision   == null
            //		||   m_Caption     == null
            //		||   m_Race        == null
            //		||   m_Type        == null
            //		||   m_Week        == null
            //		||   m_Rare        == null
            //		||   m_LabelTarget == null
            )
        {
            return;
        }

        //----------------------------------------
        // ターゲットマークがついている敵なのかチェック
        //----------------------------------------
        bool isTarget = false;

        if (BattleParam.m_TargetEnemyWindow == BattleParam.m_TargetEnemyCurrent)
        {
            isTarget = true;
        }

        //----------------------------------------
        // ターゲットウィンドウに表示する対象が設定されているかチェック
        //----------------------------------------
        if (m_TargetID == InGameDefine.SELECT_NONE)
        {
            //----------------------------------------
            // ターゲットウィンドウを閉じている時の処理
            //----------------------------------------
            m_TargetID = BattleParam.m_TargetEnemyWindow;
            if (m_TargetID != InGameDefine.SELECT_NONE &&
                m_SetUpInfo == false)
            {
                BattleEnemy enemy = BattleParam.m_EnemyParam[m_TargetID];
                if (enemy != null)
                {
                    MasterDataParamChara charaParam = enemy.getMasterDataParamChara();
                    if (charaParam != null)
                    {
                        // 名前
                        Caption = charaParam.name;
                        // 種族
                        Item_race_title = GameTextUtil.GetText("WORD_UNIT_KIND");
                        Item_race       = GameTextUtil.GetKindToText(enemy.getKind(), enemy.getKindSub());
                        // 属性
                        Item_type_title = GameTextUtil.GetText("WORD_UNIT_ELEMENT");
                        Item_type       = GameTextUtil.GetText(GameTextUtil.GetElemToTextKey(charaParam.element));
                        // 弱点
                        Item_week_title = GameTextUtil.GetText("WORD_UNIT_WEEK");
                        MasterDataDefineLabel.ElementType week = InGameUtilBattle.GetElementAffinity(charaParam.element);
                        Item_week = GameTextUtil.GetText(GameTextUtil.GetElemToTextKey(week));
                        // レア
                        Item_rare_title = GameTextUtil.GetText("WORD_RARE_JP");
                        Item_rare       = GameTextUtil.GetText(GameTextUtil.GetRareToTextKey(charaParam.rare));

                        // 状態異常アイコンの設定
                        SetAilmentIcon(enemy);

                        // キャラアイコンの設定
                        UnitIconImageProvider.Instance.Get(
                            charaParam.fix_id,
                            sprite => { Chara_icon = sprite; });
                    }

                    // 特性情報の設定
                    SetAbilityInformation(enemy);

                    // ターゲットボタンの状態を設定
                    SetTargetButton(isTarget);

                    // ウィンドウの有効化
                    UnityUtil.SetObjectEnabledOnce(m_WindowPos, true);

                    m_SetUpInfo = true;

                    // 表示位置へ移動
                    gameObject.transform.localPosition = m_DispPos;

                    m_bTouchReleaseAfterWindowOpen = false;

                    //-----------------------------------------------------
                    // 初期状態:基本情報から開始。
                    //-----------------------------------------------------
                    ChangeState(ESTATE.eSTATE_PAGE_BASIC);
                    return;
                }
            }
        }
        else
        {
            //----------------------------------------
            // ターゲットウィンドウを開いている時の処理
            //----------------------------------------


            //-------------------------------------------------------------
            // 閉じるボタン押下によるウィンドウ閉じる処理。
            //-------------------------------------------------------------
            bool dispChange = false;

            // 閉じる。
            if (dispChange == true)
            {
                //---------------------------------------------------------
                // ページ情報クリアのため、状態解除。
                //---------------------------------------------------------
                ChangeState(ESTATE.eSTATE_NULL);

                UnityUtil.SetUILabelValue(m_AbilityDetailObj[ABILITY_LABEL], "");               // ここでクリアしておかないと、別の敵でスクロールバーの表示判定がうまく機能しない
                m_SetUpInfo = false;
                m_TargetID  = InGameDefine.SELECT_NONE;
                UnityUtil.SetObjectEnabledOnce(m_WindowPos, false);
                UnityUtil.SetObjectEnabledOnce(m_Collision, false);
                UnityUtil.SetObjectEnabledOnce(this.gameObject, false);
                return;
            }


            //-------------------------------------------------------------
            // 状態更新。
            //-------------------------------------------------------------
            switch (m_eState)
            {
            case ESTATE.eSTATE_PAGE_BASIC: State_PageBasicUpdate(); break;

            case ESTATE.eSTATE_PAGE_STATUS: State_PageStatusAilmentUpdate(); break;

            case ESTATE.eSTATE_PAGE_ABILITY: State_PageAbilityUpdate(); break;
            }
        }
    }
    private void SetLinkEffectInfo(CharaOnce cCharaOnce, MasterDataParamChara cCharaMasterData, bool bLink)
    {
        //----------------------------------------
        // リンク効果設定
        //----------------------------------------
        //int nUnitId = (int)cCharaMasterData.fix_id;
        int    nLv      = cCharaOnce.m_CharaLevel;
        int    nPlusHp  = cCharaOnce.m_CharaPlusHP;
        int    nPlusPow = cCharaOnce.m_CharaPlusPow;
        int    nCost    = cCharaMasterData.party_cost;
        uint   unID     = cCharaMasterData.fix_id;
        double nCharm   = 0;

        //------------------------------------------------------------
        // LINK BONUS
        //------------------------------------------------------------
        //レベル
        Lv = nLv;

        //HP
        int nHp = (CharaLinkUtil.GetLinkUnitBonusElement(unID, nLv, 0, CharaUtil.VALUE.HP) +
                   CharaLinkUtil.GetLinkUnitBonusPlus(nPlusHp, CharaUtil.VALUE.HP));

        // ATK
        int nPow = (CharaLinkUtil.GetLinkUnitBonusElement(unID, nLv, 0, CharaUtil.VALUE.POW) +
                    CharaLinkUtil.GetLinkUnitBonusPlus(nPlusPow, CharaUtil.VALUE.POW));

        //COST
        Cost = nCost;

        uint nLinkPoint = 0;

        //リンクポイント
        if (bLink)
        {
            //リンク子の場合はリンクポイントを反映
            nLinkPoint = (uint)cCharaOnce.m_LinkParam.m_CharaLinkPoint;
            float fLinkPoint = nLinkPoint * 0.01f;
            Link = string.Format(GameTextUtil.GetText("unit_linkstatus4"), fLinkPoint);
        }
        else
        {
            //ハイフン表示
            Link = EmptyStr;
        }

        uint nLimitOverLevel = (uint)cCharaOnce.m_CharaLimitOver;

        if (nLimitOverLevel > 0)
        {
            // 限界突破タイプ
            int nLimitOverType = cCharaMasterData.limit_over_type;

            // 限界突破後のコスト
            //Cost = (int)CharaLimitOver.GetParam(nLimitOverLevel, nLimitOverType, (int)CharaLimitOver.EGET.ePARAM_COST);

            // 限界突破後のHp
            nHp = CharaLinkUtil.GetLinkUnitBonusElement(unID, nLv, nLimitOverLevel, CharaUtil.VALUE.HP) + CharaLinkUtil.GetLinkUnitBonusPlus(nPlusHp, CharaUtil.VALUE.HP);

            // 限界突破後のPow
            nPow = CharaLinkUtil.GetLinkUnitBonusElement(unID, nLv, nLimitOverLevel, CharaUtil.VALUE.POW) + CharaLinkUtil.GetLinkUnitBonusPlus(nPlusPow, CharaUtil.VALUE.POW);

            // CHARM
            nCharm = CharaLimitOver.GetParamCharm(nLimitOverLevel, nLimitOverType);
        }

        if (nPlusHp > 0)
        {
            Hp = string.Format(GameTextUtil.GetText("unit_linkstatus1"), nHp, nPlusHp);
        }
        else
        {
            Hp = nHp.ToString();
        }

        if (nPlusPow > 0)
        {
            Atk = string.Format(GameTextUtil.GetText("unit_linkstatus1"), nPow, nPlusPow);
        }
        else
        {
            Atk = nPow.ToString();
        }

        Charm = nCharm.ToString("F1");

        //------------------------------------------------------------
        // RACE BONUS
        //------------------------------------------------------------
        // 種族
        //RaceName = GameTextUtil.GetKindToText(cCharaOnce.kind, cCharaOnce.kind_sub);
        RaceName = GameTextUtil.GetKindToText(cCharaMasterData.kind, cCharaMasterData.sub_kind);

        // 説明文
        RaceBonusMessage = CharaLinkUtil.GetLinkBonusRaceText(cCharaMasterData);

        SetLinkEffectSkill(cCharaMasterData, nLinkPoint);
    }