示例#1
0
    public void setupChara(uint _unit_id, PacketStructUnit _mainUnit)
    {
        MasterDataParamChara _masterMain = MasterFinder <MasterDataParamChara> .Instance.Find((int)_unit_id);

        if (_masterMain == null)
        {
            return;
        }

        CharaOnce m_CharaParam = new CharaOnce();

        if (_mainUnit == null)
        {
            m_CharaParam.CharaSetupFromID(
                _unit_id,
                (int)1,
                (int)0,
                (int)0,
                (int)0,
                (int)0,
                0,
                0,
                0,
                0,
                0,
                0
                );
        }
        else
        {
            m_CharaParam.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                0,
                0,
                0,
                0,
                0,
                0
                );
        }

        if (_masterMain.link_enable == MasterDataDefineLabel.BoolType.ENABLE)
        {
            AddLinkBonus(m_CharaParam, _masterMain);
            AddRaceBonus(_masterMain);
            AddLinkSkill(_masterMain, 0);
            AddLinkPassive(_masterMain);
        }
    }
    void SetUpCharaData(ref PartyMemberUnitContext item, PacketStructUnit _mainUnit, PacketStructUnit _subUnit, bool dispCharm)
    {
        CharaOnce baseChara = new CharaOnce();

        if (_mainUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE &&
            _subUnit != null)
        {
            baseChara.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                _subUnit.id,
                (int)_subUnit.level,
                (int)_subUnit.add_pow,
                (int)_subUnit.add_hp,
                (int)_mainUnit.link_point,
                (int)_subUnit.limitover_lv
                );
        }
        else
        {
            baseChara.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                0,
                0,
                0,
                0,
                0,
                0
                );
        }

        item.HpText  = baseChara.m_CharaHP.ToString();
        item.AtkText = baseChara.m_CharaPow.ToString();
    }
示例#3
0
    /// <summary>
    /// デバッグ用スキルカットイン再生
    /// </summary>
    /// <param name="chara_fix_id"></param>
    /// <param name="img_2_tiling"></param>
    /// <param name="img_2_offsetX"></param>
    /// <param name="img_2_offsetY"></param>
    public void debugSkillCutin(int chara_fix_id, int img_2_tiling, int img_2_offsetX, int img_2_offsetY, int size_width, int size_height, MasterDataDefineLabel.PivotType pivot, int side_offset)
    {
        MasterDataParamChara base_chara_master = MasterFinder <MasterDataParamChara> .Instance.Find(chara_fix_id);

        if (base_chara_master != null)
        {
            // ダミーのキャラマスターを生成(面倒なのでスキルカットインで使うところだけ設定)
            MasterDataParamChara dummy_chara_master = new MasterDataParamChara();
            dummy_chara_master.fix_id        = base_chara_master.fix_id;
            dummy_chara_master.element       = base_chara_master.element;
            dummy_chara_master.skill_active0 = base_chara_master.skill_active0;
            dummy_chara_master.img_2_tiling  = img_2_tiling;
            dummy_chara_master.img_2_offsetX = img_2_offsetX;
            dummy_chara_master.img_2_offsetY = img_2_offsetY;
            dummy_chara_master.size_width    = size_width;
            dummy_chara_master.size_height   = size_height;
            dummy_chara_master.pivot         = pivot;
            dummy_chara_master.side_offset   = side_offset;

            // ダミーのキャラマスターをバトルのキャッシュに登録
            BattleParam.m_MasterDataCache.clearCachePlayerAll();
            BattleParam.m_MasterDataCache.addCharaParam(dummy_chara_master);

            // ダミーのキャラデータを生成(バトルのキャッシュを使用して生成される)
            CharaOnce chara_once = new CharaOnce();
            bool      is_success = chara_once.CharaSetupFromID((uint)chara_fix_id, 1);
            if (is_success)
            {
                string skill_name = "スキル名";
                MasterDataDefineLabel.ElementType element_type = base_chara_master.element;

                MasterDataSkillActive skill_master = MasterFinder <MasterDataSkillActive> .Instance.Find((int)chara_once.m_CharaMasterDataParam.skill_active0);

                if (skill_master != null)
                {
                    skill_name   = skill_master.name;
                    element_type = skill_master.skill_element;
                }

                // ダミーのパーティを生成
                CharaOnce[] party_members = new CharaOnce[5];
                party_members[0]          = chara_once;
                BattleParam.m_PlayerParty = new CharaParty();
                BattleParam.m_PlayerParty.PartySetup(party_members, true);

                // カットインを開始
                clearSkill();
                addSkill(GlobalDefine.PartyCharaIndex.LEADER, skill_name, ESKILLTYPE.eACTIVE, element_type, 0);
                startCutin(false, false, false);
            }
        }
    }
示例#4
0
    void initPlayerParty2()
    {
        // マスターーデータ
        BattleParam.m_MasterDataCache = m_MasterDataCache;

        // ステージ情報
        BattleParam.m_QuestAreaID    = 0;
        BattleParam.m_QuestMissionID = 0;
        BattleParam.m_QuestFloor     = 0;
        BattleParam.m_AcquireKey     = false;

        //
        BattleParam.ClrLBS();
        BattleParam.m_SkillRequestLimitBreak = new SkillRequestParam(BattleParam.SKILL_LIMIT_BREAK_ADD_MAX);

#if UNITY_EDITOR
        BattleParam.m_IsDamageOutput = false;
#endif

        // プレイヤーパーティメンバー
        if (m_BattleData.m_PlayerParty.m_PlayerCharas != null)
        {
            CharaOnce[] player_party_chara = new CharaOnce[m_BattleData.m_PlayerParty.m_PlayerCharas.Length];
            for (int idx = 0; idx < m_BattleData.m_PlayerParty.m_PlayerCharas.Length; idx++)
            {
                PlayerCharaData player_chara_data = m_BattleData.m_PlayerParty.m_PlayerCharas[idx];
                if (player_chara_data != null)
                {
                    MasterDataParamChara master_data = m_MasterDataCache.useCharaParam((uint)player_chara_data.m_CharaID);
                    if (master_data != null)
                    {
                        CharaOnce chara_once = new CharaOnce();
                        if (player_chara_data.m_CharaLevel < 1)
                        {
                            player_chara_data.m_CharaLevel = 1;
                        }
                        if (player_chara_data.m_CharaLevel > master_data.level_max)
                        {
                            player_chara_data.m_CharaLevel = master_data.level_max;
                        }

                        chara_once.CharaSetupFromID((uint)player_chara_data.m_CharaID,
                                                    player_chara_data.m_CharaLevel,
                                                    player_chara_data.m_SkillLevel,
                                                    player_chara_data.m_LimitOverLevel,
                                                    player_chara_data.m_PlusPower,
                                                    player_chara_data.m_PlusHP,

                                                    (uint)player_chara_data.m_LinkCharaID,
                                                    player_chara_data.m_LinkCharaLevel,
                                                    player_chara_data.m_LinkPlusPower,
                                                    player_chara_data.m_LinkPlusHP,
                                                    player_chara_data.m_LinkFriendry,
                                                    player_chara_data.m_LinkLimitOverLevel
                                                    );

                        player_party_chara[idx] = chara_once;
                    }
                }
            }

            // プレイヤーパーティ
            BattleParam.m_PlayerParty = new CharaParty();
            BattleParam.m_PlayerParty.setHero(m_HeroParam.m_Level, (uint)m_HeroParam.m_HeroSkillID);
            BattleParam.m_PlayerParty.PartySetup(player_party_chara, m_IsKobetsuHP);
            BattleParam.m_PlayerParty.m_PartyTotalSP = m_BattleData.m_PlayerParty.m_SP;

            // ステージ情報
            BattleParam.m_QuestAreaID    = (uint)m_BattleData.m_AreaData.m_AreaID;
            BattleParam.m_QuestMissionID = 0;
            BattleParam.m_QuestFloor     = 0;
            BattleParam.m_AcquireKey     = false;
        }

        if (InGameUtil.IsLocalData())
        {
            SceneGoesParamToQuest2Restore restore = SceneGoesParam.Instance.m_SceneGoesParamToQuest2Restore;
            RestorePlayerParty            restore_player_party = restore.m_PlayerPartyRestore;
            if (restore_player_party != null)
            {
                CharaOnce[] player_party_chara = new CharaOnce[(int)GlobalDefine.PartyCharaIndex.MAX];
                for (int idx = 0; idx < player_party_chara.Length; idx++)
                {
                    CharaOnce chara_once = new CharaOnce();
                    chara_once.CharaSetupFromID(restore_player_party.m_PartyCharaID[idx],
                                                restore_player_party.m_PartyCharaLevel[idx],
                                                restore_player_party.m_PartyCharaLBSLv[idx],
                                                restore_player_party.m_PartyCharaLimitOver[idx],
                                                restore_player_party.m_PartyCharaPlusPow[idx],
                                                restore_player_party.m_PartyCharaPlusHP[idx],

                                                restore_player_party.m_PartyCharaLinkID[idx],
                                                restore_player_party.m_PartyCharaLinkLv[idx],
                                                restore_player_party.m_PartyCharaLinkPlusPow[idx],
                                                restore_player_party.m_PartyCharaLinkPlusHP[idx],
                                                restore_player_party.m_PartyCharaLinkPoint[idx],
                                                restore_player_party.m_PartyCharaLinkLimitOver[idx]
                                                );

                    //------------------------------
                    // リミットブレイクコスト復帰
                    //------------------------------
                    chara_once.m_CharaLimitBreak = restore.m_PlayerPartyRestore.m_PartyCharaLimitBreak[idx];

                    player_party_chara[idx] = chara_once;
                }

                // プレイヤーパーティ
                BattleParam.m_PlayerParty = new CharaParty();
                BattleParam.m_PlayerParty.setHero(0 /*m_HeroParam.m_Level*/, 0 /*(uint)m_HeroParam.m_HeroSkillID*/);
                BattleParam.m_PlayerParty.PartySetup(player_party_chara, restore_player_party.m_IsKobetsuHP);

                //------------------------------
                // パーティ状態異常復帰(CharaParty.PartySetup() より後に復帰)
                //------------------------------
                BattleParam.m_PlayerParty.m_Ailments = restore_player_party.m_PartyAilments;
                BattleParam.m_PlayerParty.m_Ailments.restoreFromSaveData();

                BattleParam.m_PlayerParty.m_HPCurrent.setValue(GlobalDefine.PartyCharaIndex.MAX, restore_player_party.m_QuestHP);
                BattleParam.m_PlayerParty.m_PartyTotalSP = restore_player_party.m_QuestSP;
                BattleParam.m_PlayerParty.m_HPMax.setValue(GlobalDefine.PartyCharaIndex.MAX, restore_player_party.m_QuestHPMax);
                BattleParam.m_PlayerParty.m_PartyTotalSPMax   = restore_player_party.m_QuestSPMax;
                BattleParam.m_PlayerParty.m_Hate              = restore_player_party.m_Hate;
                BattleParam.m_PlayerParty.m_Hate_ProvokeTurn  = restore_player_party.m_Hate_ProvokeTurn;
                BattleParam.m_PlayerParty.m_Hate_ProvokeOrder = restore_player_party.m_Hate_ProvokeOrder;

                BattleParam.m_PlayerParty.m_BattleHero.restoreSkillTurn(restore_player_party.m_HeroSkillTurn);
                BattleParam.m_PlayerParty.m_BattleAchive = restore_player_party.m_BattleAchive;
            }
        }
    }
示例#5
0
    public void setup(MasterDataParamChara _chara, MasterDataParamCharaEvol _evolve = null, Texture2D _charaTexture = null, bool nameView = true)
    {
        charaMaster     = _chara;
        evolMaster      = _evolve;
        charaTexture    = _charaTexture;
        limitOverMaster = MasterFinder <MasterDataLimitOver> .Instance.Find((int)charaMaster.limit_over_type);

        IsViewNamePanel     = nameView;
        IsViewMaterialPanel = false;
        IsViewFloatWindow   = false;
        if (evolMaster != null)
        {
            IsViewMaterialPanel = true;

            MaterialValue = "";
            MaterialList.Clear();
            MaterialLabelX = -190;
            if (evolMaster.unit_id_parts1 != 0)
            {
                addMaterial(evolMaster.unit_id_parts1);
                MaterialLabelX += 64;
            }
            if (evolMaster.unit_id_parts2 != 0)
            {
                addMaterial(evolMaster.unit_id_parts2);
                MaterialLabelX += 64;
            }
            if (evolMaster.unit_id_parts3 != 0)
            {
                addMaterial(evolMaster.unit_id_parts3);
                MaterialLabelX += 64;
            }
            if (evolMaster.unit_id_parts4 != 0)
            {
                addMaterial(evolMaster.unit_id_parts4);
                MaterialLabelX += 64;
            }
        }

        charaOnce = new CharaOnce();
        charaOnce.CharaSetupFromID(
            charaMaster.fix_id,
            (int)charaMaster.level_max,
            (int)0,
            (int)limitOverMaster.limit_over_max,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0
            );

        Level          = string.Format(GameTextUtil.GetText("unit_status16"), charaOnce.m_CharaLevel, charaMaster.level_max);
        Hp             = charaOnce.m_CharaHP.ToString();
        HpPlus         = "";
        Atk            = charaOnce.m_CharaPow.ToString();
        AtkPlus        = "";
        Cost           = charaMaster.party_cost.ToString();
        LimitOver      = string.Format(GameTextUtil.GetText("unit_status16"), limitOverMaster.limit_over_max, limitOverMaster.limit_over_max);
        Charm          = charaOnce.m_CharaCharm.ToString("F1");
        ProfileMessage = charaMaster.detail.ReplaceSpaceTag(29).NoLineBreakTag();
    }
示例#6
0
    void SetUpCharaData(ref PartyMemberStatusListItemContext item, PacketStructUnit _mainUnit, PacketStructUnit _subUnit, bool dispCharm, PacketStructUnit[] partyUnits)
    {
        CharaOnce baseChara = new CharaOnce();

        if (_mainUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE &&
            _subUnit != null)
        {
            baseChara.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                _subUnit.id,
                (int)_subUnit.level,
                (int)_subUnit.add_pow,
                (int)_subUnit.add_hp,
                (int)_mainUnit.link_point,
                (int)_subUnit.limitover_lv
                );
        }
        else
        {
            baseChara.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                0,
                0,
                0,
                0,
                0,
                0
                );
        }

        var changeHp   = (int)(baseChara.m_CharaHP * MainMenuUtil.GetLeaderSkillHpRate(baseChara, partyUnits));
        var statusText = string.Format(GameTextUtil.GetText("questlast_text4"), changeHp);

        if (changeHp > baseChara.m_CharaHP)
        {
            statusText = string.Format(GameTextUtil.GetText("questlast_text8"), changeHp);
        }
        else if (changeHp < baseChara.m_CharaHP)
        {
            statusText = string.Format(GameTextUtil.GetText("questlast_text9"), changeHp);
        }
        item.HpText = statusText;

        var changePow = (int)(baseChara.m_CharaPow * MainMenuUtil.GetLeaderSkillDamageRate(baseChara, MainMenuUtil.GetPartyCharaOnceArray(partyUnits)));

        statusText = string.Format(GameTextUtil.GetText("questlast_text4"), changePow);
        if (changePow > baseChara.m_CharaPow)
        {
            statusText = string.Format(GameTextUtil.GetText("questlast_text8"), changePow);
        }
        else if (changePow < baseChara.m_CharaPow)
        {
            statusText = string.Format(GameTextUtil.GetText("questlast_text9"), changePow);
        }
        item.AtkText = statusText;

        item.Cost  = ServerDataUtil.GetPacketUnitCost(_mainUnit) + CharaLinkUtil.GetLinkUnitCost(_mainUnit);
        item.Charm = baseChara.m_CharaCharm;
    }
    public void setupUnit(uint unit_id, PacketStructUnit _mainUnit, PacketStructUnit _subUnit)
    {
        MasterDataParamChara _masterMain = MasterFinder <MasterDataParamChara> .Instance.Find((int)unit_id);

        if (_masterMain == null)
        {
            return;
        }

        MasterDataLimitOver _masterMainLO = MasterFinder <MasterDataLimitOver> .Instance.Find((int)_masterMain.limit_over_type);

        if (_masterMainLO == null)
        {
            return;
        }

        CHARALINK_TYPE linkType = CHARALINK_TYPE.CHARALINK_TYPE_NONE;

        CharaOnce m_CharaParam = new CharaOnce();

        if (_mainUnit == null)
        {
            m_CharaParam.CharaSetupFromID(
                unit_id,
                _masterMain.level_max,
                0,
                _masterMainLO.limit_over_max,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
                );
        }
        else
        {
            PacketStructUnit _parentUnit = null;
            if (_mainUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_LINK)
            {
                _parentUnit = UserDataAdmin.Instance.SearchChara(_mainUnit.link_unique_id);
            }
            if (_mainUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE &&
                _subUnit != null)
            {
                m_CharaParam.CharaSetupFromID(
                    _mainUnit.id,
                    (int)_mainUnit.level,
                    (int)_mainUnit.limitbreak_lv,
                    (int)_mainUnit.limitover_lv,
                    (int)_mainUnit.add_pow,
                    (int)_mainUnit.add_hp,
                    _subUnit.id,
                    (int)_subUnit.level,
                    (int)_subUnit.add_pow,
                    (int)_subUnit.add_hp,
                    (int)_mainUnit.link_point,
                    (int)_subUnit.limitover_lv
                    );
            }
            else if (_mainUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_LINK &&
                     _parentUnit != null)
            {
                m_CharaParam.CharaSetupFromID(
                    _mainUnit.id,
                    (int)_mainUnit.level,
                    (int)_mainUnit.limitbreak_lv,
                    (int)_mainUnit.limitover_lv,
                    (int)_mainUnit.add_pow,
                    (int)_mainUnit.add_hp,
                    _parentUnit.id,
                    (int)_parentUnit.level,
                    (int)_parentUnit.add_pow,
                    (int)_parentUnit.add_hp,
                    (int)_parentUnit.link_point,
                    (int)_parentUnit.limitover_lv
                    );
            }
            else
            {
                m_CharaParam.CharaSetupFromID(
                    _mainUnit.id,
                    (int)_mainUnit.level,
                    (int)_mainUnit.limitbreak_lv,
                    (int)_mainUnit.limitover_lv,
                    (int)_mainUnit.add_pow,
                    (int)_mainUnit.add_hp,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                    );
            }

            linkType = (CHARALINK_TYPE)_mainUnit.link_info;
        }
        switch (linkType)
        {
        case CHARALINK_TYPE.CHARALINK_TYPE_BASE:
        case CHARALINK_TYPE.CHARALINK_TYPE_NONE:
            SetLinkEffectInfo(m_CharaParam, _masterMain, false);
            setActiveGray(true);
            break;

        case CHARALINK_TYPE.CHARALINK_TYPE_LINK:
            SetLinkEffectInfo(m_CharaParam, _masterMain, true);
            setActiveGray(false);
            break;
        }
    }
示例#8
0
    public void setupChara(uint unit_id, StatusType _type, uint limitover_lv = 0, uint plus_pow = 0, uint plus_hp = 0)
    {
        MasterDataParamChara _masterMain = MasterFinder <MasterDataParamChara> .Instance.Find((int)unit_id);

        if (_masterMain == null)
        {
            return;
        }

        MasterDataLimitOver _masterMainLO = MasterFinder <MasterDataLimitOver> .Instance.Find((int)_masterMain.limit_over_type);

        if (_masterMainLO == null)
        {
            return;
        }

        CharaOnce baseChara = new CharaOnce();

        if (_type == StatusType.LV_1)
        {
            baseChara.CharaSetupFromID(
                unit_id,
                (int)1,
                (int)0,
                (int)limitover_lv,
                (int)plus_pow,
                (int)plus_hp,
                0,
                0,
                0,
                0,
                0,
                0
                );
        }
        else
        {
            int _limitBreakLevel = 0;
            if (_masterMain.skill_limitbreak != 0)
            {
                MasterDataSkillLimitBreak _masterLimitBreak = MasterFinder <MasterDataSkillLimitBreak> .Instance.Find((int)_masterMain.skill_limitbreak);

                _limitBreakLevel = _masterLimitBreak.level_max;
            }
            baseChara.CharaSetupFromID(
                unit_id,
                (int)_masterMain.level_max,
                (int)_limitBreakLevel,
                (int)_masterMainLO.limit_over_max,
                (int)GlobalDefine.PLUS_MAX,
                (int)GlobalDefine.PLUS_MAX,
                0,
                0,
                0,
                0,
                0,
                0
                );
        }

        setParam(baseChara, _masterMain, _masterMainLO);
    }
示例#9
0
    public void setupUnit(PacketStructUnit _mainUnit, PacketStructUnit _subUnit, bool bFakeLink = false, int battleHP = 0, int battleHPMax = 0, int battleATK = -1, bool expView = true)
    {
        CharaOnce            baseChara   = new CharaOnce();
        MasterDataParamChara _masterMain = MasterFinder <MasterDataParamChara> .Instance.Find((int)_mainUnit.id);

        if (_masterMain == null)
        {
            return;
        }

        MasterDataLimitOver _masterMainLO = MasterFinder <MasterDataLimitOver> .Instance.Find((int)_masterMain.limit_over_type);

        if (_masterMainLO == null)
        {
            return;
        }

        if (_mainUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE &&
            _subUnit != null)
        {
            baseChara.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                _subUnit.id,
                (int)_subUnit.level,
                (int)_subUnit.add_pow,
                (int)_subUnit.add_hp,
                (int)_mainUnit.link_point,
                (int)_subUnit.limitover_lv
                );
        }
        else if (bFakeLink && _subUnit != null)
        {
            baseChara.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                _subUnit.id,
                (int)_subUnit.level,
                (int)_subUnit.add_pow,
                (int)_subUnit.add_hp,
                (int)0,
                (int)_subUnit.limitover_lv
                );
        }
        else
        {
            baseChara.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                0,
                0,
                0,
                0,
                0,
                0
                );
        }

        if (expView == true)
        {
            //-----------------------
            // 次のレベルまでの経験値を算出
            //-----------------------
            int   nNowLevelExp  = CharaUtil.GetStatusValue(_masterMain, (int)_mainUnit.level, CharaUtil.VALUE.EXP);
            int   nNextLevelExp = CharaUtil.GetStatusValue(_masterMain, (int)_mainUnit.level + 1, CharaUtil.VALUE.EXP);
            int   nLevelupExp   = nNextLevelExp - nNowLevelExp;
            int   nNextEXP      = 0;
            float expRatio      = 0.0f;
            if (nLevelupExp > 0)
            {
                nNextEXP = nNextLevelExp - (int)_mainUnit.exp;
                expRatio = (float)(nLevelupExp - nNextEXP) / nLevelupExp;
            }
            IsViewExp = true;
            NextExp   = nNextEXP;
            ExpRate   = expRatio;
        }


        setParam(baseChara, _masterMain, _masterMainLO, _subUnit, battleHP, battleHPMax, battleATK);
    }
示例#10
0
    public void setupChara(PacketStructUnit _mainUnit, PacketStructUnit _subUnit, bool dispCharm)
    {
        m_baseChara = new CharaOnce();

        if (_mainUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE &&
            _subUnit != null)
        {
            m_baseChara.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                _subUnit.id,
                (int)_subUnit.level,
                (int)_subUnit.add_pow,
                (int)_subUnit.add_hp,
                (int)_mainUnit.link_point,
                (int)_subUnit.limitover_lv
                );
        }
        else
        {
            m_baseChara.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                0,
                0,
                0,
                0,
                0,
                0
                );
        }
        if (m_baseChara.m_CharaMasterDataParam != null)
        {
            UnitIconImageProvider.Instance.Get(
                _mainUnit.id,
                sprite =>
            {
                baseUnitInfo.Icon = sprite;
            });

            baseUnitInfo.LeaderSkill.Clear();
            UnitSkillContext leder = new UnitSkillContext();
            if (m_baseChara.m_CharaMasterDataParam.skill_leader != 0)
            {
                leder.setupLeaderSkill(m_baseChara.m_CharaMasterDataParam.skill_leader);
            }
            else
            {
                leder.setupLeaderSkill(0);
            }
            baseUnitInfo.LeaderSkill.Add(leder);
        }

        /**
         * サブユニット情報
         */
        if (_subUnit != null)
        {
            linkUnitInfo.IsActiveLinkUnit = true;
            MasterDataParamChara _subMaster = MasterFinder <MasterDataParamChara> .Instance.Find((int)_subUnit.id);

            if (_subMaster != null)
            {
                linkUnitInfo.Name = _subMaster.name;
                linkUnitInfo.Lv   = string.Format("{0}/{1}", _subUnit.level, _subMaster.level_max);
                UnitIconImageProvider.Instance.Get(
                    _subUnit.id,
                    sprite =>
                {
                    linkUnitInfo.Icon = sprite;
                });
                SkillList.Clear();
                UnitSkillContext _newSkill = new UnitSkillContext();
                _newSkill.setupLinkSkill(_subMaster, 0);
                _newSkill.setLinkTitleImage("LINK SKILL", "skill_name_bg3");
                SkillList.Add(_newSkill);
                _newSkill = new UnitSkillContext();
                _newSkill.setupLinkPassive(_subMaster);
                _newSkill.setLinkTitleImage("LINK PASSIVE", "skill_name_bg4");
                SkillList.Add(_newSkill);
            }
            else
            {
#if BUILD_TYPE_DEBUG
                linkUnitInfo.Name = "<color=#FF0000>No MasterDataParamChara fix_id:" + _subUnit.id + "</color>";
#endif
            }
        }
        else
        {
            linkUnitInfo.IsActiveLinkUnit = false;
            linkUnitInfo.NotMessage       = GameTextUtil.GetText("unit_linkstatus5");
        }

        bSetup = true;
    }
示例#11
0
    public void setupUnit(PacketStructUnit _mainUnit, PacketStructUnit _subUnit, LinkParamType _type)
    {
        MasterDataParamChara _masterMain = MasterFinder <MasterDataParamChara> .Instance.Find((int)_mainUnit.id);

        if (_masterMain == null)
        {
            return;
        }

        MasterDataLimitOver _masterMainLO = MasterFinder <MasterDataLimitOver> .Instance.Find((int)_masterMain.limit_over_type);

        if (_masterMainLO == null)
        {
            return;
        }

        CHARALINK_TYPE   linkType    = CHARALINK_TYPE.CHARALINK_TYPE_NONE;
        PacketStructUnit _parentUnit = null;

        if (_mainUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_LINK)
        {
            _parentUnit = UserDataAdmin.Instance.SearchChara(_mainUnit.link_unique_id);
        }

        m_CharaParam   = new CharaOnce();
        m_CharaLOParam = null;
        MasterDataParamChara _masterSub = null;

        if (_mainUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE &&
            _subUnit != null)
        {
            m_CharaParam.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                _subUnit.id,
                (int)_subUnit.level,
                (int)_subUnit.add_pow,
                (int)_subUnit.add_hp,
                (int)_mainUnit.link_point,
                (int)_subUnit.limitover_lv
                );
            _masterSub = MasterFinder <MasterDataParamChara> .Instance.Find((int)_subUnit.id);

            if (_masterSub != null)
            {
                IconSelect = MainMenuUtil.GetElementCircleSprite(_masterSub.element);
            }
        }
        else if (_mainUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_LINK &&
                 _parentUnit != null)
        {
            m_CharaParam.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                _parentUnit.id,
                (int)_parentUnit.level,
                (int)_parentUnit.add_pow,
                (int)_parentUnit.add_hp,
                (int)_parentUnit.link_point,
                (int)_parentUnit.limitover_lv
                );
        }
        else
        {
            m_CharaParam.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                0,
                0,
                0,
                0,
                0,
                0
                );
        }

        linkType     = (CHARALINK_TYPE)_mainUnit.link_info;
        IsViewParent = false;

        AllClear();
        switch (_type)
        {
        case LinkParamType.Link:
            switch (linkType)
            {
            case CHARALINK_TYPE.CHARALINK_TYPE_BASE:
                AddUnitDataLink(m_CharaParam, _masterMain);
                AddRaceBonus(_masterSub);
                AddLinkSkill(_masterSub, (uint)m_CharaParam.m_LinkParam.m_CharaLinkPoint);
                AddLinkPassive(_masterSub);
                setActiveGray(false);
                break;

            case CHARALINK_TYPE.CHARALINK_TYPE_LINK:
                SetLinkParent(m_CharaParam);
                setActiveGray(false);
                break;

            case CHARALINK_TYPE.CHARALINK_TYPE_NONE:
                SetLinkNone();
                break;
            }
            break;

        case LinkParamType.LinkEffect:
            if (_masterMain.link_enable == MasterDataDefineLabel.BoolType.ENABLE)
            {
                switch (linkType)
                {
                case CHARALINK_TYPE.CHARALINK_TYPE_BASE:
                case CHARALINK_TYPE.CHARALINK_TYPE_NONE:
                    AddLinkEffectInfo(m_CharaParam, _masterMain, false);
                    AddRaceBonus(_masterMain);
                    AddLinkSkill(_masterMain, 0);
                    AddLinkPassive(_masterMain);
                    setActiveGray(true);
                    break;

                case CHARALINK_TYPE.CHARALINK_TYPE_LINK:
                    AddLinkEffectInfo(m_CharaParam, _masterMain, true);
                    AddRaceBonus(_masterMain);
                    AddLinkSkill(_masterMain, (uint)m_CharaParam.m_LinkParam.m_CharaLinkPoint);
                    AddLinkPassive(_masterMain);
                    setActiveGray(false);
                    break;
                }
            }
            else
            {
                SetLinkDisable();
            }
            break;
        }
    }
示例#12
0
    public void setup(MasterDataParamChara _master, PacketStructUnit _mainUnit, PacketStructUnit _subUnit = null, bool bFakeLink = false, bool bPink = false)
    {
        CharaOnce           baseChara     = new CharaOnce();
        CharaOnce           prevChara     = null;
        MasterDataLimitOver _masterMainLO = MasterFinder <MasterDataLimitOver> .Instance.Find((int)_master.limit_over_type);

        if (_masterMainLO == null)
        {
            return;
        }
        MasterDataSkillLimitBreak _masterMainLB = MasterFinder <MasterDataSkillLimitBreak> .Instance.Find((int)_master.skill_limitbreak);

        CharaName = _master.name;
        string noFormat = GameTextUtil.GetText("unit_status1");

        CharaNo = string.Format(noFormat, _master.draw_id);
        Rarity  = (uint)_master.rare + 1;

        RaceImage = MainMenuUtil.GetTextKindSprite(_master.kind, false);
        if (_master.sub_kind != MasterDataDefineLabel.KindType.NONE)
        {
            SubRaceImage = MainMenuUtil.GetTextKindSprite(_master.sub_kind, false);
        }
        else
        {
            SubRaceImage = null;
        }

        AttributeImage      = MainMenuUtil.GetTextElementSprite(_master.element);
        AttributeImageColor = ColorUtil.GetElementLabelColor(_master.element);

        if (bPink == true)
        {
            prevChara = new CharaOnce();
            prevChara.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                0,
                0,
                0,
                0,
                0,
                0
                );
        }

        if (_mainUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE &&
            _subUnit != null)
        {
            baseChara.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                _subUnit.id,
                (int)_subUnit.level,
                (int)_subUnit.add_pow,
                (int)_subUnit.add_hp,
                (int)_mainUnit.link_point,
                (int)_subUnit.limitover_lv
                );
        }
        else if (bFakeLink && _subUnit != null)
        {
            baseChara.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                _subUnit.id,
                (int)_subUnit.level,
                (int)_subUnit.add_pow,
                (int)_subUnit.add_hp,
                (int)0,
                (int)_subUnit.limitover_lv
                );
        }
        else
        {
            baseChara.CharaSetupFromID(
                _mainUnit.id,
                (int)_mainUnit.level,
                (int)_mainUnit.limitbreak_lv,
                (int)_mainUnit.limitover_lv,
                (int)_mainUnit.add_pow,
                (int)_mainUnit.add_hp,
                0,
                0,
                0,
                0,
                0,
                0
                );
        }

        if (IsViewExp == true)
        {
            //-----------------------
            // 次のレベルまでの経験値を算出
            //-----------------------
            int   nNowLevelExp  = CharaUtil.GetStatusValue(_master, (int)_mainUnit.level, CharaUtil.VALUE.EXP);
            int   nNextLevelExp = CharaUtil.GetStatusValue(_master, (int)_mainUnit.level + 1, CharaUtil.VALUE.EXP);
            int   nLevelupExp   = nNextLevelExp - nNowLevelExp;
            int   nNextEXP      = nNextLevelExp - (int)_mainUnit.exp;
            float expRatio      = 0.0f;
            if (nNextEXP != 0)
            {
                expRatio = (float)(nLevelupExp - nNextEXP) / nLevelupExp;
            }
            NextExp = nNextEXP;
            ExpRate = expRatio;
        }


        setParam(baseChara, _master, _masterMainLO, _masterMainLB, _subUnit, prevChara);
    }
示例#13
0
    //----------------------------------------------------------------------------

    /*!
     *          @brief	ステータス更新
     *          @note
     */
    //----------------------------------------------------------------------------
    void SetupBlendAfterStatus()
    {
        //-----------------------
        // 合成時のパラメータ数値表示部分を更新
        //-----------------------

        if (m_BaseUnit != null)
        {
            MasterDataParamChara cBaseMasterData = m_BaseUnit.master;
            if (cBaseMasterData != null)
            {
                CharaOnce cCharaParam = new CharaOnce();

                PacketStructUnit cBaseUnit = m_BaseUnit.unit;

                // リンクの限界突破
                int nLinkLimitOverLV = 0;

                PacketStructUnit cLinkUnit = CharaLinkUtil.GetLinkUnit(cBaseUnit.link_unique_id);

                if (cLinkUnit != null)
                {
                    nLinkLimitOverLV = (int)cLinkUnit.limitover_lv;
                }

                if (cBaseUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE)
                {
                    cCharaParam.CharaSetupFromID(cBaseUnit.id
                                                 , (int)cBaseUnit.level
                                                 , (int)cBaseUnit.limitbreak_lv
                                                 , 0
                                                 , (int)cBaseUnit.add_pow
                                                 , (int)cBaseUnit.add_hp
                                                 , cLinkUnit.id
                                                 , (int)cLinkUnit.level
                                                 , (int)cLinkUnit.add_pow
                                                 , (int)cLinkUnit.add_hp
                                                 , (int)cBaseUnit.link_point
                                                 , nLinkLimitOverLV
                                                 );
                }
                else
                {
                    cCharaParam.CharaSetupFromID(cBaseUnit.id
                                                 , (int)cBaseUnit.level
                                                 , (int)cBaseUnit.limitbreak_lv
                                                 , 0
                                                 , (int)cBaseUnit.add_pow
                                                 , (int)cBaseUnit.add_hp
                                                 , 0
                                                 , 0
                                                 , 0
                                                 , 0
                                                 , 0
                                                 , nLinkLimitOverLV
                                                 );
                }

                m_BlendLevelMaxWarning = false;
                if (m_BaseUnit.level >= cBaseMasterData.level_max)
                {
                    m_BlendLevelMaxWarning = true;
                }


                uint unBaseAtk = (uint)cCharaParam.m_CharaPow;
                uint unBaseHP  = (uint)cCharaParam.m_CharaHP;

                //-----------------------
                // 合成費用を算出
                // 合成費用 = ( ベースキャラレベル * 100 * 素材数 ) + ( 関連キャラのプラス値合計 * 1000 )
                //-----------------------
                m_BlendPoint  = 0;
                m_BlendPoint += (cBaseMasterData != null) ? (uint)cBaseMasterData.limit_over_unitpoint : 0;

                //-----------------------
                // プラス値を算出
                //-----------------------
                uint unUnitPlusHP  = (uint)cCharaParam.m_CharaPlusHP;
                uint unUnitPlusAtk = (uint)cCharaParam.m_CharaPlusPow;

                //-----------------------
                // ユニットが持ってる総合経験値を算出
                // ※今回の合成で得られる経験値含む
                //-----------------------
                int nTotalEXP      = 0;// GetTotalEXP(ref Parts, fBonusRateTotal, cBaseMasterData.element);
                int nTotalEXPAfter = nTotalEXP + (int)cBaseUnit.exp;
                //-----------------------
                // レベルを算出
                //-----------------------
                uint unUnitLevelMax = (uint)cBaseMasterData.level_max;
                uint unUnitLevel    = (uint)CharaUtil.GetLevelFromExp(cBaseMasterData, nTotalEXPAfter);
                //-----------------------
                // HPとATKを算出
                //-----------------------
                uint unBuildUpHP  = 0;
                uint unBuildUpAtk = 0;

                if (cBaseUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE)
                {
                    //リンク親の場合はリンクキャラの値を反映しておく
                    CharaOnce cCharaParamBuildUp = new CharaOnce();
                    cCharaParamBuildUp.CharaSetupFromID(cBaseUnit.id
                                                        , (int)unUnitLevel
                                                        , (int)cBaseUnit.limitbreak_lv
                                                        , 0
                                                        , (int)unUnitPlusAtk
                                                        , (int)unUnitPlusHP
                                                        , cLinkUnit.id
                                                        , (int)cLinkUnit.level
                                                        , (int)cLinkUnit.add_pow
                                                        , (int)cLinkUnit.add_hp
                                                        , (int)cBaseUnit.link_point
                                                        , nLinkLimitOverLV
                                                        );
                    unBuildUpHP  = (uint)cCharaParamBuildUp.m_CharaHP;
                    unBuildUpAtk = (uint)cCharaParamBuildUp.m_CharaPow;
                }
                else
                {
                    unBuildUpHP  = (uint)CharaUtil.GetStatusValue(cBaseMasterData, (int)unUnitLevel, CharaUtil.VALUE.HP);
                    unBuildUpAtk = (uint)CharaUtil.GetStatusValue(cBaseMasterData, (int)unUnitLevel, CharaUtil.VALUE.POW);
                    //プラス値より合成後のHPとATK値を求める
                    unBuildUpHP  += unUnitPlusHP * GlobalDefine.PLUS_RATE_HP;
                    unBuildUpAtk += unUnitPlusAtk * GlobalDefine.PLUS_RATE_POW;
                }

                //-----------------------
                // HPとATKの表示形式とカラーの設定
                // 強化後のHP/ATK、プラス値更新があったら色つける
                //-----------------------
                //フォーマット
                string strFormatUp      = GameTextUtil.GetText("kyouka_text1"); //値上昇時
                string strFormatMax     = "{0}";                                //値MAX
                string strFormat        = "{0}";                                //値変更なし
                string strFormatPlus    = "[{0}]";
                string strFormatPlusNum = "+{0}";

                string strUnitPlusHP    = "";
                string strUnitPlusHPNum = string.Format(strFormatPlusNum, unUnitPlusHP);
                if (unUnitPlusHP > (uint)cCharaParam.m_CharaPlusHP)
                {
                    strUnitPlusHP = string.Format(strFormatUp, strUnitPlusHPNum);
                }
                else if (unUnitPlusHP == GlobalDefine.PLUS_MAX)
                {
                    strUnitPlusHP = string.Format(strFormatMax, strUnitPlusHPNum);
                }
                else if (unUnitPlusHP == 0)
                {
                    strUnitPlusHP = "";
                }
                else
                {
                    strUnitPlusHP = string.Format(strFormat, strUnitPlusHPNum);
                }
                if (strUnitPlusHP != string.Empty)
                {
                    strUnitPlusHP = string.Format(strFormatPlus, strUnitPlusHP);
                }

                string strUnitPlusAtk   = "";
                string strUnitPlusAtkum = string.Format(strFormatPlusNum, unUnitPlusAtk);
                if (unUnitPlusAtk > (uint)cCharaParam.m_CharaPlusPow)
                {
                    strUnitPlusAtk = string.Format(strFormatUp, strUnitPlusAtkum);
                }
                else if (unUnitPlusAtk == GlobalDefine.PLUS_MAX)
                {
                    strUnitPlusAtk = string.Format(strFormatMax, strUnitPlusAtkum);
                }
                else if (unUnitPlusAtk == 0)
                {
                    strUnitPlusAtk = "";
                }
                else
                {
                    strUnitPlusAtk = string.Format(strFormat, strUnitPlusAtkum);
                }
                if (strUnitPlusAtk != string.Empty)
                {
                    strUnitPlusAtk = string.Format(strFormatPlus, strUnitPlusAtk);
                }

                m_BlendLimitOverResult    = 0;
                m_BlendLimitOverWarning   = false;
                m_BlendLinkPointUpFlag    = false;
                m_BlendLinkPointMaxFlag   = false;
                m_BlendRarityWarning      = false;
                m_BlendPartsSameCharacter = false;
                m_BlendPartsSameSkill     = false;


                // 限界突破レベル
                int nLimitOverCount = 1;

                // ベースユニットの限界突破MAXレベル
                int nLimitOverMaxLevel = (int)CharaLimitOver.GetParam(0, cBaseMasterData.limit_over_type, (int)CharaLimitOver.EGET.ePARAM_LIMITOVER_MAX);

                //
                uint unBaseLinkPoint = 0;

                //リンクの子をベースにしている場合は親のリンクポイントを参照する
                if (m_BaseUnit.unit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_LINK)
                {
                    PacketStructUnit cTmpLinkUnit = CharaLinkUtil.GetLinkUnit(m_BaseUnit.unit.link_unique_id);
                    unBaseLinkPoint = cTmpLinkUnit.link_point;
                }
                else if (m_BaseUnit.unit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE)
                {
                    unBaseLinkPoint = m_BaseUnit.unit.link_point;
                }

                //リンクポイントが最大かどうか
                if (unBaseLinkPoint >= CharaLinkUtil.LINK_POINT_MAX)
                {
                    m_BlendLinkPointMaxFlag = true;
                }

                // ベースユニットの限界突破レベル
                uint nLimitOverLevel = m_BaseUnit.unit.limitover_lv + (uint)nLimitOverCount;

                string strBuilupLO    = "";
                string strBuilupCharm = "";
                bool   bChangeLO      = false;
                if (nLimitOverCount > 0 && nLimitOverMaxLevel > 0)
                {
                    bChangeLO = true;
                    // 限界突破が元々MAXの場合
                    if (nLimitOverMaxLevel == m_BaseUnit.limitover_lv)
                    {
                        m_BlendLimitOverResult = (int)CharaLimitOver.RESULT_TYPE.eValueMax;
                    }
                    // 限界突破の上限値を超える場合
                    else if (nLimitOverMaxLevel < nLimitOverLevel)
                    {
                        m_BlendLimitOverResult = (int)CharaLimitOver.RESULT_TYPE.eValueOver;
                    }
                    else
                    {
                        m_BlendLimitOverResult = (int)CharaLimitOver.RESULT_TYPE.ePossible;
                    }
                }

                //限界突破LV最大チェック
                if (nLimitOverMaxLevel < nLimitOverLevel)
                {
                    nLimitOverLevel = (uint)nLimitOverMaxLevel;
                }

                // 限界突破の加算値
                float fLoHp  = ((float)CharaLimitOver.GetParam((uint)nLimitOverLevel, cBaseMasterData.limit_over_type, (int)CharaLimitOver.EGET.ePARAM_HP) / 100);
                float fLoAtk = ((float)CharaLimitOver.GetParam((uint)nLimitOverLevel, cBaseMasterData.limit_over_type, (int)CharaLimitOver.EGET.ePARAM_ATK) / 100);

                // ベースユニットの元々のHPと攻撃力を算出
                int nCharaHP  = CharaUtil.GetStatusValue(cBaseMasterData, (int)unUnitLevel, CharaUtil.VALUE.HP);
                int nCharaPow = CharaUtil.GetStatusValue(cBaseMasterData, (int)unUnitLevel, CharaUtil.VALUE.POW);

                // 限界突破のパラメーターを反映
                uint unLO_HP  = (uint)(nCharaHP * fLoHp);
                uint unLO_Atk = (uint)(nCharaPow * fLoAtk);

                double dLimitOverCharm = CharaLimitOver.GetParamCharm(nLimitOverLevel, cBaseMasterData.limit_over_type);
                //int nLimitOverCost = (int)CharaLimitOver.GetParam(nLimitOverLevel, cBaseMasterData.limit_over_type, (int)CharaLimitOver.EGET.ePARAM_COST);

                string strBuildUpHP  = (unBuildUpHP + unLO_HP).ToString();
                string strBuildUpAtk = (unBuildUpAtk + unLO_Atk).ToString();


                if (unBuildUpHP > unBaseHP || nLimitOverLevel != m_BaseUnit.limitover_lv)
                {
                    strBuildUpHP = string.Format(strFormatUp, strBuildUpHP);
                }
                else if (unBuildUpHP == GlobalDefine.VALUE_MAX_HP)
                {
                    strBuildUpHP = string.Format(strFormatMax, strBuildUpHP);
                }
                else
                {
                    strBuildUpHP = string.Format(strFormat, strBuildUpHP);
                }

                if (unBuildUpAtk > unBaseAtk || nLimitOverLevel != m_BaseUnit.limitover_lv)
                {
                    strBuildUpAtk = string.Format(strFormatUp, strBuildUpAtk);
                }
                else if (unBuildUpAtk == GlobalDefine.VALUE_MAX_POW)
                {
                    strBuildUpAtk = string.Format(strFormatMax, strBuildUpAtk);
                }
                else
                {
                    strBuildUpAtk = string.Format(strFormat, strBuildUpAtk);
                }

                if (bChangeLO && nLimitOverLevel != m_BaseUnit.limitover_lv)
                {
                    strBuilupLO    = string.Format(strFormatUp, nLimitOverLevel);
                    strBuilupCharm = string.Format(strFormatUp, dLimitOverCharm.ToString("F1"));
                }
                else
                {
                    strBuilupLO    = nLimitOverLevel.ToString();
                    strBuilupCharm = dLimitOverCharm.ToString("F1");
                }

                //----------------------------------------
                // LVカラー
                //----------------------------------------

                string strBuildUpLevel = "";
                if (unUnitLevel == cCharaParam.m_CharaMasterDataParam.level_max)
                {
                    strBuildUpLevel = string.Format(strFormatUp, GameTextUtil.GetText("unit_status18"));
                }
                else
                {
                    if (unUnitLevel != (uint)cCharaParam.m_CharaLevel)
                    {
                        strBuildUpLevel = string.Format("{0}><color=#f90974>{1}</color>/{2}", cCharaParam.m_CharaLevel, unUnitLevel, cCharaParam.m_CharaMasterDataParam.level_max);
                    }
                    else
                    {
                        strBuildUpLevel = string.Format(GameTextUtil.GetText("unit_status17"), cCharaParam.m_CharaLevel, cCharaParam.m_CharaMasterDataParam.level_max);
                    }
                }

                m_UnitStatusPanel.Level = strBuildUpLevel;
                m_UnitStatusPanel.Lo    = strBuilupLO;
                m_UnitStatusPanel.Hp    = strBuildUpHP + strUnitPlusHP;
                m_UnitStatusPanel.Atk   = strBuildUpAtk + strUnitPlusAtk;
                m_UnitStatusPanel.Charm = strBuilupCharm;
                m_UnitBGPanel.Point     = (int)m_BlendPoint;
            }
            else
            {
#if BUILD_TYPE_DEBUG
                Debug.LogError("MasterData None!");
#endif
            }
        }
        m_UnitBGPanel.TotalPoint = (int)UserDataAdmin.Instance.m_StructPlayer.have_unit_point;
    }
示例#14
0
    private CharaOnce setParam()
    {
        int mainLv;
        int mainLOLv;

        limitOverMaster = MasterFinder <MasterDataLimitOver> .Instance.Find((int)charaMaster.limit_over_type);

        CharaOnce charaOnce = new CharaOnce();

        if (m_mainUnit == null)
        {
            mainLv   = 1;
            mainLOLv = 0;
            if (lvMax == true)
            {
                mainLv   = charaMaster.level_max;
                mainLOLv = limitOverMaster.limit_over_max;
            }
            charaOnce.CharaSetupFromID(
                m_UnitId,
                mainLv,
                0,
                mainLOLv,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
                );
        }
        else
        {
            mainLv   = (int)m_mainUnit.level;
            mainLOLv = (int)m_mainUnit.limitover_lv;
            if (lvMax == true)
            {
                mainLv   = charaMaster.level_max;
                mainLOLv = limitOverMaster.limit_over_max;
            }
            if (m_mainUnit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE &&
                m_subUnit != null)
            {
                charaOnce.CharaSetupFromID(
                    m_UnitId,
                    mainLv,
                    (int)m_mainUnit.limitbreak_lv,
                    mainLOLv,
                    (int)m_mainUnit.add_pow,
                    (int)m_mainUnit.add_hp,
                    m_subUnit.id,
                    (int)m_subUnit.level,
                    (int)m_subUnit.add_pow,
                    (int)m_subUnit.add_hp,
                    (int)m_mainUnit.link_point,
                    (int)m_subUnit.limitover_lv
                    );
            }
            else
            {
                charaOnce.CharaSetupFromID(
                    charaMaster.fix_id,
                    mainLv,
                    (int)m_mainUnit.limitbreak_lv,
                    mainLOLv,
                    (int)m_mainUnit.add_pow,
                    (int)m_mainUnit.add_hp,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                    );
            }
        }

        Level = string.Format(GameTextUtil.GetText("unit_status16"), charaOnce.m_CharaLevel, charaMaster.level_max);
        Hp    = charaOnce.m_CharaHP.ToString();
        if (charaOnce.m_CharaPlusHP != 0)
        {
            Hp = string.Format(GameTextUtil.GetText("unit_status19"), charaOnce.m_CharaHP, charaOnce.m_CharaPlusHP);
        }

        Atk = charaOnce.m_CharaPow.ToString();
        if (charaOnce.m_CharaPlusPow != 0)
        {
            Atk = string.Format(GameTextUtil.GetText("unit_status19"), charaOnce.m_CharaPow, charaOnce.m_CharaPlusPow);
        }

        int _cost = charaMaster.party_cost;

        if (m_subUnit != null)
        {
            _cost += CharaLinkUtil.GetLinkUnitCost(m_subUnit.id);
        }
        Cost = _cost.ToString();

        LimitOver = string.Format(GameTextUtil.GetText("unit_status16"), charaOnce.m_CharaLimitOver, limitOverMaster.limit_over_max);

        Charm = charaOnce.m_CharaCharm.ToString("F1");

        if (lvMax == true)
        {
            Level     = string.Format(GameTextUtil.GetText("kyouka_text1"), Level);
            Hp        = string.Format(GameTextUtil.GetText("kyouka_text1"), Hp);
            Atk       = string.Format(GameTextUtil.GetText("kyouka_text1"), Atk);
            Cost      = string.Format(GameTextUtil.GetText("kyouka_text1"), Cost);
            LimitOver = string.Format(GameTextUtil.GetText("kyouka_text1"), LimitOver);
            Charm     = string.Format(GameTextUtil.GetText("kyouka_text1"), Charm);
        }

        return(charaOnce);
    }