Compare commits

..

2 Commits

Author SHA1 Message Date
Ino 4262387136 Merge branch 'main' of https://burning.i234.me/fgb_ino/OneShotOneKill 2026-01-13 16:33:13 +09:00
Ino 97b4090036 데미지 입히기 2026-01-13 16:33:06 +09:00
10 changed files with 52 additions and 14 deletions

View File

@ -9,7 +9,7 @@
몬스터 펜스 공격하기 몬스터 펜스 공격하기
// - 몬스터 공격 프리팹 만들기 // - 몬스터 공격 프리팹 만들기
// - 몬스터 공격 애님 // - 몬스터 공격 애님
- 프리팹 발사! // - 프리팹 발사!
- 펜스 hp 깍기 - 펜스 hp 깍기
- 펜스 부서지면 패배 화면 - 펜스 부서지면 패배 화면

View File

@ -1 +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","n_ProjectileID":"3101","s_MonsterPrefabPath":"2001","f_Scale":"0.15","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","n_ProjectileID":"3102","s_MonsterPrefabPath":"2002","f_Scale":"0.15","e_ShieldType":"Static","n_NormalShieldCount":"1","n_InvinityShieldCount":"0"},{"n_MonsterTypeID":"2003","e_MonsterType":"Boss","f_DefaultAttack":"30","f_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","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","n_ProjectileID":"3101","s_MonsterPrefabPath":"2004","f_Scale":"0.15","e_ShieldType":"None","n_NormalShieldCount":"0","n_InvinityShieldCount":"0"},{"n_MonsterTypeID":"2005","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","n_ProjectileID":"3102","s_MonsterPrefabPath":"2005","f_Scale":"0.15","e_ShieldType":"Static","n_NormalShieldCount":"1","n_InvinityShieldCount":"0"},{"n_MonsterTypeID":"2006","e_MonsterType":"Boss","f_DefaultAttack":"30","f_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":"0","n_InvinityShieldCount":"0"},{"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":"Static","n_NormalShieldCount":"1","n_InvinityShieldCount":"0"},{"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":"0","n_InvinityShieldCount":"0"},{"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":"Static","n_NormalShieldCount":"1","n_InvinityShieldCount":"0"},{"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","f_DefaultAttack":"100","n_DefaultHp":"500","f_AttackSpeed":"1.25","n_DefaultProjectileCount":"1","n_ProjectileID":"3001","s_UnitPrefabPath":"DefaultUnit"}] [{"n_UnitID":"1001","n_DefaultAttack":"100","n_DefaultHp":"500","f_AttackSpeed":"1.25","n_DefaultProjectileCount":"1","n_ProjectileID":"3001","s_UnitPrefabPath":"DefaultUnit"}]

View File

@ -38,7 +38,8 @@ public class AimArrowController : MonoBehaviour
{ {
IsPC = true, IsPC = true,
m_Data = table_projectile.Ins.Get_Data(unit.n_ProjectileID), m_Data = table_projectile.Ins.Get_Data(unit.n_ProjectileID),
tf_Start = arrow.transform tf_Start = arrow.transform,
Dmg = unit.n_DefaultAttack
}); });
} }

View File

@ -1,3 +1,4 @@
using CodeStage.AntiCheat.ObscuredTypes;
using System.Collections; using System.Collections;
using UnityEngine; using UnityEngine;
@ -9,6 +10,7 @@ public class MobActor : MonoBehaviour
float FenceY, m_attackTimer; float FenceY, m_attackTimer;
eMobState m_State = eMobState.Move; eMobState m_State = eMobState.Move;
Animator m_Animator; Animator m_Animator;
ObscuredInt _HP; int m_HP { get { return _HP; } set { _HP = value; _HP.RandomizeCryptoKey(); } }
private void Awake() private void Awake()
{ {
@ -42,6 +44,7 @@ public class MobActor : MonoBehaviour
m_Data = data; m_Data = data;
FenceY = fenceY; FenceY = fenceY;
m_attackTimer = m_Data.f_AttackDelay; m_attackTimer = m_Data.f_AttackDelay;
m_HP = m_Data.n_DefaultHp;
} }
void Move() void Move()
@ -82,7 +85,17 @@ public class MobActor : MonoBehaviour
{ {
IsPC = false, IsPC = false,
m_Data = table_projectile.Ins.Get_Data(m_Data.n_ProjectileID), m_Data = table_projectile.Ins.Get_Data(m_Data.n_ProjectileID),
tf_Start = transform tf_Start = transform,
Dmg = m_Data.n_DefaultAttack
}); });
} }
public void Get_Dmg(int dmg)
{
m_HP -= dmg;
if (m_HP <= 0)
{
gameObject.SetActive(false);
}
}
} }

View File

@ -100,6 +100,12 @@ public class IngameMgr : MonoBehaviourSingletonTemplate<IngameMgr>
StartCoroutine(Co_MakeMob()); StartCoroutine(Co_MakeMob());
} }
public void Get_Dmg(int dmg)
{
m_HP -= dmg;
Set_Texts();
}
public StageConfigTableData Get_CurStageTData() { return CurStageData; } public StageConfigTableData Get_CurStageTData() { return CurStageData; }
public UnitTableData Get_CurUnitTData() { return CurUnitData; } public UnitTableData Get_CurUnitTData() { return CurUnitData; }
} }

View File

@ -1,7 +1,5 @@
using CodeStage.AntiCheat.ObscuredTypes; using CodeStage.AntiCheat.ObscuredTypes;
using UnityEngine; using UnityEngine;
using static UnityEditor.PlayerSettings;
using static UnityEngine.Rendering.DebugUI.Table;
public class Projectile : MonoBehaviour public class Projectile : MonoBehaviour
{ {
@ -59,6 +57,8 @@ public class Projectile : MonoBehaviour
{ {
if (!m_ProjectileData.IsPC && collision.tag == "Mob") return; if (!m_ProjectileData.IsPC && collision.tag == "Mob") return;
Check_Hit(collision);
if (m_bounceCount <= 0) if (m_bounceCount <= 0)
{ {
Kill(); Kill();
@ -119,6 +119,26 @@ public class Projectile : MonoBehaviour
// 위치 보정 // 위치 보정
transform.position = targetPos; transform.position = targetPos;
}
void Check_Hit(Collider2D collision)
{
if (m_ProjectileData.IsPC)
{
if (collision.tag == "Mob")
{
collision.GetComponent<MobActor>().Get_Dmg(m_ProjectileData.Dmg);
}
}
else
{
if (collision.tag == "Wall_HP")
{
IngameMgr.Ins.Get_Dmg(m_ProjectileData.Dmg);
}
}
} }
void Projectile_Split(bool hitEnemy) void Projectile_Split(bool hitEnemy)
@ -139,4 +159,5 @@ public class ProjectileData
public Transform tf_Start; public Transform tf_Start;
ObscuredBool _IsPC; public bool IsPC { get { return _IsPC; } set { _IsPC = value; _IsPC.RandomizeCryptoKey(); } } ObscuredBool _IsPC; public bool IsPC { get { return _IsPC; } set { _IsPC = value; _IsPC.RandomizeCryptoKey(); } }
ObscuredInt _Lv; public int Lv { get { return _Lv; } set { _Lv = value; _Lv.RandomizeCryptoKey(); } } ObscuredInt _Lv; public int Lv { get { return _Lv; } set { _Lv = value; _Lv.RandomizeCryptoKey(); } }
ObscuredInt _Dmg; public int Dmg { get { return _Dmg; } set { _Dmg = value; _Dmg.RandomizeCryptoKey(); } }
} }

View File

@ -11,9 +11,9 @@ public class MonsterTableData : TableDataBase
{ {
public eMonsterType e_MonsterType; public eMonsterType e_MonsterType;
ObscuredInt _MonsterTypeID; public int n_MonsterTypeID { get { return _MonsterTypeID; } set { _MonsterTypeID = value; _MonsterTypeID.RandomizeCryptoKey(); } } 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(); } } ObscuredInt _DefaultAttack; public int n_DefaultAttack { get { return _DefaultAttack; } set { _DefaultAttack = value; _DefaultAttack.RandomizeCryptoKey(); } }
ObscuredFloat _DefaultHp; public float f_DefaultHp { get { return _DefaultHp; } set { _DefaultHp = value; _DefaultHp.RandomizeCryptoKey(); } } ObscuredInt _DefaultHp; public int n_DefaultHp { get { return _DefaultHp; } set { _DefaultHp = value; _DefaultHp.RandomizeCryptoKey(); } }
ObscuredFloat _DropExp; public float n_DropExp { get { return _DropExp; } set { _DropExp = value; _DropExp.RandomizeCryptoKey(); } } ObscuredInt _DropExp; public int n_DropExp { get { return _DropExp; } set { _DropExp = value; _DropExp.RandomizeCryptoKey(); } }
public eUnityType e_UnityType; public eUnityType e_UnityType;
ObscuredFloat _AttackRange; public float f_AttackRange { get { return _AttackRange; } set { _AttackRange = value; _AttackRange.RandomizeCryptoKey(); } } ObscuredFloat _AttackRange; public float f_AttackRange { get { return _AttackRange; } set { _AttackRange = value; _AttackRange.RandomizeCryptoKey(); } }

View File

@ -5,11 +5,8 @@ using System.Collections.Generic;
public class UnitTableData : TableDataBase public class UnitTableData : TableDataBase
{ {
ObscuredInt _UnitID; public int n_UnitID { get { return _UnitID; } set { _UnitID = value; _UnitID.RandomizeCryptoKey(); } } ObscuredInt _UnitID; public int n_UnitID { get { return _UnitID; } set { _UnitID = value; _UnitID.RandomizeCryptoKey(); } }
ObscuredInt _DefaultAttack; public int n_DefaultAttack { get { return _DefaultAttack; } set { _DefaultAttack = value; _DefaultAttack.RandomizeCryptoKey(); } }
ObscuredFloat _DefaultAttack; public float f_DefaultAttack { get { return _DefaultAttack; } set { _DefaultAttack = value; _DefaultAttack.RandomizeCryptoKey(); } }
ObscuredInt _DefaultHp; public int n_DefaultHp { get { return _DefaultHp; } set { _DefaultHp = value; _DefaultHp.RandomizeCryptoKey(); } } ObscuredInt _DefaultHp; public int n_DefaultHp { get { return _DefaultHp; } set { _DefaultHp = value; _DefaultHp.RandomizeCryptoKey(); } }
ObscuredFloat _AttackSpeed; public float f_AttackSpeed { get { return _AttackSpeed; } set { _AttackSpeed = value; _AttackSpeed.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(); } } ObscuredInt _DefaultProjectileCount; public int n_DefaultProjectileCount { get { return _DefaultProjectileCount; } set { _DefaultProjectileCount = value; _DefaultProjectileCount.RandomizeCryptoKey(); } }
ObscuredInt _ProjectileID; public int n_ProjectileID { get { return _ProjectileID; } set { _ProjectileID = value; _ProjectileID.RandomizeCryptoKey(); } } ObscuredInt _ProjectileID; public int n_ProjectileID { get { return _ProjectileID; } set { _ProjectileID = value; _ProjectileID.RandomizeCryptoKey(); } }