OneShotOneKill/Assets/Script/Table/Tables/table_cardlist.cs

310 lines
24 KiB
C#
Raw Normal View History

2026-01-07 21:27:42 +00:00
using CodeStage.AntiCheat.ObscuredTypes;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class CardListTableData : TableDataBase
{
public eCardType e_CardType;
public int n_CardGrade; public eGrade e_CardGrade;
public eStatusConditionsType e_StatusConditionsType;
public bool b_Percent;
public string s_Value1, s_Value2, s_Value3, s_Projectile;
public eAttackType e_ProjectileAttackType;
ObscuredInt _ID; public int n_ID { get { return _ID; } set { _ID = value; _ID.RandomizeCryptoKey(); } }
ObscuredFloat _fValue1; public float f_Value1 { get { return _fValue1; } set { _fValue1 = value; _fValue1.RandomizeCryptoKey(); } }
ObscuredFloat _fValue2; public float f_Value2 { get { return _fValue2; } set { _fValue2 = value; _fValue2.RandomizeCryptoKey(); } }
ObscuredFloat _fValue3; public float f_Value3 { get { return _fValue3; } set { _fValue3 = value; _fValue3.RandomizeCryptoKey(); } }
ObscuredInt _ProjectileCount; public int n_ProjectileCount { get { return _ProjectileCount; } set { _ProjectileCount = value; _ProjectileCount.RandomizeCryptoKey(); } }
ObscuredInt _UseDmg; public int n_UseDmg { get { return _UseDmg; } set { _UseDmg = value; _UseDmg.RandomizeCryptoKey(); } }
ObscuredFloat _ProjectileDelayTime; public float f_ProjectileDelayTime { get { return _ProjectileDelayTime; } set { _ProjectileDelayTime = value; _ProjectileDelayTime.RandomizeCryptoKey(); } }
ObscuredInt _Desc; public int n_Desc { get { return _Desc; } set { _Desc = value; _Desc.RandomizeCryptoKey(); } }
public override string Get_Name()
{
return base.Get_Name();
}
public override string Get_Desc()
{
Debug.Log(e_CardType);
switch (e_CardType)
{
case eCardType.G1_AddPotion:
return table_localtext.Ins.Get_Text(n_Desc, Get_IntValue1(), Get_IntValue2());
case eCardType.G1_MagicMissile:
return table_localtext.Ins.Get_Text(n_Desc, n_ProjectileCount, Get_FloatValue3());
case eCardType.G1_FireMagicMissiles:
case eCardType.G1_CastMagicMissilesOnBackKill:
return table_localtext.Ins.Get_Text(n_Desc, n_ProjectileCount);
case eCardType.G1_EnemySpawnStunChance:
return table_localtext.Ins.Get_Text(n_Desc, Get_FloatValue2() * 100, Get_FloatValue3());
case eCardType.G1_LowHPEnemyLightning:
return table_localtext.Ins.Get_Text(n_Desc, Get_FloatValue1() * 100, Get_FloatValue3() * 100);
case eCardType.G1_RangedSpawnMagicMissile:
return table_localtext.Ins.Get_Text(n_Desc, n_ProjectileCount, Get_FloatValue2() * 100);
case eCardType.G4_NHitFiresDarkMissiles:
return table_localtext.Ins.Get_Text(n_Desc, Get_IntValue1(), n_ProjectileCount);
default:
if (Get_IntValue1() > 0 && Get_FloatValue2() > 0)
return table_localtext.Ins.Get_Text(n_Desc, Get_IntValue1(), b_Percent ? Get_FloatValue2() * 100 : Get_FloatValue2());
if (Get_IntValue1() > 0 && Get_FloatValue3() > 0)
return table_localtext.Ins.Get_Text(n_Desc, Get_IntValue1(), b_Percent ? Get_FloatValue3() * 100 : Get_FloatValue3());
else if (Get_FloatValue1() > 0)
return table_localtext.Ins.Get_Text(n_Desc, b_Percent ? Get_FloatValue1() * 100 : Get_FloatValue1());
else if (Get_FloatValue2() > 0)
return table_localtext.Ins.Get_Text(n_Desc, b_Percent ? Get_FloatValue2() * 100 : Get_FloatValue2());
else if (Get_FloatValue3() > 0)
return table_localtext.Ins.Get_Text(n_Desc, b_Percent ? Get_FloatValue3() * 100 : Get_FloatValue3());
else
return table_localtext.Ins.Get_Text(n_Desc);
}
}
public int Get_IntValue1() { return (int)Get_FloatValue1(); }
public int Get_IntValue2() { return (int)Get_FloatValue2(); }
public int Get_IntValue3() { return (int)Get_FloatValue3(); }
public float Get_FloatValue1()
{
return f_Value1; // 정인호 : 레벨업 효과 적용
}
public float Get_FloatValue2()
{
return f_Value2; // 정인호 : 레벨업 효과 적용
}
public float Get_FloatValue3()
{
return f_Value3; // 정인호 : 레벨업 효과 적용
}
}
public enum eCardType
{
G1_AddPotion, // 물약 최대 보유량을 +1 추가하고, 물약을 1개를 획득합니다.
G1_FirstAttack, // 전투 시작 후 첫 번째 공격은 +300%의 피해를 입힙니다.
G1_AddMaxAttack, // 최대 피해가 +2 증가합니다.
G1_AddMinAttack, // 최소 피해가 +1 증가합니다.
G1_IllusionSpear, // 전투 시작 후 첫 번째 공격은 후열의 적에게도 피해를 입히는 환영의 창을 시전합니다.
G1_AddHitRate, // 명중력이 +5 증가합니다.
G1_ElectricShockOnConsecutiveHits, // 빗나감 없이 6회 공격을 명중할 때마다 전기 충격을 시전합니다.
G1_SanctuaryHeal, // 회복의 성소에서 얻는 회복 효과와 경험치가 +200% 증가합니다.
G1_MagicMissile, // 전투 시작 후 매 8초가 지날 때마다 무작위 적에게 매직 미사일을 3발 발사합니다.
G1_AddCriDmg, // 치명타 피해량이 x1배 증가합니다.
G1_LifeStealOnDodge, // 회피 발동 시 무작위 적의 생명력 2를 흡혈합니다.
G1_XpGainOnCritKill, // 치명타 처치 시 경험치를 +150% 획득합니다.
G1_InstantCastMysticExplosion, // 신비한 폭발 스킬 1회를 즉시 시전합니다. (※즉시 시전 : 카드 획득 시점에만 발동)
G1_HolyDamageOnMeleeFrontAppear, // 근접 적이 전열에 등장할 때마다 1의 신성 피해를 입힙니다.
G1_NullifyDamageEveryNHits, // 공격을 8회 받을 때마다 받는 피해를 무효화 합니다.
G1_DodgeNextNAttacks, // 다음 7회의 공격을 무조건 회피합니다.
G1_HolyDamageToBackEnemiesOnDodge, // 회피 시 후열에 있는 모든 적에게 1의 신성 피해를 입힙니다.
G1_DarkMissileFromPotion, // 물약은 전열의 임의의 적에게 +200%의 피해를 입히는 암흑 미사일을 시전합니다.
G1_NoSimultaneousHpShieldLoss, // 적 공격이 생명력과 보호막을 동시에 감소시키지 않습니다.
G1_CurseExplosionOnKill, // 즉시 임의의 적에게 저주 효과를 부여해 처치 시 시체 폭파를 일으킵니다.
G1_AngelFeatherHeal, // 부활 발동 시 회복되는 생명력이 +200% 늘어납니다.
G1_HealOnRangedHit, // 원거리 공격을 받을 때마다 생명력을 1 회복합니다.
G1_FireMagicMissiles, // 8발의 매직 미사일을 무작위 적에게 즉시 발사합니다.
G1_ReflectOnRangedDodge, // 원거리 공격 회피 시 공격을 반사합니다.
G1_HealOnDoubleDodge, // 연속 2회 회피 성공 시 생명력을 10 회복합니다.
G1_LightningToBackOnMeleeDodge, // 근거리 적 공격 회피 시 후열의 적에게 낙뢰 피해를 입힙니다.
G1_LifeStealToRandomAll, // 전장의 모든 무작위 적에게 생명력 20을 흡혈합니다.
G1_LifeStealOnBackAttack, // 후열의 적 공격 시 무작위 적의 생명력 3을 흡혈합니다.
G1_ShieldOnRangedDodge, // 원거리 적 공격 회피 시 보호막을 6만큼 회복합니다.
G1_ThirdCritDamage, // 3번 째 치명타는 +300%의 피해를 입힙니다.
G1_FifthAttackBack, // 5번째 공격마다 후열의 적에게 150% 피해를 입힙니다.
G1_FirstAttackHeals, // 전투 시작 후 첫 번째 공격은 생명력을 5 회복합니다.
G1_FirstAttackShieldPercent, // 전투 시작 후 첫 번째 공격 후 보호막을 5% 회복합니다.
G1_AutoUsePotionOnDeath, // 물약 보유 시 생명력이 0이 될 때 자동으로 사용합니다.
G1_GainGoldOnSanctuaryFind, // 임의의 성소을 발견하면 골드를 획득합니다.
G1_MaxHpPlusOnFountain, // 샘물을 발견 시 최대 HP를 2증가 시킵니다.
G1_ShieldHealOnHealFountain, // 회복의 샘에서 회복 효과가 발생 될 때 보호막도 동일하게 회복 됩니다.
G1_ShieldOnFullHeal, // 완전히 회복할 때 보호막을 12 회복합니다.
G1_ThunderOnFifthHit, // 5번째 공격이 명중할 때마다 250% 피해를 입히는 낙뢰를 시전합니다.
G1_GetRandomRareOrEpicSkill, // 즉시 무작위 고급 또는 희귀 스킬 1개를 획득합니다.
G1_HealOnGoldDrop, // 적이 골드를 떨어뜨릴 때마다 생명력을 5 회복 시킵니다.
G1_ShockDamageOnGoldDrop, // 적이 골드를 떨어뜨릴 때마다 임의의 적에게 전기 충격 피해를 입힙니다.
G1_FullShieldIfHpLowAndShieldZero, // 보호막이 0인 상태에서 생명력이 1만 남아 있을 경우,. 보호막을 완전 회복합니다.
G1_HealOnLevelUp, // 매 레벨 업 할 때마다 생명력을 7 회복합니다.
G1_FountainGivesXp, // 회복의 샘도 경험치를 제공합니다.
G1_FullHealAfterKillsOnce, // 적 10명 처치 후 완전 회복(매 전투 당 1회만 발동)
G1_HealHpOnShieldBreak, // 보호막 소진 시 생명력 10 회복
G1_CampHealShield, // 캠프에서 보호막도 함께 회복됩니다.
G1_HealOnRangedHitChance, // 원거리 공격에 피격 될 경우 30% 확률로 생명력을 3 회복합니다.
G1_HolyDamageOnHeal, // 회복 효과가 발생되면 무작위 적에게 5의 신성 피해를 입힙니다.
G1_InstantFullHeal, // 지금 즉시 생명력을 완전 회복합니다.
G1_HealEverySecOutOfCombat, // 비 전투 상태로 던전 탐험 시 4초마다 생명력을 5 회복합니다.
G1_MaxDodgeWhenHpBelow, // 생명력이 4이하일 때 회피 확률이 최대치로 고정됩니다.
G1_GoldDropChanceUp, // 적이 골드를 떨어뜨릴 확률이 +30% 증가합니다.
G1_MaxShieldUpOnSkillGain, // 일반 또는 고급 스킬을 얻으면 최대 보호막이 4 증가합니다.
G1_MaxHpUpOnLevelUp, // 매 레벨 업 할 때마다 최대 생명력가 4 증가합니다.
G1_MaxShieldUpOnLevelUp, // 매 레벨 업 할 때마다 최대 보호막이 4 증가합니다.
G1_HealOnBackKill, // 후열의 적 처치 시 생명력을 5 회복합니다.
G1_DamageOnKill, // 적 처치 시 임의의 적에게 2 피해를 입힙니다.
G1_CastMagicMissilesOnBackKill, // 후열의 적 처치 시 매직 미사일 3발을 시전해 무작위 적을 공격합니다.
G1_CastReaperOnLevelUp, // 매 레벨 업 할 때마다 무작위 적 1명에게 사신의 낫을 시전해 즉사시킵니다.
G1_CastReaperOnNthCrit, // 10번째 치명타 발생 시 피격 된 대상에게 사신의 낫을 시전해 즉사시킵니다.
G1_LevelUpOnCampFind, // 캠프를 발견할 때마다 즉시 레벨 업합니다.
G1_StunAllEnemiesOnLevelUp, // 레벨 업 시 모든 적을 6초 동안 기절시킵니다.
G1_CurseEnemiesOnLevelUp, // 레벨 업 시 무작위 적 1명에게 저주 효과를 부여하고, 처치 시 시체 폭파를 일으킵니다.
G1_LootChestGivesHealAndXp, // 전리품 상자가 회복과 경험치를 제공합니다.
G1_CurseEnemiesOnBattlefield, // 전장에 있는 적 2명에게 즉시 저주 효과를 부여하고, 처치 시 시체 폭파를 일으킵니다.
G1_MeleeEnemiesAttackSelfChance, // 근접 적이 출몰할 때 20% 확률로 자신을 공격합니다.
G1_HolyDamageOnMeleeHit, // 근접 피해를 입힌 적에게 2의 신성 피해를 입힌다.
G1_DamageUpAfterMiss, // 빗나감이 발생되면 다음 공격 피해를 425% 증가시킵니다.
G1_MissRestoreShield, // 빗나감은 보호막을 9만큼 회복합니다.
G1_MissCastLightningRandomBackRow, // 빗나감은 임의의 후열의 적에게 250%의 피해를 입히는 낙뢰를 시전합니다.
G1_MissCriticalDamageBackRow, // 빗나감은 후열의 2명의 적에게 치명타 피해를 입힙니다.
G1_MissCastLightningAdditionalAttack, // 빗나감 발생 시 250%의 피해를 입히는 낙뢰를 시전해 추가로 공격합니다.
G1_CampShieldHighIncreaseMaxAttack, // 캠프를 방문할 때 보호막이 50% 이상일 경우, 최대 공격력이 +3 증가합니다.
G1_RangedFirstAttackHitFrontAlly, // 원거리 적의 첫 번째 공격은 전 열의 아군을 명중시킵니다.
G1_NextLevelGainHeroOrLegendSkill, // 다음 레벨 업 시 영웅 또는 전설 스킬 1개를 획득합니다.
G1_EnemySpawnStunChance, // 적이 출몰할 때 20% 확률로 8.5초 동안 기절합니다.
G1_NextLevelChooseTwoSkillCards, // 다음 레벨 업에서 2가지 스킬 카드를 선택할 수 있습니다.
G1_PotionDealHolyDamageRandomEnemy, // 물약은 무작위 적에게 신성 피해를 입힙니다.
G1_RecoverExpFraction, // 경험치 분수도 회복합니다.
G1_AttackRandomEnemy, // 공격 대상을 지정할 수 없지만, 임의의 적을 공격하게 됩니다.
G1_RangedHitDealHolyDamage, // 원거리 피해를 받으면 2의 신성 피해를 입힙니다.
G1_FullRecoverAtFountain, // 보호막 보유 상태에서 임의의 샘에 도달하면 완전히 회복합니다.
G1_CampFillEmptyPotion, // 캠프에 방문할 경우, 물약을 1개 채웁니다.
G1_ReflectFirstMeleeDamage, // 근접 적에게 받은 첫 번째 피해를 반사합니다.
G1_ReflectLowMeleeAsHoly, // 3이하의 근접 피해를 받을 경우, 신성 피해로 반사합니다.
G1_LevelUpRecoverShield, // 레벨 업 시 보호막 5를 회복합니다.
G1_ExploreRecoverShieldOverTime, // 탐험 진행 시, 보호막 10을 회복합니다.
G1_KillCountRecoverFullShield, // 10명의 적을 처치한 후 보호막을 완전히 회복합니다. (※매 전투마다 1회만 발동)
G1_FullShieldRecover, // 즉시 보호막을 완전 회복합니다.
G1_LevelUpSkillReroll, // 레벨 업 후 얻는 스킬 카드를 5회 재선택할 수 있습니다.
G1_InstantSkillReroll, // 현재 스킬 카드를 즉시 재선택할 수 있습니다.
G1_FirstAttackLightning, // 첫 번째 공격을 시도하는 대상에게 30% 확률로 시 낙뢰를 시전합니다.
G1_LowHPEnemyLightning, // 생명력이 50% 미만인 적을 공격할 때 25% 확률로 낙뢰를 추가로 시전합니다.
G1_TwiceShrineFullRecover, // 임의의 성소를 2번 발견하면 보호막과 생명력을 완전 회복 합니다.
G1_SpringShieldToHP, // 보호의 샘에서 회복한 보호막의 x2배 만큼 생명력을 추가로 회복합니다.
G1_TripleShieldSpring, // 보호의 샘은 3배 더 많은 보호막을 회복합니다.
G1_StopExploreHealHP, // 탐험을 멈출 때마다 생명력을 3 회복합니다.
G1_StopExploreHealShield, // 탐험을 멈출 때마다 보호막을 5 회복합니다.
G1_StunAllMeleeEnemies, // 즉시 모든 근접 적을 20초간 기절 시킵니다.
G1_StunAllRangedEnemies, // 즉시 모든 원거리 적을 20초간 기절 시킵니다.
G1_EnemySpawnHolyDamage, // 모든 적이 전장에 등장할 때 50% 확률로 3 신성 피해를 받습니다.
G1_MissHolyDamage, // 빗나감 발생 시 8 신성 피해를 입힙니다.
G1_NextSpringActsAsCamp, // 다음에 발견 될 임의의 샘은 캠프와 동일하게 동작합니다.
G1_CampRechargePotion, // 캠프를 방문할 때마다 물약이 1개 충전됩니다.
G1_RangedFirstAttackSelfDamage, // 원거리 적의 첫 번째 공격은 자신에게 피해를 입힙니다.
G1_RangedSpawnMagicMissile, // 원거리 적이 전장에 등장할 때 50%의 확률로 매직 미사일이 1회 시전됩니다.
G1_DealHolyDamageToAll, // 즉시 모든 적에게 1 신성 피해를 입힙니다.
G1_FirstAttackLightningStorm, // 전투 시작 후 첫 공격은 무작위 적 3명에게 피해를 입히는 낙뢰를 시전합니다.
G1_KillBacklineDealHolyDamage, // 후열에 있는 적 처치 시, 무작위 적 3명이 1 신성 피해를 받습니다.
G1_ShieldIncreaseAttackPower, // 보호막을 보유중일 경우, 총 공격력이 +4증가합니다.
G2_CriUpAfterCri, // 치명타 발생 시 다음 치명타 확률이 +30% 증가 합니다.
G2_GetSkillOnCamp, // 캠프를 방문할 때마다 무작위 일반 스킬을 얻습니다.
G2_ReduceMeeleEnemyDamage, // 모든 근접 적의 피해가 2 감소합니다.
G2_ReduceRangeEnemyDamage, // 모든 원거리 적의 피해가 1 감소합니다.
G2_ShieldRecoverOnLevelUp, // 레벨 업 시 보호막이 10 회복됩니다.
G2_NegateMeleeDamageWithShield, // 보호막은 근접 피해를 40% 확률로 무효화 합니다.
G2_NegateRangedAttackWithShield, // 보호막이 있을 경우, 원거리 공격을 50% 확률로 무효화 합니다.
G2_ReduceRangedDamageWithShield, // 보호막이 있을 경우, 원거리 피해를 50% 감소시킵니다.
G2_IncreaseDamageToBacklineEnemies, // 후열에 있는 적에게 입히는 피해가 +250% 만큼 증가합니다.
G2_ActivateInvincibleShieldOnKill, // 적 처시 시 모든 피해를 무효화하는 보호막을 3초 동안 활성화합니다.
G3_GetInstantGold, // 지금 즉시 대량의 골드(200~500G)를 얻을 수 있습니다.
G3_IncreaseAttackSpeed, // 공격 속도가 +25% 증가합니다.
G3_RangedHitNextAttackDamageUp, // 원거리 피격 시 다음 공격으로 입히는 피해가 +50% 증가합니다.
G3_DodgeFirstRangedAttack, // 원거리 적이 공격하는 첫 번째 공격을 무조건 회피합니다.
G3_IncreaseMeleeDodge, // 근접 회피가 +15% 증가합니다.
G3_FirstAttackCritChanceUp, // 첫 번째 공격은 치명타 확률이 35% 증가합니다.
G3_CritHitChainsToRandomEnemy, // 치명타가 발생할 경우, 27% 확률로 무작위 적에게도 동일한 피해를 입힙니다.
G3_HealHalfHPAndRefillPotions, // 즉시 최대 생명력의 50%를 회복하고, 모든 물약을 가득 채웁니다.
G3_PotionUseDealsHealAsDamage, // 물약을 사용하면 모든 적에게 물약으로 회복 된 생명력과 동일한 피해를 입힙니다.
G3_MaxAttackUpEveryNDodges, // 6번째 회피마다 최대 공격력이 1증가 합니다.
G4_ShieldedDamageReduction, // 보호막이 있을 경우, 모든 받는 피해가 50% 감소됩니다.
G4_RangedAttackFrontEnemyDamageShare, // 원거리 적이 공격할 때 전열의 적이 있을 경우, 50%의 피해를 입힙니다.
G4_NHitFiresDarkMissiles, // 6번째 일반 공격에 명중 된 적에게 암흑 미사일 5발을 연속 시전합니다.
G4_CritStunsAllEnemies, // 치명타 발생 시 모든 적을 3초 동안 기절시킵니다.
G4_MaxAttackIncreasesByShield, // 현재 보호막의 50%만큼 최대 공격력이 증가합니다.
G4_MaxAttackUpAndHealOnKill, // 최대 공격력이 +10 증가하고, 적 처치 시 생명력을 추가로 1 회복합니다.
G4_NHitCastsLightning, // 일반 공격을 4회 명중할 때마다 임의의 적에게 낙뢰를 시전합니다.
G4_NHitHealsByMaxHPPercent, // 5번째 일반 공격마다 최대 생명력의 10%만큼 회복합니다.
G4_NhMeleeHitRestoresShield, // 근접 피해를 4회 받을 때마다 최대 보호막의 20%를 회복합니다.
G4_NHitCastsFireballAOE, // 6번째 일반 공격 명중 시 임의의 적에게 범위 피해를 입히는 화염구를 시전합니다.
G5_FirstAttackTripleDamage, // 적에게 입히는 첫 번째 공격은 x3배의 피해를 입힙니다.
G5_RangedDamageRandomReflect, // 모든 원거리 피해는 무작위 적에게 반사됩니다.
G5_ReviveOnDeath, // 사망할 경우, 40% 확률로 부활합니다.
G5_AllRangedEnemiesBlindIfBackline, // 모든 원거리 적은 후열에 있을 경우 눈멀기 상태가 됩니다.
G5_CastFireballOnCrit, // 치명타에 명중 된 대상에게 범위 피해를 입히는 화염구를 추가로 시전합니다.
G5_ShieldHealWhenHealed, // 회복 효과가 발생 될 때마다 보호막도 회복됩니다.
G5_ArcaneExplosionOnKill, // 적 처치 시 모든 적에게 신비한 폭발 피해를 입힙니다.
G5_FlatDamageMinMaxEqual, // 최소 공격력과 최대 공격력이 항상 동일하게 적용됩니다.
G5_StunBacklineOnKill, // 적 처치 시 후열의 적이 4초 동안 기절합니다.
G5_ReflectAllDamageWhenShielded, // 보호막이 활성화 되어있을 경우, 받는 모든 피해를 반사합니다.
Max
}
public class table_cardlist : table_base
{
public static table_cardlist Ins;
List<CardListTableData> tableDatas;
Dictionary<eGrade, List<CardListTableData>> dic_gradeData = new Dictionary<eGrade, List<CardListTableData>>();
Dictionary<eCardType, CardListTableData> dic_Data = new Dictionary<eCardType, CardListTableData>();
Dictionary<int, CardListTableData> dic_Data_byID = new Dictionary<int, CardListTableData>();
protected override void Awake()
{
Ins = this;
base.Awake();
}
protected override void Start()
{
tableDatas = JsonConvert.DeserializeObject<List<CardListTableData>>(json_last);
for (int i = 0; i < tableDatas.Count; i++)
{
var temp = tableDatas[i];
temp.f_Value1 = Get_Value(temp.s_Value1);
temp.f_Value2 = Get_Value(temp.s_Value2);
temp.f_Value3 = Get_Value(temp.s_Value3);
temp.e_CardGrade = (eGrade)temp.n_CardGrade;
if (!dic_gradeData.ContainsKey(temp.e_CardGrade))
dic_gradeData.Add(temp.e_CardGrade, new List<CardListTableData>());
dic_gradeData[temp.e_CardGrade].Add(temp);
dic_Data.Add(temp.e_CardType, temp);
dic_Data_byID.Add(temp.n_ID, temp);
}
base.Start();
}
public List<CardListTableData> Get_DataList() { return tableDatas; }
public List<CardListTableData> Get_DataList(params eGrade[] grade)
{
if (grade == null || grade.Length == 0)
return Get_DataList();
List<CardListTableData> result = new List<CardListTableData>();
foreach (var g in grade)
{
if (dic_gradeData.TryGetValue(g, out var list))
result.AddRange(list);
}
return result;
}
public List<CardListTableData> Get_DataList(int min_id, int max_id) { return tableDatas.FindAll(f=>f.n_ID >= min_id && f.n_ID <= max_id); }
public List<CardListTableData> Get_DataList(params int[] ids)
{
return tableDatas.FindAll(f => ids.Contains(f.n_ID));
}
public CardListTableData Get_Data(eCardType type) { return dic_Data[type]; }
public CardListTableData Get_Data(int id) { return dic_Data_byID[id]; }
}