폭탄 아이템 사용

This commit is contained in:
Ino 2025-09-16 09:55:24 +09:00
parent c125e298af
commit 4fe3eb4304
5 changed files with 81 additions and 32 deletions

View File

@ -30342,7 +30342,7 @@ MonoBehaviour:
m_Calls: m_Calls:
- m_Target: {fileID: 549946067} - m_Target: {fileID: 549946067}
m_TargetAssemblyTypeName: MiniGameItemCard, Assembly-CSharp m_TargetAssemblyTypeName: MiniGameItemCard, Assembly-CSharp
m_MethodName: OnClick_Use m_MethodName: OnClick_AD
m_Mode: 1 m_Mode: 1
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
@ -32980,7 +32980,7 @@ MonoBehaviour:
m_Calls: m_Calls:
- m_Target: {fileID: 1439057740} - m_Target: {fileID: 1439057740}
m_TargetAssemblyTypeName: MiniGameItemCard, Assembly-CSharp m_TargetAssemblyTypeName: MiniGameItemCard, Assembly-CSharp
m_MethodName: OnClick_Use m_MethodName: OnClick_AD
m_Mode: 1 m_Mode: 1
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
@ -38634,6 +38634,7 @@ MonoBehaviour:
- {fileID: 990497011} - {fileID: 990497011}
- {fileID: 1301406509} - {fileID: 1301406509}
- {fileID: 278813020} - {fileID: 278813020}
- {fileID: 2057533035}
m_AttandanceUI: {fileID: 388368217} m_AttandanceUI: {fileID: 388368217}
m_OptionUI: {fileID: 2034573240} m_OptionUI: {fileID: 2034573240}
m_ProfileUI: {fileID: 1457200138} m_ProfileUI: {fileID: 1457200138}
@ -45534,6 +45535,7 @@ MonoBehaviour:
- {fileID: 903863711} - {fileID: 903863711}
tf_pc: {fileID: 754949300} tf_pc: {fileID: 754949300}
m_Joystick: {fileID: 1165478906} m_Joystick: {fileID: 1165478906}
NoDamage: 0
--- !u!1 &2010236531 --- !u!1 &2010236531
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -48211,7 +48213,7 @@ MonoBehaviour:
m_Calls: m_Calls:
- m_Target: {fileID: 1256458700} - m_Target: {fileID: 1256458700}
m_TargetAssemblyTypeName: MiniGameItemCard, Assembly-CSharp m_TargetAssemblyTypeName: MiniGameItemCard, Assembly-CSharp
m_MethodName: OnClick_Use m_MethodName: OnClick_AD
m_Mode: 1 m_Mode: 1
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}

View File

@ -21,6 +21,11 @@ public class Game_Mini : MonoBehaviour
public RectTransform tf_pc; public RectTransform tf_pc;
public Joystick m_Joystick; public Joystick m_Joystick;
#if UNITY_EDITOR
[Header("Test")]
public bool NoDamage;
#endif
// 1 평소, 2 맞았을 때 // 1 평소, 2 맞았을 때
AsyncOperationHandle<Sprite> m_Handle1, m_Handle2, m_HandleSD; AsyncOperationHandle<Sprite> m_Handle1, m_Handle2, m_HandleSD;
ProtectedInt32 m_HP; ProtectedInt32 m_HP;
@ -223,6 +228,9 @@ public class Game_Mini : MonoBehaviour
{ {
case eMiniGameObtacleType.White: case eMiniGameObtacleType.White:
case eMiniGameObtacleType.Red: case eMiniGameObtacleType.Red:
#if UNITY_EDITOR
if (NoDamage) yield break;
#endif
m_HP -= val; m_HP -= val;
m_HP.Obfuscate(); m_HP.Obfuscate();
slider_hp.value = m_HP / table_GlobalValue.Ins.Get_Float("MiniGameHP"); slider_hp.value = m_HP / table_GlobalValue.Ins.Get_Float("MiniGameHP");
@ -231,23 +239,13 @@ public class Game_Mini : MonoBehaviour
break; break;
case eMiniGameObtacleType.HpHeal: case eMiniGameObtacleType.HpHeal:
m_HP += val; m_HP += val;
if (m_HP > table_GlobalValue.Ins.Get_Float("MiniGameHP"))
m_HP = table_GlobalValue.Ins.Get_Int("MiniGameHP");
m_HP.Obfuscate(); m_HP.Obfuscate();
slider_hp.value = m_HP / table_GlobalValue.Ins.Get_Float("MiniGameHP"); slider_hp.value = m_HP / table_GlobalValue.Ins.Get_Float("MiniGameHP");
break; break;
default: default:
if (!dic_Money.ContainsKey(type)) Add_Item(type, val);
dic_Money.Add(type, 0);
dic_Money[type] += val;
if (type == eMiniGameObtacleType.ItemBomb || type == eMiniGameObtacleType.ItemUmbrella ||
type == eMiniGameObtacleType.ItemDildo)
{
if (dic_Money[type] > 5) dic_Money[type] = 5;
}
dic_Money[type].Obfuscate();
if (dic_MoneyText.ContainsKey(type))
dic_MoneyText[type].text = dic_Money[type].ToString();
break; break;
} }
@ -274,6 +272,39 @@ public class Game_Mini : MonoBehaviour
} }
public Dictionary<eMiniGameObtacleType, ProtectedInt32> Get_ResultMoney() { return dic_Money; } public Dictionary<eMiniGameObtacleType, ProtectedInt32> Get_ResultMoney() { return dic_Money; }
public void Use_Item(eMiniGameObtacleType item)
{
--dic_Money[item];
dic_Money[item].Obfuscate();
dic_MoneyText[item].text = dic_Money[item].ToString();
switch (item)
{ // 아이템 적용
case eMiniGameObtacleType.ItemBomb:
list_MiniGameObtacle.ForEach(f => f.Off_OnlyObtacle());
break;
case eMiniGameObtacleType.ItemUmbrella:
break;
case eMiniGameObtacleType.ItemDildo:
break;
}
}
public void Add_Item(eMiniGameObtacleType type, int val)
{
if (!dic_Money.ContainsKey(type))
dic_Money.Add(type, 0);
dic_Money[type] += val;
if (type == eMiniGameObtacleType.ItemBomb || type == eMiniGameObtacleType.ItemUmbrella ||
type == eMiniGameObtacleType.ItemDildo)
{
if (dic_Money[type] > 5) dic_Money[type] = 5;
}
dic_Money[type].Obfuscate();
if (dic_MoneyText.ContainsKey(type))
dic_MoneyText[type].text = dic_Money[type].ToString();
}
public void Show_HitEffect(Vector3 pos) public void Show_HitEffect(Vector3 pos)
{ {

View File

@ -103,12 +103,19 @@ public class MiniGameObtacle : MonoBehaviour
} }
} }
void Off(bool showeffect) public void Off_OnlyObtacle()
{
if (m_Type == eMiniGameObtacleType.White || m_Type == eMiniGameObtacleType.Red)
Off(true);
}
void Off(bool showeffect, bool playsound = true)
{ {
gameObject.SetActive(false); gameObject.SetActive(false);
if (showeffect) if (showeffect)
{ {
LobbyUI.Ins.m_Game_Mini.Show_HitEffect(m_RectTransform.position); LobbyUI.Ins.m_Game_Mini.Show_HitEffect(m_RectTransform.position);
if (playsound)
SoundInfo.Ins.Play_OneShot(eSound.s002_Bubble, 1f); SoundInfo.Ins.Play_OneShot(eSound.s002_Bubble, 1f);
} }
} }

View File

@ -1,5 +1,6 @@
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using static UnityEditor.Timeline.Actions.MenuPriority;
public enum eMiniGameItem public enum eMiniGameItem
{ {
@ -21,39 +22,49 @@ public class MiniGameItemCard : MonoBehaviour
case eMiniGameItem.Bomb: case eMiniGameItem.Bomb:
i_item.sprite = UIAtlasMgr.Ins.Get_Sprite("item_bomb"); i_item.sprite = UIAtlasMgr.Ins.Get_Sprite("item_bomb");
//t_amount.text = SaveMgr.Ins.Get_Money(eMoney.ItemBomb).ToString(); //t_amount.text = SaveMgr.Ins.Get_Money(eMoney.ItemBomb).ToString();
go_btnPlus.SetActive(SaveMgr.Ins.Get_Money(eMoney.ItemBomb) < 5); go_btnPlus.SetActive(Get_ItemAmount(eMiniGameObtacleType.ItemBomb) < 5);
break; break;
case eMiniGameItem.Umbrella: case eMiniGameItem.Umbrella:
i_item.sprite = UIAtlasMgr.Ins.Get_Sprite("item_umbrella"); i_item.sprite = UIAtlasMgr.Ins.Get_Sprite("item_umbrella");
//t_amount.text = SaveMgr.Ins.Get_Money(eMoney.ItemUmbrella).ToString(); //t_amount.text = SaveMgr.Ins.Get_Money(eMoney.ItemUmbrella).ToString();
go_btnPlus.SetActive(SaveMgr.Ins.Get_Money(eMoney.ItemUmbrella) < 5); go_btnPlus.SetActive(Get_ItemAmount(eMiniGameObtacleType.ItemUmbrella) < 5);
break; break;
case eMiniGameItem.Dildo: case eMiniGameItem.Dildo:
i_item.sprite = UIAtlasMgr.Ins.Get_Sprite("item_dildo"); i_item.sprite = UIAtlasMgr.Ins.Get_Sprite("item_dildo");
//t_amount.text = SaveMgr.Ins.Get_Money(eMoney.ItemDildo).ToString(); //t_amount.text = SaveMgr.Ins.Get_Money(eMoney.ItemDildo).ToString();
go_btnPlus.SetActive(SaveMgr.Ins.Get_Money(eMoney.ItemDildo) < 5); go_btnPlus.SetActive(Get_ItemAmount(eMiniGameObtacleType.ItemDildo) < 5);
break; break;
} }
} }
int Get_ItemAmount(eMiniGameObtacleType item) { return LobbyUI.Ins.m_Game_Mini.Get_ResultMoney()[item]; }
void Use_Item(eMiniGameObtacleType item) { if (Get_ItemAmount(item) > 0) LobbyUI.Ins.m_Game_Mini.Use_Item(item); }
public void OnClick_Use() public void OnClick_Use()
{ {
switch (m_Item) switch (m_Item)
{ {
case eMiniGameItem.Bomb: case eMiniGameItem.Bomb: Use_Item(eMiniGameObtacleType.ItemBomb); break;
if (SaveMgr.Ins.Check_Money(eMoney.ItemBomb, 1, false)) case eMiniGameItem.Umbrella: Use_Item(eMiniGameObtacleType.ItemUmbrella); break;
{ case eMiniGameItem.Dildo: Use_Item(eMiniGameObtacleType.ItemDildo); break;
} }
}
public void OnClick_AD()
{
switch (m_Item)
{
case eMiniGameItem.Bomb:
if (Get_ItemAmount(eMiniGameObtacleType.ItemBomb) < 5)
ADInfo.Ins.Show_AD(true, () => { LobbyUI.Ins.m_Game_Mini.Add_Item(eMiniGameObtacleType.ItemBomb, 1); });
break; break;
case eMiniGameItem.Umbrella: case eMiniGameItem.Umbrella:
if (SaveMgr.Ins.Check_Money(eMoney.ItemUmbrella, 1, false)) if (Get_ItemAmount(eMiniGameObtacleType.ItemUmbrella) < 5)
{ ADInfo.Ins.Show_AD(true, () => { LobbyUI.Ins.m_Game_Mini.Add_Item(eMiniGameObtacleType.ItemUmbrella, 1); });
}
break; break;
case eMiniGameItem.Dildo: case eMiniGameItem.Dildo:
if (SaveMgr.Ins.Check_Money(eMoney.ItemDildo, 1, false)) if (Get_ItemAmount(eMiniGameObtacleType.ItemDildo) < 5)
{ ADInfo.Ins.Show_AD(true, () => { LobbyUI.Ins.m_Game_Mini.Add_Item(eMiniGameObtacleType.ItemDildo, 1); });
}
break; break;
} }
} }

View File

@ -1,7 +1,5 @@
사운드 및 BGM 요청 사운드 및 BGM 요청
미니게임 만들기 미니게임 만들기
- 미니게임을 진행하기 위해서는 체력이 필요하며, 체력은 완전 소진 후 매 20분마다 완전 회복된다.
- 광고 적용
- 아이템 기능 구현 - 아이템 기능 구현
- 광고 제거권 - 광고 제거권