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