악몽 작업 중.... 2

This commit is contained in:
Ino 2025-01-31 08:36:55 +09:00
parent bdc87796f5
commit 1e253839e5
12 changed files with 1293 additions and 384 deletions

View File

@ -54,6 +54,14 @@ messageinfo 엄청 느린 버그
수상한 미궁 수상한 미궁
- 맵 벽과 플레이 사이 더 멀게 만들자 (카메라가 벽 밖에 안 나가게) - 맵 벽과 플레이 사이 더 멀게 만들자 (카메라가 벽 밖에 안 나가게)
- 매월 초기화 후 보상 우편으로 지급 - 매월 초기화 후 보상 우편으로 지급
- 추가 구매 구현 필요 - 입장권 추가 구매 구현 필요
- 결과 화면 (보상 지급) - 결과 화면 (보상 지급)
- 랭킹 15분마다 갱신 - 랭킹 15분마다 갱신
악몽의 시련
- 결과 화면 (보상 지급)
- 입장권 추가 구매 구현 필요
- 랭킹 UI 통합(랭킹 및 랭킹 보상이 기본)
- 데미지 합계 저장
- 랜덤 보스 몬스터 생성 및 무적
- 인게임 UI

File diff suppressed because it is too large Load Diff

View File

@ -422,7 +422,7 @@ public class Actor : MyCoroutine
Check_CC_byAttack(_dinfo); Check_CC_byAttack(_dinfo);
#if UNITY_EDITOR #if UNITY_EDITOR
if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == "StatTest") if (SceneManager.GetActiveScene().name == "StatTest")
{ {
MainToStatTest.Ins.Set_Dmglabel(HUDBase.Get_TextColor(_dinfo.Beater.m_AttackType) + (_dinfo.Critical == eStat.CRI || _dinfo.Critical == eStat.M_CRI ? "" + _dinfo.Critical + " " : " ") + _dinfo.Damage); MainToStatTest.Ins.Set_Dmglabel(HUDBase.Get_TextColor(_dinfo.Beater.m_AttackType) + (_dinfo.Critical == eStat.CRI || _dinfo.Critical == eStat.M_CRI ? "" + _dinfo.Critical + " " : " ") + _dinfo.Damage);
return; return;
@ -433,7 +433,11 @@ public class Actor : MyCoroutine
{ {
if (IsDead()) return; if (IsDead()) return;
m_Stat.Set_Stat(false, eStat.HP, _dinfo.Damage); if (MyValue.MyChoiceMapData.Get_MapData().e_Dungeon == eDungeon.d3_Nightmare)
DungeonInfo.Ins.act_Damage_byMob(_dinfo.Damage);
else
m_Stat.Set_Stat(false, eStat.HP, _dinfo.Damage);
_dinfo.act_returnLastDmg?.Invoke(_dinfo.Damage); _dinfo.act_returnLastDmg?.Invoke(_dinfo.Damage);
_dinfo.act_CriAfterHit?.Invoke(_dinfo.Critical); _dinfo.act_CriAfterHit?.Invoke(_dinfo.Critical);
Add_ReceiveDmg(_dinfo.Damage); Add_ReceiveDmg(_dinfo.Damage);

View File

@ -8,6 +8,8 @@ public class DungeonInfo : MonoBehaviourSingletonTemplate<DungeonInfo>
{ {
public Action<float> act_Time; public Action<float> act_Time;
public Action<int> act_MobDieCount; public Action<int> act_MobDieCount;
public Action<double> act_Damage_byMob;
public Action<double> act_DamageUI;
public float m_TotalTime; public float m_TotalTime;
Dictionary<int, ObscuredFloat> dic_time = new Dictionary<int, ObscuredFloat>(); Dictionary<int, ObscuredFloat> dic_time = new Dictionary<int, ObscuredFloat>();
@ -41,6 +43,13 @@ public class DungeonInfo : MonoBehaviourSingletonTemplate<DungeonInfo>
set { _MazeClear = value; _MazeClear.RandomizeCryptoKey(); } set { _MazeClear = value; _MazeClear.RandomizeCryptoKey(); }
} }
protected ObscuredDouble _TotalDamage;
public double m_TotalDamage
{
get { return _TotalDamage; }
set { _TotalDamage = value; _TotalDamage.RandomizeCryptoKey(); }
}
eDungeon m_Dungeon; eDungeon m_Dungeon;
bool bTotalTimeUpdate = false; bool bTotalTimeUpdate = false;
@ -111,6 +120,7 @@ public class DungeonInfo : MonoBehaviourSingletonTemplate<DungeonInfo>
{ {
m_TotalTime = 0f; m_TotalTime = 0f;
m_MazeClear = 0; m_MazeClear = 0;
m_TotalDamage = 0f;
} }
bTotalTimeUpdate = true; bTotalTimeUpdate = true;
@ -165,4 +175,16 @@ public class DungeonInfo : MonoBehaviourSingletonTemplate<DungeonInfo>
NewGameUI.Ins.Refresh_DungeonUI(m_MazeClear >= 5 ? 1 : 0); NewGameUI.Ins.Refresh_DungeonUI(m_MazeClear >= 5 ? 1 : 0);
Start_Dungeon(false); Start_Dungeon(false);
} }
public void Set_Nightmare(Action<double> actui)
{
act_DamageUI = actui;
act_Damage_byMob = Add_TotalDmg;
Add_TotalDmg(-m_TotalDamage);
}
public void Add_TotalDmg(double dmg)
{
m_TotalDamage += dmg;
act_DamageUI?.Invoke(m_TotalDamage);
}
} }

View File

@ -7,7 +7,11 @@ public class DungeonResult_Mimic : DungeonResultBase
public override void Set(bool? win) public override void Set(bool? win)
{ {
if (DSUtil.CheckNull(win)) return; // 포기 if (DSUtil.CheckNull(win))
{
InGameInfo.Ins.Return_To_Lobby();
return; // 포기
}
base.Set(win); base.Set(win);
var sdata = ServerInfo.Ins.m_ServerData; var sdata = ServerInfo.Ins.m_ServerData;

View File

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using TMPro;
public class DungeonResult_Nightmare : DungeonResultBase
{
public TextMeshProUGUI[] texts;
public override void Set(bool? win)
{
base.Set(win);
var sdata = ServerInfo.Ins.m_ServerData;
var BeforeDmg = 0d;
var CurDmg = 0d;
texts[0].text = DSUtil.Format("기존 데미지 : {0}\n\n현재 데미지 : {1}", BeforeDmg, CurDmg);
if (CurDmg > BeforeDmg)
{
//sdata.Set_DungeonLv(eDungeon.d2_Maze, nextFloor);
ServerInfo.Ins.Write(null, false);
ServerInfo.Ins.Save_Rank("Rank_Damage", new List<string> { Math.Truncate(CurDmg).ToString() });
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 9f51e67d3db34e240bb8a4d1ba544942
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -3,7 +3,7 @@ using UnityEngine;
public class Ingame_Dungeon : MonoBehaviour public class Ingame_Dungeon : MonoBehaviour
{ {
public Ingame_DungeonBase[] ingame_Dungeons; // 0 미믹, 1 미궁, 2 시련, 3 웨이브 public Ingame_DungeonBase[] ingame_Dungeons; // 0 미믹, 1 미궁, 2 악몽, 3 웨이브
public TextMeshProUGUI[] texts_base; // 0 던전 정보, 1 남은 시간 public TextMeshProUGUI[] texts_base; // 0 던전 정보, 1 남은 시간
public void Set(float time, int maxMobCount) public void Set(float time, int maxMobCount)
@ -30,6 +30,8 @@ public class Ingame_Dungeon : MonoBehaviour
texts_base[0].text = $"{mapData.Get_Name()} F{MyValue.MyChoiceMapData.n_DungeonLv}"; texts_base[0].text = $"{mapData.Get_Name()} F{MyValue.MyChoiceMapData.n_DungeonLv}";
break; break;
case eDungeon.d3_Nightmare: case eDungeon.d3_Nightmare:
texts_base[0].text = $"{mapData.Get_Name()} {MyValue.MyChoiceMapData.n_Difficult}";
DungeonInfo.Ins.Set_Nightmare(ingame_Dungeons[MyValue.MyChoiceMapData.Get_DungeonIndex()].Set_TotalDmg);
break; break;
case eDungeon.d4_Wave: case eDungeon.d4_Wave:
break; break;

View File

@ -29,4 +29,5 @@ public class Ingame_DungeonBase : MonoBehaviour
DungeonInfo.Ins.act_MobDieCount = Add_MobCount; DungeonInfo.Ins.act_MobDieCount = Add_MobCount;
} }
public virtual void Add_MobCount(int mobid) { } public virtual void Add_MobCount(int mobid) { }
public virtual void Set_TotalDmg(double dmg) { }
} }

View File

@ -0,0 +1,11 @@
using TMPro;
public class Ingame_Nightmare : Ingame_DungeonBase
{
public TextMeshProUGUI[] texts; // 0 데미지
public override void Set_TotalDmg(double dmg)
{
texts[0].text = NumberFormatter.FormatNumber(dmg);
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 40cc608dcd324954ab5af90763be2a46
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -104,11 +104,7 @@ public class NewGameUI : MonoBehaviourSingletonTemplate<NewGameUI>
if (!DSUtil.CheckNull(FarmFarmUI.Ins) && FarmFarmUI.Ins.isActiveAndEnabled) if (!DSUtil.CheckNull(FarmFarmUI.Ins) && FarmFarmUI.Ins.isActiveAndEnabled)
FarmFarmUI.Ins.ReturnToFarm(); FarmFarmUI.Ins.ReturnToFarm();
else if (InGameInfo.Ins.IsGameMode(eGameMode.Dungeon)) else if (InGameInfo.Ins.IsGameMode(eGameMode.Dungeon))
{
DungeonInfo.Ins.Stop_Dungeon(null); DungeonInfo.Ins.Stop_Dungeon(null);
if (MyValue.MyChoiceMapData.Get_MapData().e_Dungeon != eDungeon.d2_Maze)
InGameInfo.Ins.Return_To_Lobby();
}
else else
InGameInfo.Ins.Return_To_Lobby(); InGameInfo.Ins.Return_To_Lobby();
break; break;