diff --git a/Assets/ResWork/Table/Export/Monster.json b/Assets/ResWork/Table/Export/Monster.json new file mode 100644 index 0000000..caa0349 --- /dev/null +++ b/Assets/ResWork/Table/Export/Monster.json @@ -0,0 +1 @@ +[{"n_MonsterTypeID":"2001","e_MonsterType":"Monster","f_DefaultAttack":"10","f_DefaultHp":"40","n_DropExp":"1","e_UnityType":"Melee","f_AttackRange":"1.2","f_AttackDelay":"1.1","f_MoveSpeed":"1","e_MoveType":"Static","s_ProjectilePrefabs":"DefaultMeleeProjectile","s_MonsterPrefabPath":"Monster1","e_ShieldType":"None","n_NormalShieldCount":"0","n_InvinityShieldCount":"0"},{"n_MonsterTypeID":"2002","e_MonsterType":"Monster","f_DefaultAttack":"20","f_DefaultHp":"60","n_DropExp":"1","e_UnityType":"Range","f_AttackRange":"5","f_AttackDelay":"2","f_MoveSpeed":"1.2","e_MoveType":"Static","s_ProjectilePrefabs":"DefaultRangeProjectile","s_MonsterPrefabPath":"Monster2","e_ShieldType":"Static","n_NormalShieldCount":"1","n_InvinityShieldCount":"0"},{"n_MonsterTypeID":"2003","e_MonsterType":"Boss","f_DefaultAttack":"30","f_DefaultHp":"60","n_DropExp":"1","e_UnityType":"Range","f_AttackRange":"4.5","f_AttackDelay":"1.5","f_MoveSpeed":"1.2","e_MoveType":"Random","s_ProjectilePrefabs":"DefaultRangeProjectile","s_MonsterPrefabPath":"Monster3","e_ShieldType":"Rotation","n_NormalShieldCount":"1","n_InvinityShieldCount":"0"}] \ No newline at end of file diff --git a/Assets/ResWork/Table/Export/Monster.json.meta b/Assets/ResWork/Table/Export/Monster.json.meta new file mode 100644 index 0000000..cd9d676 --- /dev/null +++ b/Assets/ResWork/Table/Export/Monster.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2783bb277819a734a879327ac0c3b711 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ResWork/Table/Export/Projectile.json b/Assets/ResWork/Table/Export/Projectile.json new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Assets/ResWork/Table/Export/Projectile.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Assets/ResWork/Table/Export/Projectile.json.meta b/Assets/ResWork/Table/Export/Projectile.json.meta new file mode 100644 index 0000000..f4a239f --- /dev/null +++ b/Assets/ResWork/Table/Export/Projectile.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e42ac2af9fcbeda4da8d33ba81061290 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ResWork/Table/Export/StageConfig.json b/Assets/ResWork/Table/Export/StageConfig.json new file mode 100644 index 0000000..cc099a2 --- /dev/null +++ b/Assets/ResWork/Table/Export/StageConfig.json @@ -0,0 +1 @@ +[{"n_StageID":"10001","n_NextStage":"10002","s_StageMapPath":"stage/map1","n_StageName":"90001","n_WavePatternGroupID":"1001","n_MaxWave":"3","s_AppearMeleeMonsterID":"111^222^333","s_AppearRangeMonsterID":"222","s_AppearBossWave":"3^5","s_AppearBossMonsterID":"333^333","n_DropItemId":"0","s_DropItemRate":"0%","n_StageClearGold":"100","n_StageClearExp":"3","n_DefaultEnemyAttack":"3","n_DefaultEnemyHp":"2","n_DefaultBossAttack":"3","n_DefaultBossHp":"2"},{"n_StageID":"10002","n_NextStage":"10003","s_StageMapPath":"stage/map2","n_StageName":"90002","n_WavePatternGroupID":"1001","n_MaxWave":"3","s_AppearMeleeMonsterID":"111","s_AppearRangeMonsterID":"222","s_AppearBossWave":"3","s_AppearBossMonsterID":"333","n_DropItemId":"0","s_DropItemRate":"0%","n_StageClearGold":"200","n_StageClearExp":"7","n_DefaultEnemyAttack":"7","n_DefaultEnemyHp":"6","n_DefaultBossAttack":"7","n_DefaultBossHp":"6"},{"n_StageID":"10003","n_NextStage":"10004","s_StageMapPath":"stage/map3","n_StageName":"90003","n_WavePatternGroupID":"1001","n_MaxWave":"3","s_AppearMeleeMonsterID":"111","s_AppearRangeMonsterID":"222","s_AppearBossWave":"3^5","s_AppearBossMonsterID":"333^444","n_DropItemId":"0","s_DropItemRate":"0%","n_StageClearGold":"300","n_StageClearExp":"10","n_DefaultEnemyAttack":"10","n_DefaultEnemyHp":"8","n_DefaultBossAttack":"10","n_DefaultBossHp":"8"},{"n_StageID":"10004","n_NextStage":"-1","s_StageMapPath":"stage/map4","n_StageName":"90004","n_WavePatternGroupID":"1002","n_MaxWave":"3","s_AppearMeleeMonsterID":"111","s_AppearRangeMonsterID":"222","s_AppearBossWave":"3","s_AppearBossMonsterID":"333","n_DropItemId":"0","s_DropItemRate":"0%","n_StageClearGold":"400","n_StageClearExp":"15","n_DefaultEnemyAttack":"15","n_DefaultEnemyHp":"10","n_DefaultBossAttack":"15","n_DefaultBossHp":"10"}] \ No newline at end of file diff --git a/Assets/ResWork/Table/Export/StageConfig.json.meta b/Assets/ResWork/Table/Export/StageConfig.json.meta new file mode 100644 index 0000000..a2c419c --- /dev/null +++ b/Assets/ResWork/Table/Export/StageConfig.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 38b5ebdfb2d2eee4ab06dd45d0330fd1 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ResWork/Table/Export/Unit.json b/Assets/ResWork/Table/Export/Unit.json new file mode 100644 index 0000000..351da3c --- /dev/null +++ b/Assets/ResWork/Table/Export/Unit.json @@ -0,0 +1 @@ +[{"n_UnitID":"1000","f_DefaultAttack":"100","f_DefaultHp":"500","f_AttackSpeed":"1.25","n_DefaultProjectileCount":"1","s_ProjectilePrefabs":"Projectile_Arrow","s_UnitPrefabPath":"DefaultUnit"}] \ No newline at end of file diff --git a/Assets/ResWork/Table/Export/Unit.json.meta b/Assets/ResWork/Table/Export/Unit.json.meta new file mode 100644 index 0000000..f404699 --- /dev/null +++ b/Assets/ResWork/Table/Export/Unit.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c2064c713188f92419f38de9afe7f25e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ResWork/Table/Export/WavePattern.json b/Assets/ResWork/Table/Export/WavePattern.json new file mode 100644 index 0000000..67c3c65 --- /dev/null +++ b/Assets/ResWork/Table/Export/WavePattern.json @@ -0,0 +1 @@ +[{"n_PatternID":"1001","n_AppearWave":"1","n_AppearMeleeMonster":"10","n_AppearRangeMonster":"0","f_AppearDelay":"0.5","n_OverlapUnitCount":"1","f_NextWaveDelay":"3.5"},{"n_PatternID":"1001","n_AppearWave":"2","n_AppearMeleeMonster":"27","n_AppearRangeMonster":"4","f_AppearDelay":"0.35","n_OverlapUnitCount":"1","f_NextWaveDelay":"2.5"},{"n_PatternID":"1001","n_AppearWave":"3","n_AppearMeleeMonster":"40","n_AppearRangeMonster":"10","f_AppearDelay":"0.2","n_OverlapUnitCount":"2","f_NextWaveDelay":"2.5"},{"n_PatternID":"1002","n_AppearWave":"1","n_AppearMeleeMonster":"10","n_AppearRangeMonster":"0","f_AppearDelay":"0.5","n_OverlapUnitCount":"2","f_NextWaveDelay":"3"},{"n_PatternID":"1002","n_AppearWave":"2","n_AppearMeleeMonster":"27","n_AppearRangeMonster":"4","f_AppearDelay":"0.35","n_OverlapUnitCount":"2","f_NextWaveDelay":"3"},{"n_PatternID":"1002","n_AppearWave":"3","n_AppearMeleeMonster":"40","n_AppearRangeMonster":"10","f_AppearDelay":"0.2","n_OverlapUnitCount":"3","f_NextWaveDelay":"3"},{"n_PatternID":"1003","n_AppearWave":"1","n_AppearMeleeMonster":"10","n_AppearRangeMonster":"0","f_AppearDelay":"0.5","n_OverlapUnitCount":"2","f_NextWaveDelay":"3"},{"n_PatternID":"1003","n_AppearWave":"2","n_AppearMeleeMonster":"27","n_AppearRangeMonster":"4","f_AppearDelay":"0.35","n_OverlapUnitCount":"2","f_NextWaveDelay":"3"},{"n_PatternID":"1003","n_AppearWave":"3","n_AppearMeleeMonster":"40","n_AppearRangeMonster":"10","f_AppearDelay":"0.2","n_OverlapUnitCount":"3","f_NextWaveDelay":"3"}] \ No newline at end of file diff --git a/Assets/ResWork/Table/Export/WavePattern.json.meta b/Assets/ResWork/Table/Export/WavePattern.json.meta new file mode 100644 index 0000000..56b1605 --- /dev/null +++ b/Assets/ResWork/Table/Export/WavePattern.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9c679c8a052d27f46b8447f81f7300fc +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ResWork/Table/OneShotOneKill.xlsm b/Assets/ResWork/Table/OneShotOneKill.xlsm index 3d52b10..637f43c 100644 Binary files a/Assets/ResWork/Table/OneShotOneKill.xlsm and b/Assets/ResWork/Table/OneShotOneKill.xlsm differ diff --git a/Assets/ResWork/Table/Tables.prefab b/Assets/ResWork/Table/Tables.prefab new file mode 100644 index 0000000..9422135 --- /dev/null +++ b/Assets/ResWork/Table/Tables.prefab @@ -0,0 +1,117 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5906217593366369380 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3207038533737373463} + - component: {fileID: 7040573454811770087} + - component: {fileID: 918008692380829165} + - component: {fileID: 8271751054104059368} + - component: {fileID: 8498079829055956521} + - component: {fileID: 4675958707163654338} + - component: {fileID: 8139660753225562573} + m_Layer: 0 + m_Name: Tables + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3207038533737373463 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5906217593366369380} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7040573454811770087 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5906217593366369380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c14fed3eb438f914cb3505f08e1677d4, type: 3} + m_Name: + m_EditorClassIdentifier: + go_child: {fileID: 0} +--- !u!114 &918008692380829165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5906217593366369380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8b79913d6735e84ea9e4738b442c34d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_json: {fileID: 4900000, guid: 38b5ebdfb2d2eee4ab06dd45d0330fd1, type: 3} +--- !u!114 &8271751054104059368 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5906217593366369380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 13b7532c7b26a43459920f16f8f3d58a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_json: {fileID: 4900000, guid: 9c679c8a052d27f46b8447f81f7300fc, type: 3} +--- !u!114 &8498079829055956521 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5906217593366369380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d9833df043ca7014696935790858755e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_json: {fileID: 4900000, guid: c2064c713188f92419f38de9afe7f25e, type: 3} +--- !u!114 &4675958707163654338 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5906217593366369380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 178b309850d560449bbc72e7e717e212, type: 3} + m_Name: + m_EditorClassIdentifier: + m_json: {fileID: 4900000, guid: 2783bb277819a734a879327ac0c3b711, type: 3} +--- !u!114 &8139660753225562573 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5906217593366369380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4d0644cc4484c449d0922ef8d4ea8c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_json: {fileID: 4900000, guid: e42ac2af9fcbeda4da8d33ba81061290, type: 3} diff --git a/Assets/ResWork/Table/Tables.prefab.meta b/Assets/ResWork/Table/Tables.prefab.meta new file mode 100644 index 0000000..c720df0 --- /dev/null +++ b/Assets/ResWork/Table/Tables.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5bd40d187010c6145bd2da60731968cf +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SampleScene.unity b/Assets/SampleScene.unity index 205fa0e..877c27e 100644 --- a/Assets/SampleScene.unity +++ b/Assets/SampleScene.unity @@ -213874,51 +213874,6 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] ---- !u!1 &929836087 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 929836089} - - component: {fileID: 929836088} - m_Layer: 0 - m_Name: Tables - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &929836088 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 929836087} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c14fed3eb438f914cb3505f08e1677d4, type: 3} - m_Name: - m_EditorClassIdentifier: - go_child: {fileID: 0} ---- !u!4 &929836089 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 929836087} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &929929637 GameObject: m_ObjectHideFlags: 0 @@ -493347,6 +493302,63 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2146989364} m_CullTransparentMesh: 1 +--- !u!1001 &2318160772376801329 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3207038533737373463, guid: 5bd40d187010c6145bd2da60731968cf, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3207038533737373463, guid: 5bd40d187010c6145bd2da60731968cf, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3207038533737373463, guid: 5bd40d187010c6145bd2da60731968cf, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3207038533737373463, guid: 5bd40d187010c6145bd2da60731968cf, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3207038533737373463, guid: 5bd40d187010c6145bd2da60731968cf, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3207038533737373463, guid: 5bd40d187010c6145bd2da60731968cf, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3207038533737373463, guid: 5bd40d187010c6145bd2da60731968cf, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3207038533737373463, guid: 5bd40d187010c6145bd2da60731968cf, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3207038533737373463, guid: 5bd40d187010c6145bd2da60731968cf, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3207038533737373463, guid: 5bd40d187010c6145bd2da60731968cf, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5906217593366369380, guid: 5bd40d187010c6145bd2da60731968cf, type: 3} + propertyPath: m_Name + value: Tables + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5bd40d187010c6145bd2da60731968cf, type: 3} --- !u!1001 &8383393700860967785 PrefabInstance: m_ObjectHideFlags: 0 @@ -493466,4 +493478,4 @@ SceneRoots: - {fileID: 1148982707} - {fileID: 11995857} - {fileID: 1293320786} - - {fileID: 929836089} + - {fileID: 2318160772376801329} diff --git a/Assets/Script/Table/Tables/table_cardlist.cs b/Assets/Script/Table/Tables/table_cardlist.cs deleted file mode 100644 index d863473..0000000 --- a/Assets/Script/Table/Tables/table_cardlist.cs +++ /dev/null @@ -1,310 +0,0 @@ -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 tableDatas; - Dictionary> dic_gradeData = new Dictionary>(); - Dictionary dic_Data = new Dictionary(); - Dictionary dic_Data_byID = new Dictionary(); - - protected override void Awake() - { - Ins = this; - base.Awake(); - } - - protected override void Start() - { - tableDatas = JsonConvert.DeserializeObject>(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()); - 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 Get_DataList() { return tableDatas; } - public List Get_DataList(params eGrade[] grade) - { - if (grade == null || grade.Length == 0) - return Get_DataList(); - - List result = new List(); - - foreach (var g in grade) - { - if (dic_gradeData.TryGetValue(g, out var list)) - result.AddRange(list); - } - - return result; - } - public List Get_DataList(int min_id, int max_id) { return tableDatas.FindAll(f=>f.n_ID >= min_id && f.n_ID <= max_id); } - public List 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]; } -} \ No newline at end of file diff --git a/Assets/Script/Table/Tables/table_cardlist.cs.meta b/Assets/Script/Table/Tables/table_cardlist.cs.meta deleted file mode 100644 index da9e741..0000000 --- a/Assets/Script/Table/Tables/table_cardlist.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 31017efc23eda2c41a70f09f1d83a084 \ No newline at end of file diff --git a/Assets/Script/Table/Tables/table_monster.cs b/Assets/Script/Table/Tables/table_monster.cs new file mode 100644 index 0000000..0128687 --- /dev/null +++ b/Assets/Script/Table/Tables/table_monster.cs @@ -0,0 +1,49 @@ +using CodeStage.AntiCheat.ObscuredTypes; +using Newtonsoft.Json; +using System.Collections.Generic; + +public enum eMonsterType { Monster, Boss } +public enum eUnityType { Melee, Range } +public enum eMoveType { Static, Random} +public enum eShieldType { None, Static, Rotation } + +public class MonsterTableData : TableDataBase +{ + public eMonsterType e_MonsterType; + ObscuredInt _MonsterTypeID; public int n_MonsterTypeID { get { return _MonsterTypeID; } set { _MonsterTypeID = value; _MonsterTypeID.RandomizeCryptoKey(); } } + ObscuredFloat _DefaultAttack; public float f_DefaultAttack { get { return _DefaultAttack; } set { _DefaultAttack = value; _DefaultAttack.RandomizeCryptoKey(); } } + ObscuredFloat _DefaultHp; public float f_DefaultHp { get { return _DefaultHp; } set { _DefaultHp = value; _DefaultHp.RandomizeCryptoKey(); } } + ObscuredFloat _DropExp; public float n_DropExp { get { return _DropExp; } set { _DropExp = value; _DropExp.RandomizeCryptoKey(); } } + + public eUnityType e_UnityType; + ObscuredFloat _AttackRange; public float f_AttackRange { get { return _AttackRange; } set { _AttackRange = value; _AttackRange.RandomizeCryptoKey(); } } + ObscuredFloat _AttackDelay; public float f_AttackDelay { get { return _AttackDelay; } set { _AttackDelay = value; _AttackDelay.RandomizeCryptoKey(); } } + ObscuredFloat _MoveSpeed; public float f_MoveSpeed { get { return _MoveSpeed; } set { _MoveSpeed = value; _MoveSpeed.RandomizeCryptoKey(); } } + public eMoveType e_MoveType; + public string s_ProjectilePrefabs, s_MonsterPrefabPath; + public eShieldType e_ShieldType; + ObscuredInt _NormalShieldCount; public int n_NormalShieldCount { get { return _NormalShieldCount; } set { _NormalShieldCount = value; _NormalShieldCount.RandomizeCryptoKey(); } } + ObscuredInt _InvinityShieldCount; public int n_InvinityShieldCount { get { return _InvinityShieldCount; } set { _InvinityShieldCount = value; _InvinityShieldCount.RandomizeCryptoKey(); } } +} + +public class table_monster : table_base +{ + public static table_monster Ins; + + List tableDatas; + + protected override void Awake() + { + Ins = this; + base.Awake(); + } + + protected override void Start() + { + tableDatas = JsonConvert.DeserializeObject>(json_last); + base.Start(); + } + + public List Get_DataList() { return tableDatas; } + public MonsterTableData Get_Data(int id) { return tableDatas.Find(f => f.n_MonsterTypeID == id); } +} \ No newline at end of file diff --git a/Assets/Script/Table/Tables/table_monster.cs.meta b/Assets/Script/Table/Tables/table_monster.cs.meta new file mode 100644 index 0000000..0b13f2f --- /dev/null +++ b/Assets/Script/Table/Tables/table_monster.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 178b309850d560449bbc72e7e717e212 \ No newline at end of file diff --git a/Assets/Script/Table/Tables/table_projectile.cs b/Assets/Script/Table/Tables/table_projectile.cs new file mode 100644 index 0000000..e33b08d --- /dev/null +++ b/Assets/Script/Table/Tables/table_projectile.cs @@ -0,0 +1,37 @@ +using CodeStage.AntiCheat.ObscuredTypes; +using Newtonsoft.Json; +using System.Collections.Generic; + +public class ProjectileTableData : TableDataBase +{ + public string s_ProjectilePrefabs, s_HitEffect, s_ProjectileSpeed, s_ProjectileLife; + ObscuredInt _ProjectileID; public int n_ProjectileID { get { return _ProjectileID; } set { _ProjectileID = value; _ProjectileID.RandomizeCryptoKey(); } } + ObscuredFloat _AttackBounceLimit; public float f_AttackBounceLimit { get { return _AttackBounceLimit; } set { _AttackBounceLimit = value; _AttackBounceLimit.RandomizeCryptoKey(); } } + ObscuredFloat _ProjectileDistance; public float f_ProjectileDistance { get { return _ProjectileDistance; } set { _ProjectileDistance = value; _ProjectileDistance.RandomizeCryptoKey(); } } + ObscuredFloat _KnockbackDistance; public float f_KnockbackDistance { get { return _KnockbackDistance; } set { _KnockbackDistance = value; _KnockbackDistance.RandomizeCryptoKey(); } } + ObscuredFloat _StunTime; public float f_StunTime { get { return _StunTime; } set { _StunTime = value; _StunTime.RandomizeCryptoKey(); } } + ObscuredFloat _ExplosionRange; public float f_ExplosionRange { get { return _ExplosionRange; } set { _ExplosionRange = value; _ExplosionRange.RandomizeCryptoKey(); } } + ObscuredFloat _ExplosionDamage; public float f_ExplosionDamage { get { return _ExplosionDamage; } set { _ExplosionDamage = value; _ExplosionDamage.RandomizeCryptoKey(); } } +} + +public class table_projectile : table_base +{ + public static table_projectile Ins; + + List tableDatas; + + protected override void Awake() + { + Ins = this; + base.Awake(); + } + + protected override void Start() + { + tableDatas = JsonConvert.DeserializeObject>(json_last); + base.Start(); + } + + public List Get_DataList() { return tableDatas; } + public ProjectileTableData Get_Data(int id) { return tableDatas.Find(f => f.n_ProjectileID == id); } +} \ No newline at end of file diff --git a/Assets/Script/Table/Tables/table_projectile.cs.meta b/Assets/Script/Table/Tables/table_projectile.cs.meta new file mode 100644 index 0000000..3e43989 --- /dev/null +++ b/Assets/Script/Table/Tables/table_projectile.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2a4d0644cc4484c449d0922ef8d4ea8c \ No newline at end of file diff --git a/Assets/Script/Table/Tables/table_stageconfig.cs b/Assets/Script/Table/Tables/table_stageconfig.cs new file mode 100644 index 0000000..fbfece4 --- /dev/null +++ b/Assets/Script/Table/Tables/table_stageconfig.cs @@ -0,0 +1,72 @@ +using CodeStage.AntiCheat.ObscuredTypes; +using Newtonsoft.Json; +using System.Collections.Generic; +using UnityEngine; + +public class StageConfigTableData : TableDataBase +{ + public string s_StageMapPath, s_AppearMeleeMonsterID, s_AppearRangeMonsterID, s_AppearBossMonsterID, s_AppearBossWave, s_DropItemRate; + ObscuredInt _StageID; public int n_StageID { get { return _StageID; } set { _StageID = value; _StageID.RandomizeCryptoKey(); } } + ObscuredInt _NextStage; public int n_NextStage { get { return _NextStage; } set { _NextStage = value; _NextStage.RandomizeCryptoKey(); } } + ObscuredInt _StageName; public int n_StageName { get { return _StageName; } set { _StageName = value; _StageName.RandomizeCryptoKey(); } } + ObscuredInt _WavePatternGroupID; public int n_WavePatternGroupID { get { return _WavePatternGroupID; } set { _WavePatternGroupID = value; _WavePatternGroupID.RandomizeCryptoKey(); } } + ObscuredInt _MaxWave; public int n_MaxWave { get { return _MaxWave; } set { _MaxWave = value; _MaxWave.RandomizeCryptoKey(); } } + ObscuredInt _DropItemId; public int n_DropItemId { get { return _DropItemId; } set { _DropItemId = value; _DropItemId.RandomizeCryptoKey(); } } + ObscuredFloat _DropItemRate; public float f_DropItemRate { get { return _DropItemRate; } set { _DropItemRate = value; _DropItemRate.RandomizeCryptoKey(); } } + ObscuredInt _StageClearGold; public int n_StageClearGold { get { return _StageClearGold; } set { _StageClearGold = value; _StageClearGold.RandomizeCryptoKey(); } } + + ObscuredInt _StageClearExp; public int n_StageClearExp { get { return _StageClearExp; } set { _StageClearExp = value; _StageClearExp.RandomizeCryptoKey(); } } + ObscuredInt _DefaultEnemyAttack; public int n_DefaultEnemyAttack { get { return _DefaultEnemyAttack; } set { _DefaultEnemyAttack = value; _DefaultEnemyAttack.RandomizeCryptoKey(); } } + ObscuredInt _DefaultEnemyHp; public int n_DefaultEnemyHp { get { return _DefaultEnemyHp; } set { _DefaultEnemyHp = value; _DefaultEnemyHp.RandomizeCryptoKey(); } } + ObscuredInt _DefaultBossAttack; public int n_DefaultBossAttack { get { return _DefaultBossAttack; } set { _DefaultBossAttack = value; _DefaultBossAttack.RandomizeCryptoKey(); } } + ObscuredInt _DefaultBossHp; public int n_DefaultBossHp { get { return _DefaultBossHp; } set { _DefaultBossHp = value; _DefaultBossHp.RandomizeCryptoKey(); } } + + public List list_monster_melee = new List(); + public List list_monster_range = new List(); + public Dictionary dic_boss = new Dictionary(); +} + +public class table_stageconfig : table_base +{ + public static table_stageconfig Ins; + + List tableDatas; + + protected override void Awake() + { + Ins = this; + base.Awake(); + } + + protected override void Start() + { + tableDatas = JsonConvert.DeserializeObject>(json_last); + + for (int i = 0; i < tableDatas.Count; i++) + { + var temp = tableDatas[i]; + temp.f_DropItemRate = Get_Value(temp.s_DropItemRate); + + var split = temp.s_AppearMeleeMonsterID.Split('^'); + for (int j = 0; j < split.Length; j++) + temp.list_monster_melee.Add(int.Parse(split[j])); + + split = temp.s_AppearRangeMonsterID.Split('^'); + for (int j = 0; j < split.Length; j++) + temp.list_monster_range.Add(int.Parse(split[j])); + + var bosswavesplit = temp.s_AppearBossWave.Split('^'); + var bosssplit = temp.s_AppearBossMonsterID.Split('^'); + if (bosswavesplit.Length != bosssplit.Length) + Debug.LogError($"스테이지 {temp.n_StageID}의 보스 웨이브와 보스 ID가 짝이 맞지 않습니다."); + else + for (int j = 0; j < bosssplit.Length; j++) + temp.dic_boss.Add(int.Parse(bosswavesplit[j]), int.Parse(bosssplit[j])); + } + + base.Start(); + } + + public List Get_DataList() { return tableDatas; } + public StageConfigTableData Get_Data(int id) { return tableDatas.Find(f => f.n_StageID == id); } +} \ No newline at end of file diff --git a/Assets/Script/Table/Tables/table_stageconfig.cs.meta b/Assets/Script/Table/Tables/table_stageconfig.cs.meta new file mode 100644 index 0000000..f178516 --- /dev/null +++ b/Assets/Script/Table/Tables/table_stageconfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e8b79913d6735e84ea9e4738b442c34d \ No newline at end of file diff --git a/Assets/Script/Table/Tables/table_unit.cs b/Assets/Script/Table/Tables/table_unit.cs new file mode 100644 index 0000000..95765d1 --- /dev/null +++ b/Assets/Script/Table/Tables/table_unit.cs @@ -0,0 +1,39 @@ +using CodeStage.AntiCheat.ObscuredTypes; +using Newtonsoft.Json; +using System.Collections.Generic; + +public class UnitTableData : TableDataBase +{ + ObscuredInt _UnitID; public int n_UnitID { get { return _UnitID; } set { _UnitID = value; _UnitID.RandomizeCryptoKey(); } } + + ObscuredFloat _DefaultAttack; public float f_DefaultAttack { get { return _DefaultAttack; } set { _DefaultAttack = value; _DefaultAttack.RandomizeCryptoKey(); } } + + ObscuredFloat _DefaultHp; public float f_DefaultHp { get { return _DefaultHp; } set { _DefaultHp = value; _DefaultHp.RandomizeCryptoKey(); } } + + ObscuredFloat _AttackSpeed; public float f_AttackSpeed { get { return _AttackSpeed; } set { _AttackSpeed = value; _AttackSpeed.RandomizeCryptoKey(); } } + + ObscuredInt _DefaultProjectileCount; public int n_DefaultProjectileCount { get { return _DefaultProjectileCount; } set { _DefaultProjectileCount = value; _DefaultProjectileCount.RandomizeCryptoKey(); } } + public string s_ProjectilePrefabs, s_UnitPrefabPath; +} + +public class table_unit : table_base +{ + public static table_unit Ins; + + List tableDatas; + + protected override void Awake() + { + Ins = this; + base.Awake(); + } + + protected override void Start() + { + tableDatas = JsonConvert.DeserializeObject>(json_last); + base.Start(); + } + + public List Get_DataList() { return tableDatas; } + public UnitTableData Get_Data(int id) { return tableDatas.Find(f=>f.n_UnitID == id); } +} \ No newline at end of file diff --git a/Assets/Script/Table/Tables/table_unit.cs.meta b/Assets/Script/Table/Tables/table_unit.cs.meta new file mode 100644 index 0000000..f3b380b --- /dev/null +++ b/Assets/Script/Table/Tables/table_unit.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d9833df043ca7014696935790858755e \ No newline at end of file diff --git a/Assets/Script/Table/Tables/table_wavepattern.cs b/Assets/Script/Table/Tables/table_wavepattern.cs new file mode 100644 index 0000000..4a52873 --- /dev/null +++ b/Assets/Script/Table/Tables/table_wavepattern.cs @@ -0,0 +1,36 @@ +using CodeStage.AntiCheat.ObscuredTypes; +using Newtonsoft.Json; +using System.Collections.Generic; + +public class WavePatternTableData : TableDataBase +{ + ObscuredInt _PatternID; public int n_PatternID { get { return _PatternID; } set { _PatternID = value; _PatternID.RandomizeCryptoKey(); } } + ObscuredInt _AppearWave; public int n_AppearWave { get { return _AppearWave; } set { _AppearWave = value; _AppearWave.RandomizeCryptoKey(); } } + ObscuredInt _AppearMeleeMonster; public int n_AppearMeleeMonster { get { return _AppearMeleeMonster; } set { _AppearMeleeMonster = value; _AppearMeleeMonster.RandomizeCryptoKey(); } } + ObscuredInt _AppearRangeMonster; public int n_AppearRangeMonster { get { return _AppearRangeMonster; } set { _AppearRangeMonster = value; _AppearRangeMonster.RandomizeCryptoKey(); } } + ObscuredFloat _AppearDelay; public float f_AppearDelay { get { return _AppearDelay; } set { _AppearDelay = value; _AppearDelay.RandomizeCryptoKey(); } } + ObscuredInt _OverlapUnitCount; public int n_OverlapUnitCount { get { return _OverlapUnitCount; } set { _OverlapUnitCount = value; _OverlapUnitCount.RandomizeCryptoKey(); } } + ObscuredFloat _NextWaveDelay; public float f_NextWaveDelay { get { return _NextWaveDelay; } set { _NextWaveDelay = value; _NextWaveDelay.RandomizeCryptoKey(); } } +} + +public class table_wavepattern : table_base +{ + public static table_wavepattern Ins; + + List tableDatas; + + protected override void Awake() + { + Ins = this; + base.Awake(); + } + + protected override void Start() + { + tableDatas = JsonConvert.DeserializeObject>(json_last); + base.Start(); + } + + public List Get_DataList() { return tableDatas; } + public WavePatternTableData Get_Data(int id) { return tableDatas.Find(f => f.n_PatternID == id); } +} \ No newline at end of file diff --git a/Assets/Script/Table/Tables/table_wavepattern.cs.meta b/Assets/Script/Table/Tables/table_wavepattern.cs.meta new file mode 100644 index 0000000..313d22d --- /dev/null +++ b/Assets/Script/Table/Tables/table_wavepattern.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 13b7532c7b26a43459920f16f8f3d58a \ No newline at end of file