상품 구성 관련 수정사항 반영 바랍니다.

1) 챗봇 패키지는 특가 패키지로 합쳐서 4개의 상품으로 처리 될 수 있도록 수정 바랍니다.
2) 일부 패키지 기능 수정이 필요합니다.
핫타임 패키지 : 피버 모드 지속시간 2배로 증가 (패키지 구매 시)
확률업 패키지 : 뽑기 가격 1/2로 감소, 뽑기 확률 증가 (패키지 구매 시 뽑기 등급1 가중치 0으로 변경)"
This commit is contained in:
Ino 2025-12-19 15:18:29 +09:00
parent 3e77c663f9
commit 9cf2822b09
8 changed files with 256 additions and 90 deletions

View File

@ -25,16 +25,6 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6380f1d398a88f24eb4533b24a31dd71
m_Address: Assets/Res_Addr/Girl_Game
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9bef269f90a11c545bd6c49e5eeaa40c
m_Address: Assets/Res_Addr/Girl_LuckyGame
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: a2b1186de4aee1c42bc7b90913f7e65c, type: 2}
m_SchemaSet:

View File

@ -42,24 +42,46 @@ public class table_gacharateconfig : table_base
if (tableDatas == null || tableDatas.Count == 0)
return null;
List<gacharateconfigtabledata> targetList = tableDatas;
if (SaveMgr.Ins.GachaChargeTime_Reduce())
{
int minGrade = int.MaxValue;
for (int i = 0; i < tableDatas.Count; i++)
{
if (tableDatas[i].n_GachaGrade < minGrade)
minGrade = tableDatas[i].n_GachaGrade;
}
var filtered = new List<gacharateconfigtabledata>();
for (int i = 0; i < tableDatas.Count; i++)
{
if (tableDatas[i].n_GachaGrade > minGrade)
filtered.Add(tableDatas[i]);
}
if (filtered.Count > 0)
targetList = filtered;
}
int totalRate = 0;
foreach (var data in tableDatas)
foreach (var data in targetList)
{
totalRate += data.n_GachaGradeRate;
}
// 1 ~ totalRate 사이 난수 생성
// 1 ~ totalRate
int rand = UnityEngine.Random.Range(1, totalRate + 1);
int cumulative = 0;
foreach (var data in tableDatas)
foreach (var data in targetList)
{
cumulative += data.n_GachaGradeRate;
if (rand <= cumulative)
return data;
}
// fallback (논리상 여기 안 옴)
return tableDatas[tableDatas.Count - 1];
// fallback
return targetList[targetList.Count - 1];
}
}

View File

@ -130,7 +130,6 @@ public class HorseRushPanel : AddrHandleBase
{
STUN_TIME = 0.5f;
RUSH_LIMIT_TIME = 2f;
FEVER_TIME = 8f;
BONUS_TIME = 0.4f;
FEVER_INCREASE_MIN = 5;
FEVER_INCREASE_MAX = 15;
@ -311,6 +310,7 @@ public class HorseRushPanel : AddrHandleBase
#if UNITY_EDITOR
DEFAULT_FEVER_COUNT = 20;
#endif
FEVER_TIME = SaveMgr.Ins.IsInfinityMiniGame() ? 16f : 8f;
// UI 초기화
_combo.SetActive(false);

View File

@ -16342,7 +16342,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 34, y: -78}
m_AnchoredPosition: {x: 34, y: 333}
m_SizeDelta: {x: -50.10004, y: -89.630005}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &372107469
@ -17889,7 +17889,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &413986003
RectTransform:
m_ObjectHideFlags: 0
@ -19420,9 +19420,9 @@ RectTransform:
- {fileID: 1758430830}
m_Father: {fileID: 1520745915}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: -240, y: -272}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -234.2, y: 216}
m_SizeDelta: {x: 440, y: 302.74}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &449645076
@ -33081,7 +33081,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &772120019
RectTransform:
m_ObjectHideFlags: 0
@ -39976,7 +39976,7 @@ MonoBehaviour:
t_limit: {fileID: 1446812988}
t_pricelimit: {fileID: 1860629982}
t_buymoneyprice: {fileID: 539166755}
t_sale: {fileID: 0}
t_sale: {fileID: 1064032601}
go_btnbuy: {fileID: 513804693}
go_btnbuylimit: {fileID: 825929559}
go_btnbuymoney: {fileID: 1105452051}
@ -42581,7 +42581,7 @@ MonoBehaviour:
t_limit: {fileID: 1014086874}
t_pricelimit: {fileID: 915124419}
t_buymoneyprice: {fileID: 1924078574}
t_sale: {fileID: 0}
t_sale: {fileID: 381297544}
go_btnbuy: {fileID: 2014452500}
go_btnbuylimit: {fileID: 1988377068}
go_btnbuymoney: {fileID: 902737964}
@ -48824,7 +48824,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 46, y: -268.18506}
m_AnchoredPosition: {x: 46, y: 143}
m_SizeDelta: {x: 0, y: -100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1072563889
@ -51954,9 +51954,9 @@ RectTransform:
- {fileID: 89002543}
m_Father: {fileID: 1520745915}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 240, y: -272.00003}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 233.89, y: 216}
m_SizeDelta: {x: 440, y: 302.74}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1142258171
@ -52266,7 +52266,7 @@ MonoBehaviour:
t_limit: {fileID: 735254794}
t_pricelimit: {fileID: 1592967792}
t_buymoneyprice: {fileID: 1954560664}
t_sale: {fileID: 0}
t_sale: {fileID: 1827843152}
go_btnbuy: {fileID: 158737568}
go_btnbuylimit: {fileID: 404307196}
go_btnbuymoney: {fileID: 233404564}
@ -53364,7 +53364,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: -74}
m_AnchoredPosition: {x: 0, y: 340}
m_SizeDelta: {x: 956, y: 66}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1176259466
@ -56732,9 +56732,9 @@ RectTransform:
m_Children: []
m_Father: {fileID: 2083971308}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -50, y: 51}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 50, y: -49}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1246994244
@ -65300,8 +65300,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 540, y: -3023.6}
m_SizeDelta: {x: 1080, y: 1867.8}
m_AnchoredPosition: {x: 540, y: -2571.51}
m_SizeDelta: {x: 1080, y: 963.62}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1444161457
GameObject:
@ -65948,7 +65948,7 @@ MonoBehaviour:
t_limit: {fileID: 1911490257}
t_pricelimit: {fileID: 1860643411}
t_buymoneyprice: {fileID: 1127974296}
t_sale: {fileID: 0}
t_sale: {fileID: 255354124}
go_btnbuy: {fileID: 1972920947}
go_btnbuylimit: {fileID: 1559514763}
go_btnbuymoney: {fileID: 258455758}
@ -67137,7 +67137,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 3957.5}
m_SizeDelta: {x: 0, y: 3053.32}
m_Pivot: {x: 0, y: 1}
--- !u!114 &1500699733
MonoBehaviour:
@ -87287,7 +87287,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &1941786414
RectTransform:
m_ObjectHideFlags: 0
@ -88661,9 +88661,9 @@ RectTransform:
m_Children: []
m_Father: {fileID: 797927522}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -65, y: 39}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 35, y: -61}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1957647543

View File

@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using GUPS.AntiCheat.Protected;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
@ -25,11 +26,11 @@ public class GachaUI : uScrollViewMgr
float fRefillTime, ToastY = -400f;
List<(eMoney, int)> list_log = new List<(eMoney, int)>();
Coroutine co_sliderupdate;
ProtectedInt32 m_GachaNeed;
private void Start()
{
texts[1].text = $"{table_GlobalValue.Ins.Get_Float("GachaAD_Reward")}";
texts[2].text = $"{table_GlobalValue.Ins.Get_Int("GachaAmount")}";
texts[4].text = $"{table_GlobalValue.Ins.Get_Int("GachaAmount")}";
videoPlayer.loopPointReached += OnVideoEnd;
@ -54,6 +55,10 @@ public class GachaUI : uScrollViewMgr
Set_UI(false);
Init_GachaAnim();
Set_Video();
m_GachaNeed = table_GlobalValue.Ins.Get_Int("GachaAmount");
m_GachaNeed.Obfuscate();
texts[2].text = $"{(SaveMgr.Ins.GachaChargeTime_Reduce() ? m_GachaNeed >> 1 : m_GachaNeed)}";
}
void Set_UI(bool updateSlider)
@ -177,7 +182,7 @@ public class GachaUI : uScrollViewMgr
public void OnClick_Gacha()
{
if (!isGacha && SaveMgr.Ins.Check_Money(eMoney.Gacha, table_GlobalValue.Ins.Get_Int("GachaAmount"), true, ToastY))
if (!isGacha && SaveMgr.Ins.Check_Money(eMoney.Gacha, m_GachaNeed, true, ToastY))
{
CanSkip = isGacha = true;
isRewardGiven = false;
@ -234,7 +239,7 @@ public class GachaUI : uScrollViewMgr
if (isRewardGiven) yield break;
isRewardGiven = true;
SaveMgr.Ins.Add_Money(eMoney.Gacha, -table_GlobalValue.Ins.Get_Int("GachaAmount"));
SaveMgr.Ins.Add_Money(eMoney.Gacha, -m_GachaNeed);
var gradedata = table_gacharateconfig.Ins.Get_RadomData();
var reward = table_gachareward.Ins.Get_Reward(gradedata.n_GachaGrade);
i_GachaReward.transform.parent.parent.gameObject.SetActive(true);

View File

@ -74,15 +74,27 @@ public class LobbyUI : MonoBehaviourSingletonTemplate<LobbyUI>
}
}
void MiniGameCharging()
{
if (!SaveMgr.Ins.IsInfinityMiniGame())
{
SaveMgr.Ins.Add_Money(eMoney.MiniGameHP);
m_ToastUI.Set($"생명력이 충전되었습니다.");
}
else
SaveMgr.Ins.Set_Money(eMoney.MiniGameHP, table_GlobalValue.Ins.Get_Int("MiniGame_TotalEnterMoney"));
Check_MiniGameCharging();
Set_Money();
SaveMgr.Ins.Save();
}
void Check_MiniGameCharging()
{
if (SaveMgr.Ins.IsInfinityMiniGame())
{
minigamechargingTime = 0f;
return;
}
if (!SaveMgr.Ins.Check_Money(eMoney.MiniGameHP, table_GlobalValue.Ins.Get_Int("MiniGame_TotalEnterMoney"), false))
{
var cal = SaveMgr.Ins.Get_MiniGameTime() - InternetTime.Ins.Time;

View File

@ -243,22 +243,24 @@ public class ShopCard : MonoBehaviour
msg += $"광고 제거권을 획득했습니다.";
}
if (m_Data.n_BonusGameRefill > 0)
{
if (!string.IsNullOrEmpty(msg)) msg += "\n";
msg += $"보너스 게임 리필 횟수가 {m_Data.n_BonusGameRefill} 추가 되었습니다.";
}
//if (m_Data.n_BonusGameRefill > 0)
//{
// if (!string.IsNullOrEmpty(msg)) msg += "\n";
// msg += $"보너스 게임 리필 횟수가 {m_Data.n_BonusGameRefill} 추가 되었습니다.";
//}
if (m_Data.b_InfinityMiniGame)
{
if (!string.IsNullOrEmpty(msg)) msg += "\n";
msg += $"미니 게임 무제한 입장을 획득했습니다.";
msg += $"미니 게임 무제한 입장을 획득했습니다.\n";
msg += $"미니 게임 피버 지속시간이 2배 증가 했습니다.";
}
if (m_Data.b_LuckyGameCharge)
{
if (!string.IsNullOrEmpty(msg)) msg += "\n";
msg += $"뽑기 무료 충전 시간이 90% 감소되었습니다.";
msg += $"뽑기 비용이 50% 감소 했습니다.\n";
msg += $"뽑기 확률이 대폭 증가 했습니다.";
}
if (string.IsNullOrEmpty(msg)) msg = "보상이 없습니다.\n보상을 설정해 주세요!";

File diff suppressed because one or more lines are too long