폭탄 아이템 사용

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

View File

@ -21,6 +21,11 @@ public class Game_Mini : MonoBehaviour
public RectTransform tf_pc;
public Joystick m_Joystick;
#if UNITY_EDITOR
[Header("Test")]
public bool NoDamage;
#endif
// 1 평소, 2 맞았을 때
AsyncOperationHandle<Sprite> m_Handle1, m_Handle2, m_HandleSD;
ProtectedInt32 m_HP;
@ -223,6 +228,9 @@ public class Game_Mini : MonoBehaviour
{
case eMiniGameObtacleType.White:
case eMiniGameObtacleType.Red:
#if UNITY_EDITOR
if (NoDamage) yield break;
#endif
m_HP -= val;
m_HP.Obfuscate();
slider_hp.value = m_HP / table_GlobalValue.Ins.Get_Float("MiniGameHP");
@ -231,23 +239,13 @@ public class Game_Mini : MonoBehaviour
break;
case eMiniGameObtacleType.HpHeal:
m_HP += val;
if (m_HP > table_GlobalValue.Ins.Get_Float("MiniGameHP"))
m_HP = table_GlobalValue.Ins.Get_Int("MiniGameHP");
m_HP.Obfuscate();
slider_hp.value = m_HP / table_GlobalValue.Ins.Get_Float("MiniGameHP");
break;
default:
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();
Add_Item(type, val);
break;
}
@ -274,6 +272,39 @@ public class Game_Mini : MonoBehaviour
}
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)
{

View File

@ -103,13 +103,20 @@ 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);
if (showeffect)
{
LobbyUI.Ins.m_Game_Mini.Show_HitEffect(m_RectTransform.position);
SoundInfo.Ins.Play_OneShot(eSound.s002_Bubble, 1f);
if (playsound)
SoundInfo.Ins.Play_OneShot(eSound.s002_Bubble, 1f);
}
}

View File

@ -1,5 +1,6 @@
using UnityEngine;
using UnityEngine.UI;
using static UnityEditor.Timeline.Actions.MenuPriority;
public enum eMiniGameItem
{
@ -21,39 +22,49 @@ public class MiniGameItemCard : MonoBehaviour
case eMiniGameItem.Bomb:
i_item.sprite = UIAtlasMgr.Ins.Get_Sprite("item_bomb");
//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;
case eMiniGameItem.Umbrella:
i_item.sprite = UIAtlasMgr.Ins.Get_Sprite("item_umbrella");
//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;
case eMiniGameItem.Dildo:
i_item.sprite = UIAtlasMgr.Ins.Get_Sprite("item_dildo");
//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;
}
}
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()
{
switch (m_Item)
{
case eMiniGameItem.Bomb: Use_Item(eMiniGameObtacleType.ItemBomb); break;
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 (SaveMgr.Ins.Check_Money(eMoney.ItemBomb, 1, false))
{
}
if (Get_ItemAmount(eMiniGameObtacleType.ItemBomb) < 5)
ADInfo.Ins.Show_AD(true, () => { LobbyUI.Ins.m_Game_Mini.Add_Item(eMiniGameObtacleType.ItemBomb, 1); });
break;
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;
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;
}
}

View File

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