몹 일부 정리, 수상한 미궁 작업 중... 2
This commit is contained in:
parent
a20ab649ba
commit
aa8315eb78
|
|
@ -51,6 +51,7 @@ messageinfo 엄청 느린 버그
|
||||||
- 결과 화면 (승리 보상 지급)
|
- 결과 화면 (승리 보상 지급)
|
||||||
|
|
||||||
수상한 미궁
|
수상한 미궁
|
||||||
|
- 맵 벽과 플레이 사이 더 멀게 만들자
|
||||||
- 결과 화면 (보상 지급)
|
- 결과 화면 (보상 지급)
|
||||||
- 랭킹 (플레이팹 v2 연결)
|
- 랭킹 (플레이팹 v2 연결)
|
||||||
- 맵 벽과 플레이 사이 더 멀게 만들자
|
- 몬스터 생성 (한 층당 몇 마리? 6스테이지마다 보스는 한 마리만?)
|
||||||
|
|
@ -1 +1 @@
|
||||||
[{"e_DungeonType": "맵 종류", "n_MapLv": "맵 Lv", "n_MobCount": "등장 몬스터 수", "n_SpawnID": "AppearTable", "n_MobID": "MonsterListTable", "f_MakeGap": "생성 주기", "f_Time": "제한 시간(초)"}, {"e_DungeonType": "d1_Mimic", "n_MapLv": "1", "n_MobCount": "50", "n_SpawnID": "1", "n_MobID": "1001", "f_MakeGap": "0.4", "f_Time": "30"}, {"e_DungeonType": "d1_Mimic", "n_MapLv": "2", "n_MobCount": "60", "n_SpawnID": "2", "n_MobID": "1001", "f_MakeGap": "0.4", "f_Time": "30"}, {"e_DungeonType": "d2_Maze", "n_MapLv": "1", "n_MobCount": "0", "n_SpawnID": "1", "n_MobID": "1002", "f_MakeGap": "0", "f_Time": "90"}, {"e_DungeonType": "d3_Nightmare", "n_MapLv": "1", "n_MobCount": "0", "n_SpawnID": "1", "n_MobID": "1003", "f_MakeGap": "0", "f_Time": "90"}, {"e_DungeonType": "d4_Wave", "n_MapLv": "1", "n_MobCount": "0", "n_SpawnID": "1", "n_MobID": "1004", "f_MakeGap": "0", "f_Time": "1800"}]
|
[{"e_DungeonType": "맵 종류", "n_MapLv": "맵 Lv", "n_MobCount": "등장 몬스터 수", "n_SpawnID": "AppearTable", "n_MobID": "MonsterListTable", "f_MakeGap": "생성 주기", "f_Time": "제한 시간(초)"}, {"e_DungeonType": "d1_Mimic", "n_MapLv": "1", "n_MobCount": "50", "n_SpawnID": "1", "n_MobID": "1001", "f_MakeGap": "0.4", "f_Time": "30"}, {"e_DungeonType": "d1_Mimic", "n_MapLv": "2", "n_MobCount": "60", "n_SpawnID": "2", "n_MobID": "1001", "f_MakeGap": "0.4", "f_Time": "30"}, {"e_DungeonType": "d2_Maze", "n_MapLv": "1", "n_MobCount": "20", "n_SpawnID": "1", "n_MobID": "0", "f_MakeGap": "0", "f_Time": "90"}, {"e_DungeonType": "d3_Nightmare", "n_MapLv": "1", "n_MobCount": "0", "n_SpawnID": "1", "n_MobID": "1003", "f_MakeGap": "0", "f_Time": "90"}, {"e_DungeonType": "d4_Wave", "n_MapLv": "1", "n_MobCount": "0", "n_SpawnID": "1", "n_MobID": "1004", "f_MakeGap": "0", "f_Time": "1800"}]
|
||||||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
|
@ -371,7 +371,7 @@ public class Actor : MyCoroutine
|
||||||
}
|
}
|
||||||
|
|
||||||
// 몬스터 데미지 추가
|
// 몬스터 데미지 추가
|
||||||
if (IsRole(eRole.Mob))
|
if (IsSubRole(eSubRol.None))
|
||||||
{
|
{
|
||||||
Check_CCAddRate(eCC.MobDamage, _dinfo.Beater);
|
Check_CCAddRate(eCC.MobDamage, _dinfo.Beater);
|
||||||
++dic_ccAddRate[eCC.MobDamage][_dinfo.Beater];
|
++dic_ccAddRate[eCC.MobDamage][_dinfo.Beater];
|
||||||
|
|
@ -382,7 +382,7 @@ public class Actor : MyCoroutine
|
||||||
|
|
||||||
_dinfo.PiercingDmg += beaterStat.Get_Stat(eStat.BaseDmg) * beaterStat.Get_Stat(eStat.MOB_Piercing_Multiplier);
|
_dinfo.PiercingDmg += beaterStat.Get_Stat(eStat.BaseDmg) * beaterStat.Get_Stat(eStat.MOB_Piercing_Multiplier);
|
||||||
}
|
}
|
||||||
else if (IsRole(eRole.Boss))
|
else if (IsSubRole(eSubRol.Boss))
|
||||||
{
|
{
|
||||||
Check_CCAddRate(eCC.BossDamage, _dinfo.Beater);
|
Check_CCAddRate(eCC.BossDamage, _dinfo.Beater);
|
||||||
++dic_ccAddRate[eCC.BossDamage][_dinfo.Beater];
|
++dic_ccAddRate[eCC.BossDamage][_dinfo.Beater];
|
||||||
|
|
@ -517,9 +517,7 @@ public class Actor : MyCoroutine
|
||||||
switch (m_Role)
|
switch (m_Role)
|
||||||
{
|
{
|
||||||
case eRole.Mob:
|
case eRole.Mob:
|
||||||
case eRole.Boss:
|
|
||||||
case eRole.OBJ:
|
case eRole.OBJ:
|
||||||
//MobInfo.Ins.Add_Dead();
|
|
||||||
Off();
|
Off();
|
||||||
break;
|
break;
|
||||||
case eRole.PC:
|
case eRole.PC:
|
||||||
|
|
@ -776,6 +774,7 @@ public class Actor : MyCoroutine
|
||||||
public bool IsDead() { return DeadStatus || !gameObject.activeInHierarchy; }
|
public bool IsDead() { return DeadStatus || !gameObject.activeInHierarchy; }
|
||||||
public bool IsOnlyDead() { return DeadStatus; }
|
public bool IsOnlyDead() { return DeadStatus; }
|
||||||
public bool IsRole(eRole _role) { return m_Role == _role; }
|
public bool IsRole(eRole _role) { return m_Role == _role; }
|
||||||
|
public bool IsSubRole(eSubRol subRol) { return m_SubRole == subRol; }
|
||||||
public bool IsEnemy() { return m_Enemy; }
|
public bool IsEnemy() { return m_Enemy; }
|
||||||
public virtual bool IsBerserkPet() { return false; }
|
public virtual bool IsBerserkPet() { return false; }
|
||||||
public virtual bool Get_IsMainPC() { return false; }
|
public virtual bool Get_IsMainPC() { return false; }
|
||||||
|
|
@ -874,7 +873,7 @@ public class Actor : MyCoroutine
|
||||||
Off_Freeze();
|
Off_Freeze();
|
||||||
|
|
||||||
float knockbackTime = 0f;
|
float knockbackTime = 0f;
|
||||||
if ((IsRole(eRole.Mob) || IsRole(eRole.Boss)) && !IsCC())
|
if (IsRole(eRole.Mob) && !IsCC())
|
||||||
knockbackTime = table_GlobalValue.Ins.Get_Float("f_KnockbackTime");
|
knockbackTime = table_GlobalValue.Ins.Get_Float("f_KnockbackTime");
|
||||||
|
|
||||||
var beaterActor = _dinfo.Beater;
|
var beaterActor = _dinfo.Beater;
|
||||||
|
|
@ -1203,6 +1202,14 @@ public class Actor : MyCoroutine
|
||||||
}
|
}
|
||||||
public void Buff_or_Debuff(eCC cc, double lifeTime, double val, int ival = 0, float fval = 0f)
|
public void Buff_or_Debuff(eCC cc, double lifeTime, double val, int ival = 0, float fval = 0f)
|
||||||
{
|
{
|
||||||
|
switch (cc)
|
||||||
|
{
|
||||||
|
case eCC.ATKSPD_Down:
|
||||||
|
case eCC.MOVSPD_Down:
|
||||||
|
if (IsSubRole(eSubRol.Elite)) lifeTime -= lifeTime * 0.2f;
|
||||||
|
else if (IsSubRole(eSubRol.Boss)) lifeTime -= lifeTime * 0.5f;
|
||||||
|
break;
|
||||||
|
}
|
||||||
dic_ccData[cc].TimeUpdate = true;
|
dic_ccData[cc].TimeUpdate = true;
|
||||||
dic_ccData[cc].CCTime = lifeTime;
|
dic_ccData[cc].CCTime = lifeTime;
|
||||||
dic_ccData[cc].CCDmg = val;
|
dic_ccData[cc].CCDmg = val;
|
||||||
|
|
@ -1298,7 +1305,8 @@ public class Actor : MyCoroutine
|
||||||
if (_freezeTime < 0.1f) _freezeTime = 0.1f;
|
if (_freezeTime < 0.1f) _freezeTime = 0.1f;
|
||||||
dic_ccData[eCC.Freeze].CCReduceTime += 0.05f;
|
dic_ccData[eCC.Freeze].CCReduceTime += 0.05f;
|
||||||
|
|
||||||
if (IsRole(eRole.Boss) || transform.localScale.x > 2f) Cancel_Freeze(_freezeTime * 0.4f);
|
if (IsSubRole(eSubRol.Boss)) Cancel_Freeze(_freezeTime * 0.5f);
|
||||||
|
else if (IsSubRole(eSubRol.Elite)) Cancel_Freeze(_freezeTime * 0.2f);
|
||||||
else if (IsRole(eRole.PC)) Cancel_Freeze(_freezeTime * 0.5f);
|
else if (IsRole(eRole.PC)) Cancel_Freeze(_freezeTime * 0.5f);
|
||||||
else Cancel_Freeze(_freezeTime);
|
else Cancel_Freeze(_freezeTime);
|
||||||
}
|
}
|
||||||
|
|
@ -1333,7 +1341,7 @@ public class Actor : MyCoroutine
|
||||||
float StunAfterKnockBackTime = 0f;
|
float StunAfterKnockBackTime = 0f;
|
||||||
public virtual void KnockBack(double _time, float speed = 4f)
|
public virtual void KnockBack(double _time, float speed = 4f)
|
||||||
{
|
{
|
||||||
if (IsRole(eRole.OBJ) || IsRole(eRole.Boss) || DSUtil.CheckNull(m_NavMeshAgent) || IsCC()) return;
|
if (IsRole(eRole.OBJ) || IsSubRole(eSubRol.Boss) || DSUtil.CheckNull(m_NavMeshAgent) || IsCC()) return;
|
||||||
if (dic_ccData[eCC.KnockBack].CCTime < _time)
|
if (dic_ccData[eCC.KnockBack].CCTime < _time)
|
||||||
StartCoroutine(Co_KnockBack(_time, speed));
|
StartCoroutine(Co_KnockBack(_time, speed));
|
||||||
}
|
}
|
||||||
|
|
@ -1341,7 +1349,6 @@ public class Actor : MyCoroutine
|
||||||
{
|
{
|
||||||
dic_ccData[eCC.KnockBack].CCTime = _time;
|
dic_ccData[eCC.KnockBack].CCTime = _time;
|
||||||
|
|
||||||
//if (IsRole(eRole.Boss)) _time *= 0.7f;
|
|
||||||
dic_ccData[eCC.KnockBack].CCTime -= dic_ccData[eCC.KnockBack].CCReduceTime;
|
dic_ccData[eCC.KnockBack].CCTime -= dic_ccData[eCC.KnockBack].CCReduceTime;
|
||||||
if (dic_ccData[eCC.KnockBack].CCTime < 0.1f) dic_ccData[eCC.KnockBack].CCTime = 0.1f;
|
if (dic_ccData[eCC.KnockBack].CCTime < 0.1f) dic_ccData[eCC.KnockBack].CCTime = 0.1f;
|
||||||
dic_ccData[eCC.KnockBack].CCReduceTime += 0.05f;
|
dic_ccData[eCC.KnockBack].CCReduceTime += 0.05f;
|
||||||
|
|
@ -1404,6 +1411,8 @@ public class Actor : MyCoroutine
|
||||||
}
|
}
|
||||||
IEnumerator Co_KnockedAirborne(float _airborneTime)
|
IEnumerator Co_KnockedAirborne(float _airborneTime)
|
||||||
{
|
{
|
||||||
|
if (IsSubRole(eSubRol.Elite)) _airborneTime -= _airborneTime * 0.2f;
|
||||||
|
else if (IsSubRole(eSubRol.Boss)) _airborneTime -= _airborneTime * 0.5f;
|
||||||
dic_ccData[eCC.KnockedAirborne].CCTime = _airborneTime;
|
dic_ccData[eCC.KnockedAirborne].CCTime = _airborneTime;
|
||||||
|
|
||||||
StopMove_Imm(true);
|
StopMove_Imm(true);
|
||||||
|
|
@ -1438,6 +1447,9 @@ public class Actor : MyCoroutine
|
||||||
public void Stun(double time, bool showEffect = false) { StartCoroutine(Co_Stun(time, showEffect)); }
|
public void Stun(double time, bool showEffect = false) { StartCoroutine(Co_Stun(time, showEffect)); }
|
||||||
IEnumerator Co_Stun(double _time, bool showEffect = false)
|
IEnumerator Co_Stun(double _time, bool showEffect = false)
|
||||||
{
|
{
|
||||||
|
if (IsSubRole(eSubRol.Elite)) _time -= _time * 0.2f;
|
||||||
|
else if (IsSubRole(eSubRol.Boss)) _time -= _time * 0.5f;
|
||||||
|
|
||||||
m_animation.speed = 1f;
|
m_animation.speed = 1f;
|
||||||
//AnimationPlay("stun");
|
//AnimationPlay("stun");
|
||||||
var cc = eCC.Stun;
|
var cc = eCC.Stun;
|
||||||
|
|
|
||||||
|
|
@ -48,14 +48,15 @@ public class MobActor : Actor
|
||||||
#endif
|
#endif
|
||||||
Set_Warp(Get_position());
|
Set_Warp(Get_position());
|
||||||
}
|
}
|
||||||
public void Set(eRole role, MonsterTableData mobtable, Vector3 pos, Action<int> actDie, int order)
|
public void Set(MonsterTableData mobtable, Vector3 pos, Action<int> actDie, int order)
|
||||||
{
|
{
|
||||||
m_Role = role;
|
m_Role = eRole.Mob;
|
||||||
|
m_SubRole = mobtable.e_MonsterType;
|
||||||
m_actDie = actDie;
|
m_actDie = actDie;
|
||||||
bool IsBoss = IsRole(eRole.Boss);
|
bool IsBoss = IsSubRole(eSubRol.Boss);
|
||||||
m_MonsterTableData = mobtable;
|
m_MonsterTableData = mobtable;
|
||||||
var scale = m_MonsterTableData.f_DefaultScale;
|
var scale = m_MonsterTableData.f_DefaultScale;
|
||||||
if (!DSUtil.CheckNull(m_MonsterTableData)) transform.localScale = (IsBoss ? 1.3f : 1f) * scale * Vector3.one;
|
if (!DSUtil.CheckNull(m_MonsterTableData)) transform.localScale = scale * Vector3.one;
|
||||||
if (!IsBoss) IsBoss = scale > 2f;
|
if (!IsBoss) IsBoss = scale > 2f;
|
||||||
|
|
||||||
m_AttackType = m_MonsterTableData.e_AttackType;
|
m_AttackType = m_MonsterTableData.e_AttackType;
|
||||||
|
|
@ -186,7 +187,7 @@ public class MobActor : Actor
|
||||||
{
|
{
|
||||||
if (m_attackCoolTime > 0f) m_attackCoolTime -= Time.deltaTime;
|
if (m_attackCoolTime > 0f) m_attackCoolTime -= Time.deltaTime;
|
||||||
if (m_HitTime > 0f) { m_HitTime -= Time.deltaTime; if (m_attackCoolTime > 0f) return; }
|
if (m_HitTime > 0f) { m_HitTime -= Time.deltaTime; if (m_attackCoolTime > 0f) return; }
|
||||||
if (GoToTargetTime > 0f && IsAutoAIMob()) GoToTargetTime -= Time.deltaTime;
|
if (GoToTargetTime > 0f) GoToTargetTime -= Time.deltaTime;
|
||||||
|
|
||||||
//// 일정 시간이 지나면 가장 가까운 적을 다시 찾아봄
|
//// 일정 시간이 지나면 가장 가까운 적을 다시 찾아봄
|
||||||
//if (FindOtherTargetTime > 0f)
|
//if (FindOtherTargetTime > 0f)
|
||||||
|
|
@ -309,8 +310,6 @@ public class MobActor : Actor
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
|
|
||||||
bool IsAutoAIMob() { return IsRole(eRole.Mob) || IsRole(eRole.Boss); }
|
|
||||||
|
|
||||||
public void Set_Target(Actor _target) { m_Target = _target; }
|
public void Set_Target(Actor _target) { m_Target = _target; }
|
||||||
void FindNextTarget(float _dist)
|
void FindNextTarget(float _dist)
|
||||||
{
|
{
|
||||||
|
|
@ -351,7 +350,7 @@ public class MobActor : Actor
|
||||||
m_DieTime = m_MonsterAppearData.f_SpawnerDelay;
|
m_DieTime = m_MonsterAppearData.f_SpawnerDelay;
|
||||||
//m_MonsterAppearData.Cal_DropItems(this);
|
//m_MonsterAppearData.Cal_DropItems(this);
|
||||||
|
|
||||||
if (IsRole(eRole.Boss))
|
if (IsSubRole(eSubRol.Boss))
|
||||||
{
|
{
|
||||||
Time.timeScale = 0.3f;
|
Time.timeScale = 0.3f;
|
||||||
Set_Coroutine(() =>
|
Set_Coroutine(() =>
|
||||||
|
|
|
||||||
|
|
@ -98,6 +98,7 @@ public class PCActor : MyActor
|
||||||
}
|
}
|
||||||
public override void Set(bool isEnemy, Actor owner, ServerData sdata, int _id, bool _isstop, bool _ui = false)
|
public override void Set(bool isEnemy, Actor owner, ServerData sdata, int _id, bool _isstop, bool _ui = false)
|
||||||
{
|
{
|
||||||
|
m_Role = eRole.PC;
|
||||||
if (DSUtil.CheckNull(arr_PCSkillCard) && !DSUtil.CheckNull(NewGameUI.Ins))
|
if (DSUtil.CheckNull(arr_PCSkillCard) && !DSUtil.CheckNull(NewGameUI.Ins))
|
||||||
arr_PCSkillCard = NewGameUI.Ins.m_BattleUI.skillCards;
|
arr_PCSkillCard = NewGameUI.Ins.m_BattleUI.skillCards;
|
||||||
if (!DSUtil.CheckNull(arr_PCSkillCard))
|
if (!DSUtil.CheckNull(arr_PCSkillCard))
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@ public class PetActor : MyActor
|
||||||
{
|
{
|
||||||
Del_Target();
|
Del_Target();
|
||||||
OwnerActor = owner;
|
OwnerActor = owner;
|
||||||
|
m_Role = eRole.Pet;
|
||||||
//var Chapter = InGameInfo.Ins.Get_CurStageData().Chapter;
|
//var Chapter = InGameInfo.Ins.Get_CurStageData().Chapter;
|
||||||
//m_AutoTarget = Chapter < 101 || sdata.Get_Common(eCommon.AutoTarget) == 1;
|
//m_AutoTarget = Chapter < 101 || sdata.Get_Common(eCommon.AutoTarget) == 1;
|
||||||
m_Auto = true;
|
m_Auto = true;
|
||||||
|
|
|
||||||
|
|
@ -214,10 +214,10 @@ public class ProjectileBase : MonoBehaviour
|
||||||
{
|
{
|
||||||
if (m_ProjecTileData != null)
|
if (m_ProjecTileData != null)
|
||||||
{
|
{
|
||||||
if (!m_ProjecTileData.target.IsRole(eRole.Boss) || m_ProjecTileData.target.transform.localScale.x <= 2f)
|
if (!m_ProjecTileData.target.IsSubRole(eSubRol.Boss) || m_ProjecTileData.target.transform.localScale.x <= 2f)
|
||||||
{
|
{
|
||||||
var enemies = Get_Enemies(transform, 8f);
|
var enemies = Get_Enemies(transform, 8f);
|
||||||
var boss = enemies.Find(f => f.IsRole(eRole.Boss) || f.transform.localScale.x > 2f);
|
var boss = enemies.Find(f => f.IsSubRole(eSubRol.Boss) || f.transform.localScale.x > 2f);
|
||||||
if (boss != null)
|
if (boss != null)
|
||||||
m_ProjecTileData.target = boss;
|
m_ProjecTileData.target = boss;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ public class HUDUI : HUDBase
|
||||||
TimeSlider.value = 1f;
|
TimeSlider.value = 1f;
|
||||||
TimeSlider.gameObject.SetActive(m_Actor.IsRole(eRole.Summon));
|
TimeSlider.gameObject.SetActive(m_Actor.IsRole(eRole.Summon));
|
||||||
Set_Target(_target);
|
Set_Target(_target);
|
||||||
go_BossIcon.SetActive(_actor.IsRole(eRole.Boss));
|
go_BossIcon.SetActive(_actor.IsSubRole(eSubRol.Boss));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Set_HPSlider(double Hp, double MaxHp)
|
public void Set_HPSlider(double Hp, double MaxHp)
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ public class ActorInfo : MonoBehaviour
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Dictionary<eRole, Dictionary<int, Dictionary<string, List<Actor>>>> dic_actor = new Dictionary<eRole, Dictionary<int, Dictionary<string, List<Actor>>>>();
|
Dictionary<eRole, Dictionary<int, Dictionary<string, List<Actor>>>> dic_actor = new Dictionary<eRole, Dictionary<int, Dictionary<string, List<Actor>>>>();
|
||||||
|
|
||||||
List<eRole> destroylst = new List<eRole> { eRole.PC, eRole.Pet, eRole.Fairy, eRole.Mob, eRole.Boss, eRole.BattleNPC, eRole.OBJ, eRole.Farmer };
|
List<eRole> destroylst = new List<eRole> { eRole.PC, eRole.Pet, eRole.Fairy, eRole.Mob, eRole.BattleNPC, eRole.OBJ, eRole.Farmer };
|
||||||
|
|
||||||
public void Destroy_Mobs()
|
public void Destroy_Mobs()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ public class DungeonInfo : MonoBehaviourSingletonTemplate<DungeonInfo>
|
||||||
public Action<int> act_MobDieCount;
|
public Action<int> act_MobDieCount;
|
||||||
|
|
||||||
ObscuredInt m_DieCount;
|
ObscuredInt m_DieCount;
|
||||||
|
eDungeon m_Dungeon;
|
||||||
|
|
||||||
public void Stop_Dungeon(bool? win)
|
public void Stop_Dungeon(bool? win)
|
||||||
{
|
{
|
||||||
|
|
@ -39,10 +40,34 @@ public class DungeonInfo : MonoBehaviourSingletonTemplate<DungeonInfo>
|
||||||
m_DieCount.RandomizeCryptoKey();
|
m_DieCount.RandomizeCryptoKey();
|
||||||
act_MobDieCount?.Invoke(m_DieCount);
|
act_MobDieCount?.Invoke(m_DieCount);
|
||||||
if (m_DieCount == m_MaxDieMobCount)
|
if (m_DieCount == m_MaxDieMobCount)
|
||||||
Stop_Dungeon(true);
|
{
|
||||||
|
switch (m_Dungeon)
|
||||||
|
{
|
||||||
|
case eDungeon.d1_Mimic: Stop_Dungeon(true); break;
|
||||||
|
case eDungeon.d2_Maze:
|
||||||
|
// 다음 층으로
|
||||||
|
break;
|
||||||
|
case eDungeon.d3_Nightmare:
|
||||||
|
break;
|
||||||
|
case eDungeon.d4_Wave:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start_Mimic() { StartCoroutine(Co_Update_Mimic()); }
|
public void Start_Dungeon()
|
||||||
|
{
|
||||||
|
m_Dungeon = MyValue.MyChoiceMapData.Get_MapData().e_Dungeon;
|
||||||
|
switch (m_Dungeon)
|
||||||
|
{
|
||||||
|
case eDungeon.d1_Mimic: StartCoroutine(Co_Update_Mimic()); break;
|
||||||
|
case eDungeon.d2_Maze: StartCoroutine(Co_Update_Maze()); break;
|
||||||
|
case eDungeon.d3_Nightmare:
|
||||||
|
break;
|
||||||
|
case eDungeon.d4_Wave:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
IEnumerator Co_Update_Mimic()
|
IEnumerator Co_Update_Mimic()
|
||||||
{
|
{
|
||||||
m_DieCount = 0;
|
m_DieCount = 0;
|
||||||
|
|
@ -63,11 +88,20 @@ public class DungeonInfo : MonoBehaviourSingletonTemplate<DungeonInfo>
|
||||||
ActorInfo.Ins.Add_Actor(mob, eRole.Mob, dungeonData.n_SpawnID, mimicData.s_MonsterPrefab);
|
ActorInfo.Ins.Add_Actor(mob, eRole.Mob, dungeonData.n_SpawnID, mimicData.s_MonsterPrefab);
|
||||||
mob.Set(true, null, null, dungeonData.n_SpawnID, false);
|
mob.Set(true, null, null, dungeonData.n_SpawnID, false);
|
||||||
var rdnpos = DSUtil.Get_RandomPos_onNavMesh(MyValue.MyPC.Get_position(), 0f, 10f);
|
var rdnpos = DSUtil.Get_RandomPos_onNavMesh(MyValue.MyPC.Get_position(), 0f, 10f);
|
||||||
mob.Set(eRole.Mob, mimicData, rdnpos, Set_MobDie, 0);
|
mob.Set(mimicData, rdnpos, Set_MobDie, 0);
|
||||||
mob.m_SubRole = eSubRol.Mimic;
|
mob.m_SubRole = eSubRol.Mimic;
|
||||||
});
|
});
|
||||||
yield return new WaitForSeconds(dungeonData.f_MakeGap);
|
yield return new WaitForSeconds(dungeonData.f_MakeGap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IEnumerator Co_Update_Maze()
|
||||||
|
{
|
||||||
|
var dgData = MyValue.MyChoiceMapData.Get_DungeonMapData_orNull();
|
||||||
|
for (int i = 0; i < dgData.n_MobCount; i++)
|
||||||
|
{
|
||||||
|
//var mobid = table_monsterlist.Ins.Get_Data_orNull
|
||||||
|
}
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
public class FieldBossData : MyCoroutine
|
public class FieldBossData : MyCoroutine
|
||||||
|
|
@ -18,10 +15,10 @@ public class FieldBossData : MyCoroutine
|
||||||
m_FieldBoss = DSUtil.Get_Clone<MobActor>(handle.Result, transform);
|
m_FieldBoss = DSUtil.Get_Clone<MobActor>(handle.Result, transform);
|
||||||
AddrResourceMgr.Ins.Set_AddressableReleaseSelf(m_FieldBoss.gameObject);
|
AddrResourceMgr.Ins.Set_AddressableReleaseSelf(m_FieldBoss.gameObject);
|
||||||
m_FieldBoss.Set(true, null, null, n_SpawnerId, false);
|
m_FieldBoss.Set(true, null, null, n_SpawnerId, false);
|
||||||
m_FieldBoss.Set(eRole.Boss, fieldbossdata, transform.position, AfterDie, -1);
|
m_FieldBoss.Set(fieldbossdata, transform.position, AfterDie, -1);
|
||||||
m_FieldBoss.m_SubRole = eSubRol.None;
|
m_FieldBoss.m_SubRole = eSubRol.None;
|
||||||
m_FieldBoss.MagicID = 0;
|
m_FieldBoss.MagicID = 0;
|
||||||
ActorInfo.Ins.Add_Actor(m_FieldBoss, eRole.Boss, n_SpawnerId, fieldbossdata.s_MonsterPrefab);
|
ActorInfo.Ins.Add_Actor(m_FieldBoss, eRole.Mob, n_SpawnerId, fieldbossdata.s_MonsterPrefab);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ public class MobControlMgr : MyCoroutine
|
||||||
}
|
}
|
||||||
|
|
||||||
mob.Set(true, null, null, m_MonsterAppearData.n_SpawnerID, false);
|
mob.Set(true, null, null, m_MonsterAppearData.n_SpawnerID, false);
|
||||||
mob.Set(eRole.Mob, mobData, rdnpos, actDie, i);
|
mob.Set(mobData, rdnpos, actDie, i);
|
||||||
mob.Off();
|
mob.Off();
|
||||||
mob.m_SubRole = eSubRol.None;
|
mob.m_SubRole = eSubRol.None;
|
||||||
mob.MagicID = 0;
|
mob.MagicID = 0;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ using CodeStage.AntiCheat.ObscuredTypes;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using Random = UnityEngine.Random;
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
public class MonsterTableData : TableDataBase
|
public class MonsterTableData : TableDataBase
|
||||||
|
|
@ -13,28 +14,10 @@ public class MonsterTableData : TableDataBase
|
||||||
set { _MonsterID = value; _MonsterID.RandomizeCryptoKey(); }
|
set { _MonsterID = value; _MonsterID.RandomizeCryptoKey(); }
|
||||||
} // 몬스터 고유 ID
|
} // 몬스터 고유 ID
|
||||||
|
|
||||||
public eRole e_MonsterType; // 기본 몬스터 타입 (enum 값은 변경하지 않음)
|
public eSubRol e_MonsterType; // 기본 몬스터 타입 (enum 값은 변경하지 않음)
|
||||||
|
public float f_DefaultScale;
|
||||||
ObscuredFloat _DefaultScale;
|
public int n_MonsterName;
|
||||||
public float f_DefaultScale
|
public string s_MonsterPrefab;
|
||||||
{
|
|
||||||
get { return _DefaultScale; }
|
|
||||||
set { _DefaultScale = value; _DefaultScale.RandomizeCryptoKey(); }
|
|
||||||
} // 기본 몬스터 크기
|
|
||||||
|
|
||||||
ObscuredInt _MonsterName;
|
|
||||||
public int n_MonsterName
|
|
||||||
{
|
|
||||||
get { return _MonsterName; }
|
|
||||||
set { _MonsterName = value; _MonsterName.RandomizeCryptoKey(); }
|
|
||||||
} // 몬스터 이름 정보
|
|
||||||
|
|
||||||
ObscuredString _MonsterPrefab;
|
|
||||||
public string s_MonsterPrefab
|
|
||||||
{
|
|
||||||
get { return _MonsterPrefab; }
|
|
||||||
set { _MonsterPrefab = value; _MonsterPrefab.RandomizeCryptoKey(); }
|
|
||||||
} // 몬스터 프리펩 이름
|
|
||||||
|
|
||||||
ObscuredFloat _BaseATKRate;
|
ObscuredFloat _BaseATKRate;
|
||||||
public float f_BaseATKRate
|
public float f_BaseATKRate
|
||||||
|
|
@ -101,12 +84,7 @@ public class MonsterTableData : TableDataBase
|
||||||
|
|
||||||
public eAttackType e_AttackType; // 공격 형태 (enum 값은 변경하지 않음)
|
public eAttackType e_AttackType; // 공격 형태 (enum 값은 변경하지 않음)
|
||||||
|
|
||||||
ObscuredString _Projectile1;
|
public string s_Porjectile1;
|
||||||
public string s_Porjectile1
|
|
||||||
{
|
|
||||||
get { return _Projectile1; }
|
|
||||||
set { _Projectile1 = value; _Projectile1.RandomizeCryptoKey(); }
|
|
||||||
} // 투사체 프리펩 이름
|
|
||||||
|
|
||||||
ObscuredFloat _ProjectileLifeTime1;
|
ObscuredFloat _ProjectileLifeTime1;
|
||||||
public float f_ProjectileLifeTime1
|
public float f_ProjectileLifeTime1
|
||||||
|
|
@ -115,12 +93,7 @@ public class MonsterTableData : TableDataBase
|
||||||
set { _ProjectileLifeTime1 = value; _ProjectileLifeTime1.RandomizeCryptoKey(); }
|
set { _ProjectileLifeTime1 = value; _ProjectileLifeTime1.RandomizeCryptoKey(); }
|
||||||
} // 투사체 지속 시간
|
} // 투사체 지속 시간
|
||||||
|
|
||||||
ObscuredString _Projectile2;
|
public string s_Porjectile2;
|
||||||
public string s_Porjectile2
|
|
||||||
{
|
|
||||||
get { return _Projectile2; }
|
|
||||||
set { _Projectile2 = value; _Projectile2.RandomizeCryptoKey(); }
|
|
||||||
} // 투사체 프리펩 이름
|
|
||||||
|
|
||||||
ObscuredFloat _ProjectileLifeTime2;
|
ObscuredFloat _ProjectileLifeTime2;
|
||||||
public float f_ProjectileLifeTime2
|
public float f_ProjectileLifeTime2
|
||||||
|
|
@ -129,12 +102,7 @@ public class MonsterTableData : TableDataBase
|
||||||
set { _ProjectileLifeTime2 = value; _ProjectileLifeTime2.RandomizeCryptoKey(); }
|
set { _ProjectileLifeTime2 = value; _ProjectileLifeTime2.RandomizeCryptoKey(); }
|
||||||
} // 투사체 지속 시간
|
} // 투사체 지속 시간
|
||||||
|
|
||||||
ObscuredString _Projectile3;
|
public string s_Porjectile3;
|
||||||
public string s_Porjectile3
|
|
||||||
{
|
|
||||||
get { return _Projectile3; }
|
|
||||||
set { _Projectile3 = value; _Projectile3.RandomizeCryptoKey(); }
|
|
||||||
} // 투사체 프리펩 이름
|
|
||||||
|
|
||||||
ObscuredFloat _ProjectileLifeTime3;
|
ObscuredFloat _ProjectileLifeTime3;
|
||||||
public float f_ProjectileLifeTime3
|
public float f_ProjectileLifeTime3
|
||||||
|
|
@ -198,6 +166,7 @@ public class table_monsterlist : table_missionbase
|
||||||
public static table_monsterlist Ins;
|
public static table_monsterlist Ins;
|
||||||
List<MonsterTableData> tableDatas;
|
List<MonsterTableData> tableDatas;
|
||||||
Dictionary<int, MonsterTableData> dic_Data = new Dictionary<int, MonsterTableData>();
|
Dictionary<int, MonsterTableData> dic_Data = new Dictionary<int, MonsterTableData>();
|
||||||
|
Dictionary<eSubRol, List<MonsterTableData>> dic_Datas = new Dictionary<eSubRol, List<MonsterTableData>>();
|
||||||
|
|
||||||
protected override void Awake()
|
protected override void Awake()
|
||||||
{
|
{
|
||||||
|
|
@ -212,6 +181,9 @@ public class table_monsterlist : table_missionbase
|
||||||
{
|
{
|
||||||
var temp = Get_DataList()[i];
|
var temp = Get_DataList()[i];
|
||||||
dic_Data.Add(temp.n_MonsterID, temp);
|
dic_Data.Add(temp.n_MonsterID, temp);
|
||||||
|
if (!dic_Datas.ContainsKey(temp.e_MonsterType))
|
||||||
|
dic_Datas.Add(temp.e_MonsterType, new List<MonsterTableData>());
|
||||||
|
dic_Datas[temp.e_MonsterType].Add(temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
base.Start();
|
base.Start();
|
||||||
|
|
@ -219,4 +191,5 @@ public class table_monsterlist : table_missionbase
|
||||||
|
|
||||||
public MonsterTableData Get_Data_orNull(int mobid) { return dic_Data[mobid]; }
|
public MonsterTableData Get_Data_orNull(int mobid) { return dic_Data[mobid]; }
|
||||||
public List<MonsterTableData> Get_DataList() { return tableDatas; }
|
public List<MonsterTableData> Get_DataList() { return tableDatas; }
|
||||||
|
public MonsterTableData Get_RandomData(eSubRol subRol) { return dic_Datas[subRol][Random.Range(0, dic_Datas[subRol].Count)]; }
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using CodeStage.AntiCheat.ObscuredTypes;
|
using CodeStage.AntiCheat.ObscuredTypes;
|
||||||
using TMPro;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
public class Ingame_DungeonBase : MonoBehaviour
|
public class Ingame_DungeonBase : MonoBehaviour
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ public class MonsterSimpleInfo : MonoBehaviourSingletonTemplate<MonsterSimpleInf
|
||||||
go_child.SetActive(true);
|
go_child.SetActive(true);
|
||||||
m_Actor = actor;
|
m_Actor = actor;
|
||||||
|
|
||||||
go_boss.SetActive(m_Actor.IsRole(eRole.Boss));
|
go_boss.SetActive(m_Actor.IsSubRole(eSubRol.Boss));
|
||||||
//sprites[0].spriteName = ""; // TODO 정인호 : 몹 얼굴 없음
|
//sprites[0].spriteName = ""; // TODO 정인호 : 몹 얼굴 없음
|
||||||
sprites[1].canvasRenderer.SetAlpha(0.25f);
|
sprites[1].canvasRenderer.SetAlpha(0.25f);
|
||||||
var maplvdata = table_monsterappear.Ins.Get_Data_orNull(m_Actor.Get_Group());
|
var maplvdata = table_monsterappear.Ins.Get_Data_orNull(m_Actor.Get_Group());
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,6 @@ public class MapChoiceUI_Dungeon : uScrollViewMgr
|
||||||
m_ArrowUI.Set(totalcount => { Select_Lv(totalcount); }, SelectLv, true, 1);
|
m_ArrowUI.Set(totalcount => { Select_Lv(totalcount); }, SelectLv, true, 1);
|
||||||
break;
|
break;
|
||||||
case eDungeon.d2_Maze:
|
case eDungeon.d2_Maze:
|
||||||
SelectLv = 1;
|
|
||||||
texts_maze[0].text = texts_maze[1].text = "";
|
texts_maze[0].text = texts_maze[1].text = "";
|
||||||
ServerInfo.Ins.Get_MyRank("Rank_Maze", my =>
|
ServerInfo.Ins.Get_MyRank("Rank_Maze", my =>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@ public enum eGameMode { Lobby, Stage, MyFarm, Dungeon, Max } // list 순서
|
||||||
public enum eDungeon { None, d1_Mimic, d2_Maze, d3_Nightmare, d4_Wave }
|
public enum eDungeon { None, d1_Mimic, d2_Maze, d3_Nightmare, d4_Wave }
|
||||||
public enum eDifficult { Normal, Hard, NightMare, Hell, Max }
|
public enum eDifficult { Normal, Hard, NightMare, Hell, Max }
|
||||||
public enum eUnlockCondition { None, BossKill, GetItem, SealBreaking, ChapterClear, }
|
public enum eUnlockCondition { None, BossKill, GetItem, SealBreaking, ChapterClear, }
|
||||||
public enum eRole { Mob, Boss, Pet, PC, Fairy, EnemyPC, Farmer, Summon, BattleNPC, OBJ, EnemyPet, EnemySummon }
|
public enum eRole { Mob, Pet, PC, Fairy, EnemyPC, Farmer, Summon, BattleNPC, OBJ, EnemyPet, EnemySummon }
|
||||||
public enum eSubRol { None, Mimic, }
|
public enum eSubRol { None, Elite, Boss, Mimic, }
|
||||||
public enum eClassType { SwordMan, Archer, Fighter, Mage }
|
public enum eClassType { SwordMan, Archer, Fighter, Mage }
|
||||||
public enum eSpawnerType { Random, Order, Phase, PhaseAllKill }
|
public enum eSpawnerType { Random, Order, Phase, PhaseAllKill }
|
||||||
public enum eAnim { Idle, Run, Die, Hit, Dodge, Attack, Attack2, Attack3, Attack4, Skill }
|
public enum eAnim { Idle, Run, Die, Hit, Dodge, Attack, Attack2, Attack3, Attack4, Skill }
|
||||||
|
|
|
||||||
|
|
@ -178,12 +178,7 @@ public class RealCamera : MyCoroutine
|
||||||
ActorInfo.Ins.All_Stop(false);
|
ActorInfo.Ins.All_Stop(false);
|
||||||
NewGameUI.Ins.go_Camera.SetActive(true);
|
NewGameUI.Ins.go_Camera.SetActive(true);
|
||||||
Time.timeScale = MyValue.Get_GameSpeed();
|
Time.timeScale = MyValue.Get_GameSpeed();
|
||||||
// TODO 정인호 : 게임 시작 시 컨텐츠 등 체크 주석 처리
|
DungeonInfo.Ins.Start_Dungeon();
|
||||||
switch (MyValue.MyChoiceMapData.n_MapID)
|
|
||||||
{
|
|
||||||
case 1001: DungeonInfo.Ins.Start_Mimic(); break; // 미믹 던전
|
|
||||||
case 1002: break; // 수상한 미궁
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Update_Cam()
|
void Update_Cam()
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ public class MainToStatTest : MonoBehaviourSingletonTemplate<MainToStatTest>
|
||||||
|
|
||||||
var spawnerid = 1;
|
var spawnerid = 1;
|
||||||
actors[1].Set(true, null, null, spawnerid, false);
|
actors[1].Set(true, null, null, spawnerid, false);
|
||||||
(actors[1] as MobActor).Set(eRole.Mob, table_monsterlist.Ins.Get_Data_orNull(1), Vector3.zero, null, 0);
|
(actors[1] as MobActor).Set(table_monsterlist.Ins.Get_Data_orNull(1), Vector3.zero, null, 0);
|
||||||
|
|
||||||
yield return new WaitForSeconds(0.1f);
|
yield return new WaitForSeconds(0.1f);
|
||||||
actors[1].transform.parent.eulerAngles = Vector3.up * 90f;
|
actors[1].transform.parent.eulerAngles = Vector3.up * 90f;
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,9 @@ EditorBuildSettings:
|
||||||
- enabled: 1
|
- enabled: 1
|
||||||
path: Assets/Scenes/Map_Mimic.unity
|
path: Assets/Scenes/Map_Mimic.unity
|
||||||
guid: 9dca1e4e44b90484ab4c3a9f6f3d5fac
|
guid: 9dca1e4e44b90484ab4c3a9f6f3d5fac
|
||||||
|
- enabled: 1
|
||||||
|
path: Assets/Scenes/Map_Maze.unity
|
||||||
|
guid: cc505c3547147ec4f9470ac815f55a6d
|
||||||
m_configObjects:
|
m_configObjects:
|
||||||
com.unity.addressableassets: {fileID: 11400000, guid: a6af74bb7b3ef3f429b3d463f66c15a9,
|
com.unity.addressableassets: {fileID: 11400000, guid: a6af74bb7b3ef3f429b3d463f66c15a9,
|
||||||
type: 2}
|
type: 2}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue