몬스터 스테이지 추가 스탯 적용

This commit is contained in:
Ino 2026-01-14 08:57:21 +09:00
parent 1561b52fe1
commit 2948b187a3
6 changed files with 20 additions and 22 deletions

View File

@ -1,10 +1,9 @@
테이블 연결
- 스테이지
- 웨이브
- 몬스터
- 유닛
- 몬스터
- 투사체(이펙트)
타이머 적용
- 시간 다 되면 패배
승리 화면
경험치 획득
레벨 업 및 스킬 선택
스킬 15종
몬스터 이동방식 구현
// - 직진

View File

@ -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"}]
[{"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"}]

View File

@ -1 +1 @@
[{"n_UnitID":"1001","n_DefaultAttack":"1","n_DefaultHp":"500","f_AttackSpeed":"1.25","n_DefaultProjectileCount":"1","n_ProjectileID":"3001","s_UnitPrefabPath":"DefaultUnit"}]
[{"n_UnitID":"1001","n_DefaultAttack":"25","n_DefaultHp":"500","f_AttackSpeed":"1.25","n_DefaultProjectileCount":"1","n_ProjectileID":"3001","s_UnitPrefabPath":"DefaultUnit"}]

View File

@ -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
});
}

View File

@ -97,16 +97,12 @@ public class IngameMgr : MonoBehaviourSingletonTemplate<IngameMgr>
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<IngameMgr>
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<IngameMgr>
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)