diff --git a/Assets/OneShotOneKill.txt b/Assets/OneShotOneKill.txt index 1ed3cea..eccc536 100644 --- a/Assets/OneShotOneKill.txt +++ b/Assets/OneShotOneKill.txt @@ -1,10 +1,9 @@ -테이블 연결 -- 스테이지 -- 웨이브 -- 몬스터 -- 유닛 -- 몬스터 -- 투사체(이펙트) +타이머 적용 + - 시간 다 되면 패배 +승리 화면 +경험치 획득 +레벨 업 및 스킬 선택 +스킬 15종 몬스터 이동방식 구현 // - 직진 diff --git a/Assets/ResWork/Table/Export/Monster.json b/Assets/ResWork/Table/Export/Monster.json index 3f9917a..2f39afb 100644 --- a/Assets/ResWork/Table/Export/Monster.json +++ b/Assets/ResWork/Table/Export/Monster.json @@ -1 +1 @@ -[{"n_MonsterTypeID":"2001","e_MonsterType":"Monster","n_DefaultAttack":"10","n_DefaultHp":"40","n_DropExp":"1","e_UnityType":"Melee","f_AttackRange":"1.2","f_AttackDelay":"1.1","f_MoveSpeed":"1","e_MoveType":"Static","n_ProjectileID":"3101","s_MonsterPrefabPath":"2001","f_Scale":"0.15","e_ShieldType":"Rotation","n_NormalShieldCount":"2","n_InvinityShieldCount":"2"},{"n_MonsterTypeID":"2002","e_MonsterType":"Monster","n_DefaultAttack":"20","n_DefaultHp":"60","n_DropExp":"1","e_UnityType":"Range","f_AttackRange":"5","f_AttackDelay":"2","f_MoveSpeed":"1.2","e_MoveType":"Static","n_ProjectileID":"3102","s_MonsterPrefabPath":"2002","f_Scale":"0.15","e_ShieldType":"Rotation","n_NormalShieldCount":"2","n_InvinityShieldCount":"2"},{"n_MonsterTypeID":"2003","e_MonsterType":"Boss","n_DefaultAttack":"30","n_DefaultHp":"60","n_DropExp":"3","e_UnityType":"Melee","f_AttackRange":"2","f_AttackDelay":"1.5","f_MoveSpeed":"1.2","e_MoveType":"Random","n_ProjectileID":"3101","s_MonsterPrefabPath":"2003","f_Scale":"0.3","e_ShieldType":"Rotation","n_NormalShieldCount":"1","n_InvinityShieldCount":"1"},{"n_MonsterTypeID":"2004","e_MonsterType":"Monster","n_DefaultAttack":"10","n_DefaultHp":"40","n_DropExp":"1","e_UnityType":"Melee","f_AttackRange":"1.2","f_AttackDelay":"1.1","f_MoveSpeed":"1","e_MoveType":"Static","n_ProjectileID":"3101","s_MonsterPrefabPath":"2004","f_Scale":"0.15","e_ShieldType":"Rotation","n_NormalShieldCount":"2","n_InvinityShieldCount":"2"},{"n_MonsterTypeID":"2005","e_MonsterType":"Monster","n_DefaultAttack":"20","n_DefaultHp":"60","n_DropExp":"1","e_UnityType":"Range","f_AttackRange":"5","f_AttackDelay":"2","f_MoveSpeed":"1.2","e_MoveType":"Static","n_ProjectileID":"3102","s_MonsterPrefabPath":"2005","f_Scale":"0.15","e_ShieldType":"Rotation","n_NormalShieldCount":"2","n_InvinityShieldCount":"2"},{"n_MonsterTypeID":"2006","e_MonsterType":"Boss","n_DefaultAttack":"30","n_DefaultHp":"60","n_DropExp":"3","e_UnityType":"Range","f_AttackRange":"4.5","f_AttackDelay":"1.5","f_MoveSpeed":"1.2","e_MoveType":"Random","n_ProjectileID":"3102","s_MonsterPrefabPath":"2006","f_Scale":"0.3","e_ShieldType":"Rotation","n_NormalShieldCount":"1","n_InvinityShieldCount":"1"}] \ No newline at end of file +[{"n_MonsterTypeID":"2001","e_MonsterType":"Monster","n_DefaultAttack":"10","n_DefaultHp":"40","n_DropExp":"1","e_UnityType":"Melee","f_AttackRange":"1.2","f_AttackDelay":"1.1","f_MoveSpeed":"1","e_MoveType":"Static","n_ProjectileID":"3101","s_MonsterPrefabPath":"2001","f_Scale":"0.15","e_ShieldType":"None","n_NormalShieldCount":"2","n_InvinityShieldCount":"2"},{"n_MonsterTypeID":"2002","e_MonsterType":"Monster","n_DefaultAttack":"20","n_DefaultHp":"60","n_DropExp":"1","e_UnityType":"Range","f_AttackRange":"5","f_AttackDelay":"2","f_MoveSpeed":"1.2","e_MoveType":"Static","n_ProjectileID":"3102","s_MonsterPrefabPath":"2002","f_Scale":"0.15","e_ShieldType":"None","n_NormalShieldCount":"2","n_InvinityShieldCount":"2"},{"n_MonsterTypeID":"2003","e_MonsterType":"Boss","n_DefaultAttack":"30","n_DefaultHp":"60","n_DropExp":"3","e_UnityType":"Melee","f_AttackRange":"2","f_AttackDelay":"1.5","f_MoveSpeed":"1.2","e_MoveType":"Random","n_ProjectileID":"3101","s_MonsterPrefabPath":"2003","f_Scale":"0.3","e_ShieldType":"Rotation","n_NormalShieldCount":"1","n_InvinityShieldCount":"1"},{"n_MonsterTypeID":"2004","e_MonsterType":"Monster","n_DefaultAttack":"10","n_DefaultHp":"40","n_DropExp":"1","e_UnityType":"Melee","f_AttackRange":"1.2","f_AttackDelay":"1.1","f_MoveSpeed":"1","e_MoveType":"Static","n_ProjectileID":"3101","s_MonsterPrefabPath":"2004","f_Scale":"0.15","e_ShieldType":"None","n_NormalShieldCount":"2","n_InvinityShieldCount":"2"},{"n_MonsterTypeID":"2005","e_MonsterType":"Monster","n_DefaultAttack":"20","n_DefaultHp":"60","n_DropExp":"1","e_UnityType":"Range","f_AttackRange":"5","f_AttackDelay":"2","f_MoveSpeed":"1.2","e_MoveType":"Static","n_ProjectileID":"3102","s_MonsterPrefabPath":"2005","f_Scale":"0.15","e_ShieldType":"None","n_NormalShieldCount":"2","n_InvinityShieldCount":"2"},{"n_MonsterTypeID":"2006","e_MonsterType":"Boss","n_DefaultAttack":"30","n_DefaultHp":"60","n_DropExp":"3","e_UnityType":"Range","f_AttackRange":"4.5","f_AttackDelay":"1.5","f_MoveSpeed":"1.2","e_MoveType":"Random","n_ProjectileID":"3102","s_MonsterPrefabPath":"2006","f_Scale":"0.3","e_ShieldType":"Rotation","n_NormalShieldCount":"1","n_InvinityShieldCount":"1"}] \ No newline at end of file diff --git a/Assets/ResWork/Table/Export/Unit.json b/Assets/ResWork/Table/Export/Unit.json index 380c9a6..f4fc8d7 100644 --- a/Assets/ResWork/Table/Export/Unit.json +++ b/Assets/ResWork/Table/Export/Unit.json @@ -1 +1 @@ -[{"n_UnitID":"1001","n_DefaultAttack":"1","n_DefaultHp":"500","f_AttackSpeed":"1.25","n_DefaultProjectileCount":"1","n_ProjectileID":"3001","s_UnitPrefabPath":"DefaultUnit"}] \ No newline at end of file +[{"n_UnitID":"1001","n_DefaultAttack":"25","n_DefaultHp":"500","f_AttackSpeed":"1.25","n_DefaultProjectileCount":"1","n_ProjectileID":"3001","s_UnitPrefabPath":"DefaultUnit"}] \ No newline at end of file diff --git a/Assets/ResWork/Table/OneShotOneKill.xlsm b/Assets/ResWork/Table/OneShotOneKill.xlsm index a967321..d8b1935 100644 Binary files a/Assets/ResWork/Table/OneShotOneKill.xlsm and b/Assets/ResWork/Table/OneShotOneKill.xlsm differ diff --git a/Assets/Script/InGame/Actor/MobActor.cs b/Assets/Script/InGame/Actor/MobActor.cs index cae7fae..e88a2e4 100644 --- a/Assets/Script/InGame/Actor/MobActor.cs +++ b/Assets/Script/InGame/Actor/MobActor.cs @@ -36,7 +36,8 @@ public class MobActor : MonoBehaviour return poolKey; } - ObscuredInt _HP; int m_HP { get { return _HP; } set { _HP = value; _HP.RandomizeCryptoKey(); } } + ObscuredInt _Attack; public int m_Attack { get { return _Attack; } set { _Attack = value; _Attack.RandomizeCryptoKey(); } } + ObscuredInt _HP; public int m_HP { get { return _HP; } set { _HP = value; _HP.RandomizeCryptoKey(); } } private void Awake() { @@ -65,7 +66,7 @@ public class MobActor : MonoBehaviour } } - public void Set(MonsterTableData data, float fenceY) + public void Set(bool isboss, MonsterTableData data, float fenceY) { gameObject.SetActive(true); if (m_HUD_HP == null) @@ -75,7 +76,10 @@ public class MobActor : MonoBehaviour m_Data = data; FenceY = fenceY; m_attackTimer = m_Data.f_AttackDelay; - m_HP = m_Data.n_DefaultHp; + + var curstagedata = IngameMgr.Ins.Get_CurStageTData(); + m_Attack = m_Data.n_DefaultAttack + (isboss ? curstagedata.n_DefaultBossAttack : curstagedata.n_DefaultEnemyAttack); + m_HP = m_Data.n_DefaultHp + (isboss ? curstagedata.n_DefaultBossHp : curstagedata.n_DefaultEnemyHp); m_HUD_HP.Set(transform, m_HP); m_MobShields.Set(data); } @@ -119,7 +123,7 @@ public class MobActor : MonoBehaviour IsPC = false, m_Data = table_projectile.Ins.Get_Data(m_Data.n_ProjectileID), tf_Start = transform, - Dmg = m_Data.n_DefaultAttack + Dmg = m_Attack }); } diff --git a/Assets/Script/InGame/IngameMgr.cs b/Assets/Script/InGame/IngameMgr.cs index a0f25f4..6489850 100644 --- a/Assets/Script/InGame/IngameMgr.cs +++ b/Assets/Script/InGame/IngameMgr.cs @@ -97,16 +97,12 @@ public class IngameMgr : MonoBehaviourSingletonTemplate mobid = CurStageData.list_monster_range[Random.Range(0, CurStageData.list_monster_range.Count)]; } - var mobdata = table_monster.Ins.Get_Data(mobid); - GetMob(mobdata).Set(mobdata, tf_fence.position.y); + MakeMob(false, table_monster.Ins.Get_Data(mobid)); } } if (CurStageData.dic_boss.ContainsKey(m_Wave)) - { - var mobdata = table_monster.Ins.Get_Data(CurStageData.dic_boss[m_Wave]); - GetMob(mobdata).Set(mobdata, tf_fence.position.y); - } + MakeMob(true, table_monster.Ins.Get_Data(CurStageData.dic_boss[m_Wave])); yield return new WaitForSeconds(wavedata.f_NextWaveDelay); ++m_Wave; @@ -114,7 +110,7 @@ public class IngameMgr : MonoBehaviourSingletonTemplate StartCoroutine(Co_MakeMob()); } - MobActor GetMob(MonsterTableData data) + void MakeMob(bool isboss, MonsterTableData data) { string key = data.s_MonsterPrefabPath; @@ -141,8 +137,7 @@ public class IngameMgr : MonoBehaviourSingletonTemplate mob.transform.SetParent(tfs_mobparent[Random.Range(0, tfs_mobparent.Length)], false); mob.transform.localPosition = Vector3.zero; mob.transform.localScale = Vector3.one * data.f_Scale; - mob.Set(data, tf_fence.position.y); - return mob; + mob.Set(isboss,data, tf_fence.position.y); } public void Get_Dmg(int dmg)