diff --git a/Assets/01.Scenes/01.Tycoon.unity b/Assets/01.Scenes/01.Tycoon.unity index 2e77ade9f..bbc60866d 100644 --- a/Assets/01.Scenes/01.Tycoon.unity +++ b/Assets/01.Scenes/01.Tycoon.unity @@ -21791,6 +21791,14 @@ MonoBehaviour: _currentLiquidAmountE: 0 _currentGarnishAmount1: 0 _currentGarnishAmount2: 0 + _playerDashCooldownReduction: 0 + _tipMultiplier: 0 + _endGoldMultiplier: 0 + _customerHurryTimeIncrease: 0 + _barrelAutoIncrease: 0 + _serverTipMultiplier: 0 + _cleanerCleaningReduction: 0 + _bartenderMakingReduction: 0 k__BackingField: {fileID: 11400000, guid: 702b1ed0ce71d1b4aa1ddbce67e475a1, type: 2} k__BackingField: {fileID: 11400000, guid: 4607b374e49ab734da548949f9e10fed, type: 2} --- !u!114 &1665075870 diff --git a/Assets/02.Scripts/Character/Npc/Crew/Bartender/BartenderCrew.cs b/Assets/02.Scripts/Character/Npc/Crew/Bartender/BartenderCrew.cs index f5bfa6ef2..28aa54f94 100644 --- a/Assets/02.Scripts/Character/Npc/Crew/Bartender/BartenderCrew.cs +++ b/Assets/02.Scripts/Character/Npc/Crew/Bartender/BartenderCrew.cs @@ -2,11 +2,15 @@ using BlueWater.Interfaces; using BlueWater.Items; using BlueWater.Npcs.Customers; using BlueWater.Tycoons; +using UnityEngine; namespace BlueWater.Npcs.Crews.Bartender { public class BartenderCrew : Crew { + [SerializeField] + private int _makingCocktailTime = 15; + public BartenderTable MyBartenderTable { get; private set; } public Customer OrderedCustomer { get; set; } public bool IsMakingCocktail { get; private set; } @@ -64,7 +68,9 @@ namespace BlueWater.Npcs.Crews.Bartender { OrderedCustomer.CurrentBill.BartenderMakingCocktail(); } - BalloonUi.OrderItem(_makingCocktailData.Idx, 0, 15); + + var makingTime = _makingCocktailTime - TycoonManager.Instance.TycoonStatus.BartenderMakingReduction; + BalloonUi.OrderItem(_makingCocktailData.Idx, 0, makingTime); IsMakingCocktail = true; } diff --git a/Assets/02.Scripts/Character/Npc/Customer/Customer.cs b/Assets/02.Scripts/Character/Npc/Customer/Customer.cs index 080e391ad..bc8312cb0 100644 --- a/Assets/02.Scripts/Character/Npc/Customer/Customer.cs +++ b/Assets/02.Scripts/Character/Npc/Customer/Customer.cs @@ -116,6 +116,8 @@ namespace BlueWater.Npcs.Customers [field: SerializeField] public bool IsOrderedSucceed { get; private set; } + [field: SerializeField] + public bool IsServedPlayer { get; private set; } [SerializeField] private CustomerInteractionType _customerInteractionType; @@ -281,6 +283,8 @@ namespace BlueWater.Npcs.Customers { StateMachineController.TransitionToState(UpsetState, this); } + EventManager.InvokeCocktailServedToCustomer(cocktailData, IsServedPlayer); + EventManager.InvokeOrderResult(this, IsOrderedSucceed); } public void Interaction() @@ -294,9 +298,8 @@ namespace BlueWater.Npcs.Customers var servedCocktailData = ItemManager.Instance.CocktailDataSo.GetDataByIdx(currentPickupItem.Idx); IsOrderedSucceed = currentPickupItem.Idx == OrderedCocktailData.Idx; IsReceivedItem = true; + IsServedPlayer = true; ServedItem(servedCocktailData); - EventManager.InvokeCocktailServedToCustomer(servedCocktailData, true); - EventManager.InvokeOrderResult(this, IsOrderedSucceed); break; default: throw new ArgumentOutOfRangeException(); @@ -326,11 +329,10 @@ namespace BlueWater.Npcs.Customers var servedCocktailData = ItemManager.Instance.CocktailDataSo.GetDataByIdx(currentPickupItem.Idx); IsOrderedSucceed = currentPickupItem.Idx == OrderedCocktailData.Idx; IsReceivedItem = true; + IsServedPlayer = false; ServedItem(servedCocktailData); - EventManager.InvokeCocktailServedToCustomer(servedCocktailData, false); serverCrew.BalloonUi.DiscardItem(); serverCrew.ResetMission(); - EventManager.InvokeOrderResult(this, IsOrderedSucceed); } public void CancelInteractionCrew() @@ -407,6 +409,7 @@ namespace BlueWater.Npcs.Customers var exp = (int)(CurrentLevelData.Exp * TycoonManager.Instance.TycoonStatus.ExpMultiplier); var gold = (int)(CurrentLevelData.Gold * TycoonManager.Instance.TycoonStatus.GoldMultiplier); + var tip = (int)(CurrentLevelData.Gold * TycoonManager.Instance.TycoonStatus.GoldMultiplier); PayMoneyParticle.Play(); PayMoneyUi.PayMoney(gold); @@ -443,7 +446,8 @@ namespace BlueWater.Npcs.Customers IsOrderedSucceed = false; InteractionMessage = "칵테일 전달"; OrderedCocktailData = TycoonManager.Instance.TycoonIngredientController.GetRandomCocktailData(); - BalloonUi.OrderItem(OrderedCocktailData.Idx, CurrentLevelData.WaitTime, CurrentLevelData.HurryTime); + var hurryTime = CurrentLevelData.HurryTime + TycoonManager.Instance.TycoonStatus.CustomerHurryTimeIncrease; + BalloonUi.OrderItem(OrderedCocktailData.Idx, CurrentLevelData.WaitTime, hurryTime); _customerInteractionType = CustomerInteractionType.ServedCocktail; RegisterPlayerInteraction(); diff --git a/Assets/02.Scripts/Character/Player/Tycoon/TycoonMovement.cs b/Assets/02.Scripts/Character/Player/Tycoon/TycoonMovement.cs index 376a8e8f6..8afdcc29e 100644 --- a/Assets/02.Scripts/Character/Player/Tycoon/TycoonMovement.cs +++ b/Assets/02.Scripts/Character/Player/Tycoon/TycoonMovement.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using BlueWater.Interfaces; +using BlueWater.Tycoons; using BlueWater.Utility; using Sirenix.OdinInspector; using UnityEngine; @@ -197,8 +198,9 @@ namespace BlueWater.Players.Tycoons elapsedTime += Time.fixedDeltaTime; yield return new WaitForFixedUpdate(); } - - EndDash(DashCooldown); + + var newDashCooldown = DashCooldown - TycoonManager.Instance.TycoonStatus.PlayerDashCooldownReduction; + EndDash(newDashCooldown); } public void EndDash(float dashCooldown = float.PositiveInfinity) diff --git a/Assets/02.Scripts/Character/Player/Tycoon/TycoonPlayer.cs b/Assets/02.Scripts/Character/Player/Tycoon/TycoonPlayer.cs index 864dcf231..3f7a290f4 100644 --- a/Assets/02.Scripts/Character/Player/Tycoon/TycoonPlayer.cs +++ b/Assets/02.Scripts/Character/Player/Tycoon/TycoonPlayer.cs @@ -162,7 +162,8 @@ namespace BlueWater.Players.Tycoons private void Die() { - var saveGold = TycoonManager.Instance.TycoonStatus.CurrentGold / 2; + var percent = 0.5f + TycoonManager.Instance.TycoonStatus.EndGoldMultiplier; + var saveGold = (int)(TycoonManager.Instance.TycoonStatus.CurrentGold * percent); ES3.Save("Gold", saveGold); } diff --git a/Assets/02.Scripts/Editor/JsonHelperEditor.cs b/Assets/02.Scripts/Editor/JsonHelperEditor.cs index 66c8541dd..248aca272 100644 --- a/Assets/02.Scripts/Editor/JsonHelperEditor.cs +++ b/Assets/02.Scripts/Editor/JsonHelperEditor.cs @@ -230,11 +230,15 @@ namespace BlueWater.Editors // 값이 없으면 덮어쓰지 않음 if (newValue == null) return false; - // 값 타입일 경우 기본값이 아닌지 확인 + // Enum 타입의 경우, 값을 비교하여 덮어쓸지 결정 + if (property.PropertyType.IsEnum) + { + return !newValue.Equals(existingValue); // 기존 enum 값과 다를 경우에만 덮어씀 + } + if (property.PropertyType.IsValueType) { - var defaultValue = Activator.CreateInstance(property.PropertyType); - return !newValue.Equals(defaultValue); // 기본값이 아니면 덮어씀 + return !newValue.Equals(existingValue); // 기존 값과 다를 경우 덮어씀 } // 참조 타입인 경우 diff --git a/Assets/02.Scripts/EventManager.cs b/Assets/02.Scripts/EventManager.cs index 9922eaee5..670b57072 100644 --- a/Assets/02.Scripts/EventManager.cs +++ b/Assets/02.Scripts/EventManager.cs @@ -234,6 +234,13 @@ namespace BlueWater { OnAddBarrels?.Invoke(addedValue); } + + // 배럴의 자동화 + public static Action OnAutoSupplyBarrels; + public static void InvokeAutoSupplyBarrels() + { + OnAutoSupplyBarrels?.Invoke(); + } #endregion } diff --git a/Assets/02.Scripts/Prop/Tycoon/Barrel.cs b/Assets/02.Scripts/Prop/Tycoon/Barrel.cs index 1c7d2d16c..7297913c4 100644 --- a/Assets/02.Scripts/Prop/Tycoon/Barrel.cs +++ b/Assets/02.Scripts/Prop/Tycoon/Barrel.cs @@ -25,20 +25,14 @@ namespace BlueWater.Tycoons [field: SerializeField] public int CurrentAmount { get; private set; } - [SerializeField] - private bool _isActivated; - public bool IsActivated - { - get => _isActivated; - private set - { - _isActivated = value; - - _liquidImage.sprite = _isActivated ? _liquidData.Sprite : DataManager.Instance.SpriteDataSo.Lock; - } - } + [field: SerializeField] + public bool IsActivated { get; private set; } + + [field: SerializeField] + public bool IsAutoSupply { get; private set; } private Material _instanceMaterial; + private float _elapsedTime; public static event Action OnBarrelInteracted; public static event Action OnBarrelCancelInteracted; @@ -62,15 +56,31 @@ namespace BlueWater.Tycoons base.Start(); EventManager.OnAddBarrels += AddCurrentAmount; + EventManager.OnAutoSupplyBarrels += AutoSupply; - _liquidImage.sprite = _isActivated ? _liquidData.Sprite : DataManager.Instance.SpriteDataSo.Lock; + _liquidImage.sprite = IsActivated ? _liquidData.Sprite : DataManager.Instance.SpriteDataSo.Lock; InteractionMessage = $"{_liquidData.Name} 따르기"; _instanceMaterial.SetColor(LiquidColorHash, _liquidData.Color * _colorIntensity); } + private void Update() + { + if (!IsAutoSupply) return; + + if (_elapsedTime >= 1f) + { + AddCurrentAmount(TycoonManager.Instance.TycoonStatus.BarrelAutoIncrease); + + _elapsedTime -= 1f; + } + + _elapsedTime += Time.deltaTime; + } + private void OnDestroy() { EventManager.OnAddBarrels -= AddCurrentAmount; + EventManager.OnAutoSupplyBarrels -= AutoSupply; } public override void Interaction() @@ -134,12 +144,18 @@ namespace BlueWater.Tycoons public void Activate() { IsActivated = true; + _liquidImage.sprite = IsActivated ? _liquidData.Sprite : DataManager.Instance.SpriteDataSo.Lock; SetCurrentAmount(_liquidData.GetMaxAmount()); } + public void AutoSupply() + { + IsAutoSupply = true; + } + public void AddCurrentAmount(int addedValue) { - if (!_isActivated) return; + if (!IsActivated) return; SetCurrentAmount(CurrentAmount + addedValue); } diff --git a/Assets/02.Scripts/Prop/Tycoon/TableSeat.cs b/Assets/02.Scripts/Prop/Tycoon/TableSeat.cs index 2bd64d765..8f651997b 100644 --- a/Assets/02.Scripts/Prop/Tycoon/TableSeat.cs +++ b/Assets/02.Scripts/Prop/Tycoon/TableSeat.cs @@ -32,7 +32,10 @@ namespace BlueWater.Tycoons public int TableNumber; [SerializeField] - private float _interactionHoldingTime = 3f; + private float _playerHoldingTime = 3f; + + [SerializeField] + private float _crewHoldingTime = 9f; private Sprite _fullBeerGlass; private Sprite _emptyBeerGlass; @@ -69,19 +72,13 @@ namespace BlueWater.Tycoons } if (IsCleaned) return; - - var holdingGauge = 0f; - if (HoldingElapsedTime > 0f) - { - holdingGauge = Mathf.Clamp(HoldingElapsedTime / _interactionHoldingTime, 0f, 1f); - } if (IsShowing) { - EventManager.InvokeHoldInteracting(holdingGauge); + EventManager.InvokeHoldInteracting(HoldingElapsedTime); } - if (HoldingElapsedTime > _interactionHoldingTime) + if (HoldingElapsedTime >= 1f) { if (_isCrewInteracting) { @@ -94,11 +91,11 @@ namespace BlueWater.Tycoons if (_isPlayerInteracting) { - HoldingElapsedTime += Time.deltaTime; + HoldingElapsedTime += Time.deltaTime / _playerHoldingTime; } if (_isCrewInteracting) { - HoldingElapsedTime += Time.deltaTime; + HoldingElapsedTime += Time.deltaTime / (_crewHoldingTime - TycoonManager.Instance.TycoonStatus.CleanerCleaningReduction); } if (!_isPlayerInteracting && !_isCrewInteracting) diff --git a/Assets/02.Scripts/Prop/Tycoon/Vomiting.cs b/Assets/02.Scripts/Prop/Tycoon/Vomiting.cs index d4941dd8d..f7d3565b9 100644 --- a/Assets/02.Scripts/Prop/Tycoon/Vomiting.cs +++ b/Assets/02.Scripts/Prop/Tycoon/Vomiting.cs @@ -11,7 +11,10 @@ namespace BlueWater.Tycoons public class Vomiting : InteractionFurniture, ICrewInteraction { [SerializeField] - private float _interactionHoldingTime = 3f; + private float _playerHoldingTime = 3f; + + [SerializeField] + private float _crewHoldingTime = 9f; private Sprite vomitingImage; private Coroutine _findCleanerCrewInstance; @@ -43,29 +46,23 @@ namespace BlueWater.Tycoons Destroy(); } - var holdingGauge = 0f; - if (HoldingElapsedTime > 0f) - { - holdingGauge = Mathf.Clamp(HoldingElapsedTime / _interactionHoldingTime, 0f, 1f); - } - if (IsShowing) { - EventManager.InvokeHoldInteracting(holdingGauge); + EventManager.InvokeHoldInteracting(HoldingElapsedTime); } - if (HoldingElapsedTime > _interactionHoldingTime) + if (HoldingElapsedTime >= 1f) { Destroy(); } if (_isPlayerInteracting) { - HoldingElapsedTime += Time.deltaTime; + HoldingElapsedTime += Time.deltaTime / _playerHoldingTime; } if (_isCrewInteracting) { - HoldingElapsedTime += Time.deltaTime; + HoldingElapsedTime += Time.deltaTime / (_crewHoldingTime - TycoonManager.Instance.TycoonStatus.CleanerCleaningReduction); } if (!_isPlayerInteracting && !_isCrewInteracting) diff --git a/Assets/02.Scripts/ScriptableObject/CardDataTable.asset b/Assets/02.Scripts/ScriptableObject/CardDataTable.asset index 26e523c13..7efad46dd 100644 --- a/Assets/02.Scripts/ScriptableObject/CardDataTable.asset +++ b/Assets/02.Scripts/ScriptableObject/CardDataTable.asset @@ -13,149 +13,347 @@ MonoBehaviour: m_Name: CardDataTable m_EditorClassIdentifier: _serializedDataList: - - k__BackingField: HeartPlus + - k__BackingField: HeartSlotPlus k__BackingField: - k__BackingField: HeartPlus - k__BackingField: HeartPlusImg + k__BackingField: HeartSlotPlus k__BackingField: "\uD558\uD2B8 \uD55C\uCE78 \uCD94\uAC00" - k__BackingField: 3 - k__BackingField: 10 + k__BackingField: 5 + k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 700 k__BackingField: {fileID: 21300000, guid: d0b6eba4ac33ece44bccd11e57e415e8, type: 3} - - k__BackingField: HeartHeal + - k__BackingField: HeartRecovery k__BackingField: - k__BackingField: HeartHeal - k__BackingField: HeartHealImg + k__BackingField: HeartRecovery k__BackingField: "\uD558\uD2B8 \uD55C\uCE78 \uD68C\uBCF5" k__BackingField: 10 k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: 466393baecf741d449a05f3b63317368, type: 3} - - k__BackingField: HeartAllHeal + - k__BackingField: FullHeartRecovery k__BackingField: - k__BackingField: HeartAllHeal - k__BackingField: HeartAllHealImg + k__BackingField: FullHeartRecovery k__BackingField: "\uD558\uD2B8 \uC804\uCCB4 \uD68C\uBCF5" k__BackingField: 0 k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: 7579ee4fd1c5ed34d939eeef18c625be, type: 3} - k__BackingField: AddLiquidB k__BackingField: k__BackingField: AddLiquidB - k__BackingField: LiquidBImg k__BackingField: "B \uC220\uC744 4000ml \uCD94\uAC00" k__BackingField: 0 - k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: b1b88ceef90370a4295ed9f58140349a, type: 3} - k__BackingField: AddLiquidC k__BackingField: k__BackingField: AddLiquidC - k__BackingField: LiquidCImg k__BackingField: "C \uC220\uC744 4000ml \uCD94\uAC00" k__BackingField: 0 - k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: d9dbcf5d304083541a40ff4b3cb9048f, type: 3} - k__BackingField: AddLiquidD k__BackingField: k__BackingField: AddLiquidD - k__BackingField: LiquidDImg k__BackingField: "D \uC220\uC744 4000ml \uCD94\uAC00" k__BackingField: 0 - k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: 45e4676179dde7e42bb09b8d94935f34, type: 3} - k__BackingField: AddLiquidE k__BackingField: k__BackingField: AddLiquidE - k__BackingField: LiquidEImg k__BackingField: "E \uC220\uC744 4000ml \uCD94\uAC00" k__BackingField: 0 - k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: 58964556f1712324b9d9ac4515f965aa, type: 3} - k__BackingField: AddGarnish1 k__BackingField: k__BackingField: AddGarnish1 - k__BackingField: Garnish1Img k__BackingField: "1\uBC88 \uAC00\uB2C8\uC26C\uB97C 4000ml \uCD94\uAC00" k__BackingField: 0 - k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: 4708f67b3712d4743af7cb6092edf3c7, type: 3} - k__BackingField: AddGarnish2 k__BackingField: k__BackingField: AddGarnish2 - k__BackingField: Garnish2Img k__BackingField: "2\uBC88 \uAC00\uB2C8\uC26C\uB97C 4000ml \uCD94\uAC00" k__BackingField: 0 - k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: 70238c4151e9085429d18be7f6f8a2ae, type: 3} - - k__BackingField: AddAllLiquid + - k__BackingField: AllLiquidAdd k__BackingField: - k__BackingField: AddAllLiquid - k__BackingField: LiquidAllHealImg + k__BackingField: AllLiquidAdd k__BackingField: "\uC804\uCCB4 \uC7AC\uB8CC 1000ml \uCD94\uAC00" k__BackingField: 0 - k__BackingField: 10 + k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: 284734c4624b35b499152e028f90e6f6, type: 3} - - k__BackingField: ServerNpc + - k__BackingField: ServerNpcAdd k__BackingField: - k__BackingField: ServerNpc - k__BackingField: ServerNpcImg + k__BackingField: ServerNpcAdd k__BackingField: "\uC11C\uBE59 \uC885\uC5C5\uC6D0 \uCD94\uAC00" k__BackingField: 5 k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 1000 k__BackingField: {fileID: 21300000, guid: 21ac4e0eced0c8c4894e7e26f5d13779, type: 3} - - k__BackingField: CleanerNpc + - k__BackingField: CleanerNpcAdd k__BackingField: - k__BackingField: CleanerNpc - k__BackingField: CleanerNpcImg + k__BackingField: CleanerNpcAdd k__BackingField: "\uCCAD\uC18C \uC885\uC5C5\uC6D0 \uCD94\uAC00" k__BackingField: 5 k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 1000 k__BackingField: {fileID: 21300000, guid: 4d0b5b10aaf1d26438a2f013882ad1f6, type: 3} - - k__BackingField: ChefNpc + - k__BackingField: BartenderNpcAdd k__BackingField: - k__BackingField: ChefNpc - k__BackingField: ChefNpcImg + k__BackingField: BartenderNpcAdd k__BackingField: "\uBC14\uD150\uD130 \uC885\uC5C5\uC6D0 \uCD94\uAC00" k__BackingField: 5 k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 1000 k__BackingField: {fileID: 21300000, guid: 02ff51bea8718c447bea8470257b6782, type: 3} - - k__BackingField: SpeedUp + - k__BackingField: SpeedBoost k__BackingField: - k__BackingField: SpeedUp - k__BackingField: SpeedUpImg + k__BackingField: SpeedBoost k__BackingField: "\uD50C\uB808\uC774\uC5B4 \uC774\uB3D9 \uC18D\uB3C4 - 5% \uC99D\uAC00" + 10% \uC99D\uAC00" k__BackingField: 10 k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 500 k__BackingField: {fileID: 21300000, guid: 8de251475e5862f4b96ba45c2de88bd5, type: 3} - - k__BackingField: ExpGetUp + - k__BackingField: ExpBoost k__BackingField: - k__BackingField: ExpGetUp - k__BackingField: ExpGetUpImg + k__BackingField: ExpBoost k__BackingField: "\uACBD\uD5D8\uCE58 \uD68D\uB4DD 20% \uC99D\uAC00" k__BackingField: 10 - k__BackingField: 5 + k__BackingField: 4 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 500 k__BackingField: {fileID: 21300000, guid: 400a47b8bcd0a1e4b823160ce9f40232, type: 3} - - k__BackingField: GoldGetUp + - k__BackingField: GoldBoost k__BackingField: - k__BackingField: GoldGetUp - k__BackingField: GoldGetUpImg + k__BackingField: GoldBoost k__BackingField: "\uACE8\uB4DC \uD68D\uB4DD 20% \uC99D\uAC00" k__BackingField: 10 - k__BackingField: 5 + k__BackingField: 4 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 500 k__BackingField: {fileID: 21300000, guid: 121ed7da4e55d2a43ba798a00f95a474, type: 3} - - k__BackingField: CleanUp + - k__BackingField: AllCleanUp k__BackingField: - k__BackingField: CleanUp - k__BackingField: CleanUpImgImg + k__BackingField: AllCleanUp k__BackingField: "\uB808\uC2A4\uD1A0\uB791 \uD55C\uBC88\uC5D0 \uCCAD\uC18C" k__BackingField: 0 - k__BackingField: 5 + k__BackingField: 4 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: 1acb09a93fb040241a17107a288d6f54, type: 3} - k__BackingField: GaugeReset k__BackingField: k__BackingField: GaugeReset - k__BackingField: GaugeResetImg k__BackingField: "\uBAA8\uB4E0 \uC190\uB2D8\uB4E4\uC758 \uAE30\uB2E4\uB9BC \uCD08\uAE30\uD654" k__BackingField: 0 - k__BackingField: 10 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: 1d6e6fd96eb499f42b79f04f3510af87, type: 3} + - k__BackingField: DashCooldownReduction + k__BackingField: + k__BackingField: DashCooldownReduction + k__BackingField: "\uB300\uC2DC \uCFE8\uD0C0\uC784 \uAC10\uC18C" + k__BackingField: 5 + k__BackingField: 4 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 500 + k__BackingField: {fileID: 0} + - k__BackingField: TipBoost + k__BackingField: + k__BackingField: TipBoost + k__BackingField: "\uD301 \uD68D\uB4DD\uB7C9 20% \uC99D\uAC00" + k__BackingField: 5 + k__BackingField: 4 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 600 + k__BackingField: {fileID: 0} + - k__BackingField: EndGoldBoost + k__BackingField: + k__BackingField: EndGoldBoost + k__BackingField: "\uAC8C\uC784 \uC624\uBC84 \uD6C4 \uD68D\uB4DD + \uACE8\uB4DC 10% \uC99D\uAC00" + k__BackingField: 10 + k__BackingField: 4 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: AllCustomerPurification + k__BackingField: + k__BackingField: AllCustomerPurification + k__BackingField: "\uC190\uB2D8\uB4E4 \uC804\uBD80 \uC815\uD654" + k__BackingField: 0 + k__BackingField: 4 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: GaugeTimeUp + k__BackingField: + k__BackingField: GaugeTimeUp + k__BackingField: "\uC190\uB2D8\uB4E4\uC758 \uAE30\uB2E4\uB9BC \uC2DC\uAC04 + 3\uCD08 \uC99D\uAC00" + k__BackingField: 5 + k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 1000 + k__BackingField: {fileID: 0} + - k__BackingField: ServerNpcUpgrade + k__BackingField: + k__BackingField: ServerNpcUpgrade + k__BackingField: "\uC11C\uBE59 \uC885\uC5C5\uC6D0 \uC5C5\uADF8\uB808\uC774\uB4DC + (\uD301 \uD68D\uB4DD \uBE44\uC728 \uC99D\uAC00)" + k__BackingField: 5 + k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 300 + k__BackingField: {fileID: 0} + - k__BackingField: CleanerNpcUpgrade + k__BackingField: + k__BackingField: CleanerNpcUpgrade + k__BackingField: "\uCCAD\uC18C \uC885\uC5C5\uC6D0 \uC5C5\uADF8\uB808\uC774\uB4DC + (\uCCAD\uC18C \uC18D\uB3C4 \uC99D\uAC00)" + k__BackingField: 5 + k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 300 + k__BackingField: {fileID: 0} + - k__BackingField: BartenderNpcUpgrade + k__BackingField: + k__BackingField: BartenderNpcUpgrade + k__BackingField: "\uBC14\uD150\uD130 \uC885\uC5C5\uC6D0 \uC5C5\uADF8\uB808\uC774\uB4DC + (\uC220 \uC81C\uC870 \uC18D\uB3C4 \uC99D\uAC00)" + k__BackingField: 5 + k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 300 + k__BackingField: {fileID: 0} + - k__BackingField: DoubleServing + k__BackingField: + k__BackingField: DoubleServing + k__BackingField: "\uD50C\uB808\uC774\uC5B4\uAC00 \uC591\uC190\uC5D0 + \uC11C\uBE59 \uAC00\uB2A5" + k__BackingField: 1 + k__BackingField: 2 + k__BackingField: 1 + k__BackingField: 1 + k__BackingField: 1000 + k__BackingField: {fileID: 0} + - k__BackingField: RandomChange + k__BackingField: + k__BackingField: RandomChange + k__BackingField: "\uD734\uC9C0\uD1B5\uC744 \uB79C\uB364 \uC81C\uC870\uD1B5\uC73C\uB85C + \uBCC0\uACBD" + k__BackingField: 1 + k__BackingField: 2 + k__BackingField: 1 + k__BackingField: 1 + k__BackingField: 1000 + k__BackingField: {fileID: 0} + - k__BackingField: PassiveMakingBonus + k__BackingField: + k__BackingField: PassiveMakingBonus + k__BackingField: "\uC220 \uC81C\uC870 \uC131\uACF5 \uC2DC \uACE8\uB4DC + \uCD94\uAC00 \uD68D\uB4DD" + k__BackingField: 1 + k__BackingField: 2 + k__BackingField: 1 + k__BackingField: 1 + k__BackingField: 800 + k__BackingField: {fileID: 0} + - k__BackingField: PassiveServingBonus + k__BackingField: + k__BackingField: PassiveServingBonus + k__BackingField: "\uC11C\uBE59 3\uBC88 \uC131\uACF5 \uC2DC \uD558\uD2B8 + \uBC18\uAC1C \uD68C\uBCF5" + k__BackingField: 1 + k__BackingField: 2 + k__BackingField: 1 + k__BackingField: 1 + k__BackingField: 800 + k__BackingField: {fileID: 0} + - k__BackingField: PassiveCleaningBonus + k__BackingField: + k__BackingField: PassiveCleaningBonus + k__BackingField: "\uCCAD\uC18C 5\uBC88 \uC131\uACF5 \uC2DC \uBC14\uD150\uB354 + \uC81C\uC870 \uC18D\uB3C4 \uC99D\uAC00" + k__BackingField: 1 + k__BackingField: 2 + k__BackingField: 1 + k__BackingField: 1 + k__BackingField: 800 + k__BackingField: {fileID: 0} + - k__BackingField: BarrelAutoSupply + k__BackingField: + k__BackingField: BarrelAutoSupply + k__BackingField: "\uBAA8\uB4E0 \uC220 \uC7AC\uB8CC \uC790\uB3D9 + \uCDA9\uCC9C (1\uCD08\uC5D0 N\uB9AC\uD130)" + k__BackingField: 10 + k__BackingField: 5 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 1500 + k__BackingField: {fileID: 0} + - k__BackingField: GoldAutoGain + k__BackingField: + k__BackingField: GoldAutoGain + k__BackingField: "\uC790\uB3D9\uC73C\uB85C 60\uCD08\uB9C8\uB2E4 + \uB3C8\uD1B5\uC758 \uACE8\uB4DC \uD68C\uC218" + k__BackingField: 1 + k__BackingField: 2 + k__BackingField: 1 + k__BackingField: 1 + k__BackingField: 900 + k__BackingField: {fileID: 0} diff --git a/Assets/02.Scripts/ScriptableObject/LevelDataTable.asset b/Assets/02.Scripts/ScriptableObject/LevelDataTable.asset index 3141f5e05..851354018 100644 --- a/Assets/02.Scripts/ScriptableObject/LevelDataTable.asset +++ b/Assets/02.Scripts/ScriptableObject/LevelDataTable.asset @@ -24,6 +24,8 @@ MonoBehaviour: k__BackingField: 20 k__BackingField: 10 k__BackingField: Upgrade0 + k__BackingField: 0 + k__BackingField: 50 - k__BackingField: 2 k__BackingField: k__BackingField: 2 @@ -35,6 +37,8 @@ MonoBehaviour: k__BackingField: 20 k__BackingField: 10 k__BackingField: + k__BackingField: 0 + k__BackingField: 100 - k__BackingField: 3 k__BackingField: k__BackingField: 3 @@ -46,6 +50,8 @@ MonoBehaviour: k__BackingField: 20 k__BackingField: 10 k__BackingField: + k__BackingField: 0 + k__BackingField: 150 - k__BackingField: 4 k__BackingField: k__BackingField: 4 @@ -57,6 +63,8 @@ MonoBehaviour: k__BackingField: 20 k__BackingField: 10 k__BackingField: + k__BackingField: 0 + k__BackingField: 200 - k__BackingField: 5 k__BackingField: k__BackingField: 5 @@ -68,6 +76,8 @@ MonoBehaviour: k__BackingField: 20 k__BackingField: 10 k__BackingField: Upgrade1 + k__BackingField: 1 + k__BackingField: 500 - k__BackingField: 6 k__BackingField: k__BackingField: 6 @@ -79,6 +89,8 @@ MonoBehaviour: k__BackingField: 18 k__BackingField: 10 k__BackingField: + k__BackingField: 0 + k__BackingField: 250 - k__BackingField: 7 k__BackingField: k__BackingField: 7 @@ -90,6 +102,8 @@ MonoBehaviour: k__BackingField: 18 k__BackingField: 10 k__BackingField: + k__BackingField: 0 + k__BackingField: 300 - k__BackingField: 8 k__BackingField: k__BackingField: 8 @@ -101,6 +115,8 @@ MonoBehaviour: k__BackingField: 18 k__BackingField: 10 k__BackingField: + k__BackingField: 0 + k__BackingField: 350 - k__BackingField: 9 k__BackingField: k__BackingField: 9 @@ -112,6 +128,8 @@ MonoBehaviour: k__BackingField: 18 k__BackingField: 10 k__BackingField: + k__BackingField: 0 + k__BackingField: 400 - k__BackingField: 10 k__BackingField: k__BackingField: 10 @@ -123,6 +141,8 @@ MonoBehaviour: k__BackingField: 18 k__BackingField: 10 k__BackingField: Upgrade2 + k__BackingField: 1 + k__BackingField: 1000 - k__BackingField: 11 k__BackingField: k__BackingField: 11 @@ -134,6 +154,8 @@ MonoBehaviour: k__BackingField: 16 k__BackingField: 8 k__BackingField: + k__BackingField: 0 + k__BackingField: 450 - k__BackingField: 12 k__BackingField: k__BackingField: 12 @@ -145,6 +167,8 @@ MonoBehaviour: k__BackingField: 16 k__BackingField: 8 k__BackingField: + k__BackingField: 0 + k__BackingField: 500 - k__BackingField: 13 k__BackingField: k__BackingField: 13 @@ -156,6 +180,8 @@ MonoBehaviour: k__BackingField: 16 k__BackingField: 8 k__BackingField: + k__BackingField: 0 + k__BackingField: 550 - k__BackingField: 14 k__BackingField: k__BackingField: 14 @@ -167,6 +193,8 @@ MonoBehaviour: k__BackingField: 16 k__BackingField: 8 k__BackingField: + k__BackingField: 0 + k__BackingField: 600 - k__BackingField: 15 k__BackingField: k__BackingField: 15 @@ -178,6 +206,8 @@ MonoBehaviour: k__BackingField: 16 k__BackingField: 8 k__BackingField: Upgrade3 + k__BackingField: 1 + k__BackingField: 1500 - k__BackingField: 16 k__BackingField: k__BackingField: 16 @@ -189,6 +219,8 @@ MonoBehaviour: k__BackingField: 14 k__BackingField: 8 k__BackingField: + k__BackingField: 0 + k__BackingField: 650 - k__BackingField: 17 k__BackingField: k__BackingField: 17 @@ -200,6 +232,8 @@ MonoBehaviour: k__BackingField: 14 k__BackingField: 8 k__BackingField: + k__BackingField: 0 + k__BackingField: 700 - k__BackingField: 18 k__BackingField: k__BackingField: 18 @@ -211,6 +245,8 @@ MonoBehaviour: k__BackingField: 14 k__BackingField: 8 k__BackingField: + k__BackingField: 0 + k__BackingField: 750 - k__BackingField: 19 k__BackingField: k__BackingField: 19 @@ -222,6 +258,8 @@ MonoBehaviour: k__BackingField: 14 k__BackingField: 8 k__BackingField: + k__BackingField: 0 + k__BackingField: 800 - k__BackingField: 20 k__BackingField: k__BackingField: 20 @@ -233,6 +271,8 @@ MonoBehaviour: k__BackingField: 14 k__BackingField: 8 k__BackingField: Upgrade4 + k__BackingField: 1 + k__BackingField: 2000 - k__BackingField: 21 k__BackingField: k__BackingField: 21 @@ -244,6 +284,8 @@ MonoBehaviour: k__BackingField: 12 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 850 - k__BackingField: 22 k__BackingField: k__BackingField: 22 @@ -255,6 +297,8 @@ MonoBehaviour: k__BackingField: 12 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 900 - k__BackingField: 23 k__BackingField: k__BackingField: 23 @@ -266,6 +310,8 @@ MonoBehaviour: k__BackingField: 12 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 950 - k__BackingField: 24 k__BackingField: k__BackingField: 24 @@ -277,6 +323,8 @@ MonoBehaviour: k__BackingField: 12 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 1000 - k__BackingField: 25 k__BackingField: k__BackingField: 25 @@ -288,6 +336,8 @@ MonoBehaviour: k__BackingField: 12 k__BackingField: 6 k__BackingField: Upgrade5 + k__BackingField: 1 + k__BackingField: 3000 - k__BackingField: 26 k__BackingField: k__BackingField: 26 @@ -299,6 +349,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 1100 - k__BackingField: 27 k__BackingField: k__BackingField: 27 @@ -310,6 +362,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 1200 - k__BackingField: 28 k__BackingField: k__BackingField: 28 @@ -321,6 +375,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 1300 - k__BackingField: 29 k__BackingField: k__BackingField: 29 @@ -332,6 +388,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 1400 - k__BackingField: 30 k__BackingField: k__BackingField: 30 @@ -343,6 +401,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: Upgrade6 + k__BackingField: 1 + k__BackingField: 4000 - k__BackingField: 31 k__BackingField: k__BackingField: 31 @@ -354,6 +414,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 1500 - k__BackingField: 32 k__BackingField: k__BackingField: 32 @@ -365,6 +427,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 1600 - k__BackingField: 33 k__BackingField: k__BackingField: 33 @@ -376,6 +440,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 1700 - k__BackingField: 34 k__BackingField: k__BackingField: 34 @@ -387,6 +453,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 1800 - k__BackingField: 35 k__BackingField: k__BackingField: 35 @@ -398,6 +466,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 1 + k__BackingField: 5000 - k__BackingField: 36 k__BackingField: k__BackingField: 36 @@ -409,6 +479,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 1900 - k__BackingField: 37 k__BackingField: k__BackingField: 37 @@ -420,6 +492,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 2000 - k__BackingField: 38 k__BackingField: k__BackingField: 38 @@ -431,6 +505,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 2100 - k__BackingField: 39 k__BackingField: k__BackingField: 39 @@ -442,6 +518,8 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 0 + k__BackingField: 2200 - k__BackingField: 40 k__BackingField: k__BackingField: 40 @@ -453,3 +531,135 @@ MonoBehaviour: k__BackingField: 10 k__BackingField: 6 k__BackingField: + k__BackingField: 1 + k__BackingField: 2300 + - k__BackingField: 41 + k__BackingField: + k__BackingField: 41 + k__BackingField: 2 + k__BackingField: 100 + k__BackingField: 100 + k__BackingField: 900 + k__BackingField: 10 + k__BackingField: 10 + k__BackingField: 6 + k__BackingField: + k__BackingField: 0 + k__BackingField: 2400 + - k__BackingField: 42 + k__BackingField: + k__BackingField: 42 + k__BackingField: 2 + k__BackingField: 100 + k__BackingField: 100 + k__BackingField: 900 + k__BackingField: 10 + k__BackingField: 10 + k__BackingField: 6 + k__BackingField: + k__BackingField: 0 + k__BackingField: 2500 + - k__BackingField: 43 + k__BackingField: + k__BackingField: 43 + k__BackingField: 2 + k__BackingField: 100 + k__BackingField: 100 + k__BackingField: 900 + k__BackingField: 10 + k__BackingField: 10 + k__BackingField: 6 + k__BackingField: + k__BackingField: 0 + k__BackingField: 2600 + - k__BackingField: 44 + k__BackingField: + k__BackingField: 44 + k__BackingField: 2 + k__BackingField: 100 + k__BackingField: 100 + k__BackingField: 900 + k__BackingField: 10 + k__BackingField: 10 + k__BackingField: 6 + k__BackingField: + k__BackingField: 0 + k__BackingField: 2700 + - k__BackingField: 45 + k__BackingField: + k__BackingField: 45 + k__BackingField: 2 + k__BackingField: 100 + k__BackingField: 100 + k__BackingField: 900 + k__BackingField: 10 + k__BackingField: 10 + k__BackingField: 6 + k__BackingField: + k__BackingField: 1 + k__BackingField: 6000 + - k__BackingField: 46 + k__BackingField: + k__BackingField: 46 + k__BackingField: 2 + k__BackingField: 100 + k__BackingField: 100 + k__BackingField: 900 + k__BackingField: 10 + k__BackingField: 10 + k__BackingField: 6 + k__BackingField: + k__BackingField: 0 + k__BackingField: 2800 + - k__BackingField: 47 + k__BackingField: + k__BackingField: 47 + k__BackingField: 2 + k__BackingField: 100 + k__BackingField: 100 + k__BackingField: 900 + k__BackingField: 10 + k__BackingField: 10 + k__BackingField: 6 + k__BackingField: + k__BackingField: 0 + k__BackingField: 2900 + - k__BackingField: 48 + k__BackingField: + k__BackingField: 48 + k__BackingField: 2 + k__BackingField: 100 + k__BackingField: 100 + k__BackingField: 900 + k__BackingField: 10 + k__BackingField: 10 + k__BackingField: 6 + k__BackingField: + k__BackingField: 0 + k__BackingField: 3000 + - k__BackingField: 49 + k__BackingField: + k__BackingField: 49 + k__BackingField: 2 + k__BackingField: 100 + k__BackingField: 100 + k__BackingField: 900 + k__BackingField: 10 + k__BackingField: 10 + k__BackingField: 6 + k__BackingField: + k__BackingField: 0 + k__BackingField: 4000 + - k__BackingField: 50 + k__BackingField: + k__BackingField: 50 + k__BackingField: 2 + k__BackingField: 100 + k__BackingField: 100 + k__BackingField: 900 + k__BackingField: 10 + k__BackingField: 10 + k__BackingField: 6 + k__BackingField: + k__BackingField: 1 + k__BackingField: 7000 diff --git a/Assets/02.Scripts/Tycoon/CardData.cs b/Assets/02.Scripts/Tycoon/CardData.cs index aaa8ac81c..dd94ad0c3 100644 --- a/Assets/02.Scripts/Tycoon/CardData.cs +++ b/Assets/02.Scripts/Tycoon/CardData.cs @@ -1,12 +1,22 @@ using System; using BlueWater.Interfaces; -using Newtonsoft.Json; using Sirenix.OdinInspector; using UnityEngine; namespace BlueWater -{ - +{ + public enum CardType + { + Normal = 0, + Passive = 1 + } + + public enum ShopType + { + None = 0, + Active = 1 + } + [Serializable] public class CardData : IIdx { @@ -14,9 +24,6 @@ namespace BlueWater [field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")] public string Idx { get; set; } - [field: SerializeField, Tooltip("이미지"), BoxGroup("Json 데이터 영역")] - public string Img { get; set; } - [field: SerializeField, Tooltip("Text"), BoxGroup("Json 데이터 영역")] public string ScriptText { get; set; } @@ -26,9 +33,17 @@ namespace BlueWater [field: SerializeField, Tooltip("비율(%)"), BoxGroup("Json 데이터 영역")] public int Ratio { get; set; } + [field: SerializeField, Tooltip("카드 종류"), BoxGroup("Json 데이터 영역")] + public CardType Type { get; set; } + + [field: SerializeField, Tooltip("상점에서 나오는 여부"), BoxGroup("Json 데이터 영역")] + public ShopType Shop { get; set; } + + [field: SerializeField, Tooltip("상점에서의 가격"), BoxGroup("Json 데이터 영역")] + public int Price { get; set; } + [BoxGroup("직접 추가하는 영역")] [field: SerializeField, BoxGroup("직접 추가하는 영역")] public Sprite Sprite { get; set; } - } } \ No newline at end of file diff --git a/Assets/02.Scripts/Tycoon/CardDataSo.cs b/Assets/02.Scripts/Tycoon/CardDataSo.cs index df0124447..1a401b713 100644 --- a/Assets/02.Scripts/Tycoon/CardDataSo.cs +++ b/Assets/02.Scripts/Tycoon/CardDataSo.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; using BlueWater.Items; -using BlueWater.Tycoons; -using UnityEditor.Rendering; using UnityEngine; using Random = UnityEngine.Random; @@ -86,5 +84,10 @@ namespace BlueWater return _selectedCard.TryGetValue(cardData.Idx, out var value) && cardData.Max != 0 && value >= cardData.Max; } + // 카드가 처음 선택되었는지 확인할 때 - 0값이면 true를 리턴 + public bool CardFirstCheck(string idx) + { + return _datas.ContainsKey(idx) && !_selectedCard.ContainsKey(idx); + } } } \ No newline at end of file diff --git a/Assets/02.Scripts/Tycoon/LevelData.cs b/Assets/02.Scripts/Tycoon/LevelData.cs index 4d79969a7..0e9525fbc 100644 --- a/Assets/02.Scripts/Tycoon/LevelData.cs +++ b/Assets/02.Scripts/Tycoon/LevelData.cs @@ -1,11 +1,15 @@ using System; using BlueWater.Interfaces; -using Newtonsoft.Json; using Sirenix.OdinInspector; using UnityEngine; namespace BlueWater { + public enum RewardBoxType + { + Normal = 0, + Rare = 1 + } [Serializable] public class LevelData : IIdx @@ -14,29 +18,34 @@ namespace BlueWater [field: SerializeField, Tooltip("레벨"), BoxGroup("Json 데이터 영역")] public string Idx { get; set; } - [field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")] + [field: SerializeField, Tooltip("손님 재입장 시간"), BoxGroup("Json 데이터 영역")] public int CustomerRespawn { get; set; } - [field: SerializeField, Tooltip("아이템 종류"), BoxGroup("Json 데이터 영역")] + [field: SerializeField, Tooltip("기본 골드량"), BoxGroup("Json 데이터 영역")] public int Gold { get; set; } - [field: SerializeField, Tooltip("재료 종류"), BoxGroup("Json 데이터 영역")] + [field: SerializeField, Tooltip("기본 경험치량"), BoxGroup("Json 데이터 영역")] public int Exp { get; set; } - [field: SerializeField, Tooltip("아이템 품질"), BoxGroup("Json 데이터 영역")] + [field: SerializeField, Tooltip("레벨업 요구 경험치량"), BoxGroup("Json 데이터 영역")] public int RequiredExp { get; set; } - [field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")] + [field: SerializeField, Tooltip("얌전히 기다리는 시간"), BoxGroup("Json 데이터 영역")] public int WaitTime { get; set; } - [field: SerializeField, Tooltip("무게"), BoxGroup("Json 데이터 영역")] + [field: SerializeField, Tooltip("재촉하는 시간 (게이지 활성화)"), BoxGroup("Json 데이터 영역")] public int HurryTime { get; set; } - [field: SerializeField, Tooltip("설명"), BoxGroup("Json 데이터 영역")] + [field: SerializeField, Tooltip("먹는 시간"), BoxGroup("Json 데이터 영역")] public int EatingTime { get; set; } - [field: SerializeField, Tooltip("설명"), BoxGroup("Json 데이터 영역")] + [field: SerializeField, Tooltip("업그레이드 목록"), BoxGroup("Json 데이터 영역")] public string OpenUpgrade { get; set; } + [field: SerializeField, Tooltip("보물상자 종류"), BoxGroup("Json 데이터 영역")] + public RewardBoxType RewardBoxType { get; set; } + + [field: SerializeField, Tooltip("보물상자 가격"), BoxGroup("Json 데이터 영역")] + public int RewardBoxPrice { get; set; } } } \ No newline at end of file diff --git a/Assets/02.Scripts/Tycoon/TycoonStatus.cs b/Assets/02.Scripts/Tycoon/TycoonStatus.cs index 8730d628c..d2e126daf 100644 --- a/Assets/02.Scripts/Tycoon/TycoonStatus.cs +++ b/Assets/02.Scripts/Tycoon/TycoonStatus.cs @@ -233,17 +233,89 @@ namespace BlueWater.Tycoons } } + [SerializeField] + private int _playerDashCooldownReduction; + public int PlayerDashCooldownReduction + { + get => _playerDashCooldownReduction; + set => _playerDashCooldownReduction = value; + } + + [SerializeField] + private float _tipMultiplier; + public float TipMultiplier + { + get => _tipMultiplier; + set => _tipMultiplier = value; + } + + [SerializeField] + private float _endGoldMultiplier; + public float EndGoldMultiplier + { + get => _endGoldMultiplier; + set => _endGoldMultiplier = value; + } + + [SerializeField] + private int _customerHurryTimeIncrease; + public int CustomerHurryTimeIncrease + { + get => _customerHurryTimeIncrease; + set => _customerHurryTimeIncrease = value; + } + + [SerializeField] + private int _barrelAutoIncrease; + public int BarrelAutoIncrease + { + get => _barrelAutoIncrease; + set => _barrelAutoIncrease = value; + } + + [SerializeField] + private float _serverTipMultiplier; + public float ServerTipMultiplier + { + get => _serverTipMultiplier; + set => _serverTipMultiplier = value; + } + + [SerializeField] + private int _cleanerCleaningReduction; + public int CleanerCleaningReduction + { + get => _cleanerCleaningReduction; + set => _cleanerCleaningReduction = value; + } + + [SerializeField] + private int _bartenderMakingReduction; + public int BartenderMakingReduction + { + get => _bartenderMakingReduction; + set => _bartenderMakingReduction = value; + } + public void Initialize() { MaxLevel = int.Parse(TycoonManager.Instance.LevelDataSo.GetData().Last().Value.Idx); CurrentLevel = 1; CurrentGold = 0; CurrentExp = 0; - ExpMultiplier = 1; - GoldMultiplier = 1; + ExpMultiplier = 1f; + GoldMultiplier = 1f; MaxPlayerHealth = GameManager.Instance.CurrentTycoonPlayer.PlayerHealthPoint.MaxHealthPoint; CurrentPlayerHealth = GameManager.Instance.CurrentTycoonPlayer.PlayerHealthPoint.CurrentHealthPoint; PlayerMoveSpeedMultiplier = GameManager.Instance.CurrentTycoonPlayer.TycoonMovement.MoveSpeedMultiplier; + PlayerDashCooldownReduction = 0; + TipMultiplier = 1f; + EndGoldMultiplier = 1f; + _customerHurryTimeIncrease = 0; + BarrelAutoIncrease = 0; + ServerTipMultiplier = 1f; + CleanerCleaningReduction = 0; + BartenderMakingReduction = 0; } private void LevelUp() diff --git a/Assets/02.Scripts/Ui/Tycoon/TycoonSelectCard.cs b/Assets/02.Scripts/Ui/Tycoon/TycoonSelectCard.cs index e4a76a73b..7037e3311 100644 --- a/Assets/02.Scripts/Ui/Tycoon/TycoonSelectCard.cs +++ b/Assets/02.Scripts/Ui/Tycoon/TycoonSelectCard.cs @@ -27,7 +27,8 @@ namespace BlueWater.Uis private TycoonCard _tycoonCard03Componet; private LevelData _lvData; - + private TycoonManager _tycoonManager; + private TycoonStatus _tycoonStatus; [field: SerializeField, CLabel("업그레이드_스크립트")] private GameObject _upgradePopup; @@ -44,6 +45,8 @@ namespace BlueWater.Uis void Start() { uiCamera = TycoonCameraManager.Instance.UiCamera; + _tycoonManager = TycoonManager.Instance; + _tycoonStatus = _tycoonManager.TycoonStatus; } private void OnDestroy() @@ -117,15 +120,15 @@ namespace BlueWater.Uis var card01Key = "NULL VAL"; do { - card = TycoonManager.Instance.CardDataSo.GetRandCardData(); - card = TycoonManager.Instance.CardDataSo.SubstitutionLiquid(card, _lvData); + card = _tycoonManager.CardDataSo.GetRandCardData(); + card = _tycoonManager.CardDataSo.SubstitutionLiquid(card, _lvData); if (card != null) { card01Key = card.Idx; } - } while (card == null || TycoonManager.Instance.CardDataSo.CardMaxCheck(card)); + } while (card == null || _tycoonManager.CardDataSo.CardMaxCheck(card)); _tycoonCard01Componet.SetCard(card01Key); @@ -133,29 +136,29 @@ namespace BlueWater.Uis var card02Key = "NULL VAL"; do { - card = TycoonManager.Instance.CardDataSo.GetRandCardData(); - card = TycoonManager.Instance.CardDataSo.SubstitutionLiquid(card, _lvData); + card = _tycoonManager.CardDataSo.GetRandCardData(); + card = _tycoonManager.CardDataSo.SubstitutionLiquid(card, _lvData); if (card != null) { card02Key = card.Idx; } - } while (card == null || TycoonManager.Instance.CardDataSo.CardMaxCheck(card) || card02Key.Equals(card01Key)); + } while (card == null || _tycoonManager.CardDataSo.CardMaxCheck(card) || card02Key.Equals(card01Key)); _tycoonCard02Componet.SetCard(card02Key); var card03Key = "NULL VAL"; do { - card = TycoonManager.Instance.CardDataSo.GetRandCardData(); - card = TycoonManager.Instance.CardDataSo.SubstitutionLiquid(card, _lvData); + card = _tycoonManager.CardDataSo.GetRandCardData(); + card = _tycoonManager.CardDataSo.SubstitutionLiquid(card, _lvData); if (card != null) { card03Key = card.Idx; } - } while (card == null || TycoonManager.Instance.CardDataSo.CardMaxCheck(card) || card03Key.Equals(card01Key) || card03Key.Equals(card02Key)); + } while (card == null || _tycoonManager.CardDataSo.CardMaxCheck(card) || card03Key.Equals(card01Key) || card03Key.Equals(card02Key)); _tycoonCard03Componet.SetCard(card03Key); //------------- @@ -177,42 +180,104 @@ namespace BlueWater.Uis { switch (currTycoonCard.CardDataForIdx.Idx) //탐색 후 행동... { - case "HeartPlus": - TycoonManager.Instance.TycoonStatus.MaxPlayerHealth += 2; break; - case "HeartHeal": - TycoonManager.Instance.TycoonStatus.CurrentPlayerHealth += 2; break; - case "HeartAllHeal": - TycoonManager.Instance.TycoonStatus.CurrentPlayerHealth = TycoonManager.Instance.TycoonStatus.MaxPlayerHealth; break; + case "HeartSlotPlus": + _tycoonStatus.MaxPlayerHealth += 2; + break; + case "HeartRecovery": + _tycoonStatus.CurrentPlayerHealth += 2; + break; + case "FullHeartRecovery": + _tycoonStatus.CurrentPlayerHealth = _tycoonStatus.MaxPlayerHealth; + break; case "AddLiquidB": - TycoonManager.Instance.TycoonStatus.CurrentLiquidAmountB += 4000; break; + _tycoonStatus.CurrentLiquidAmountB += 4000; + break; case "AddLiquidC": - TycoonManager.Instance.TycoonStatus.CurrentLiquidAmountC += 4000; break; + _tycoonStatus.CurrentLiquidAmountC += 4000; + break; case "AddLiquidD": - TycoonManager.Instance.TycoonStatus.CurrentLiquidAmountD += 4000; break; + _tycoonStatus.CurrentLiquidAmountD += 4000; + break; case "AddLiquidE": - TycoonManager.Instance.TycoonStatus.CurrentLiquidAmountE += 4000; break; + _tycoonStatus.CurrentLiquidAmountE += 4000; + break; case "AddGarnish1": - TycoonManager.Instance.TycoonStatus.CurrentGarnishAmount1 += 4000; break; + _tycoonStatus.CurrentGarnishAmount1 += 4000; + break; case "AddGarnish2": - TycoonManager.Instance.TycoonStatus.CurrentGarnishAmount2 += 4000; break; - case "AddAllLiquid": - EventManager.InvokeAddBarrels(1000); break; - case "ServerNpc": - EventManager.InvokeCreateServerCrew(); break; - case "CleanerNpc": - EventManager.InvokeCreateCleanerCrew(); break; - case "ChefNpc": - EventManager.InvokeCreateBartenderCrew(); break; - case "SpeedUp": - TycoonManager.Instance.TycoonStatus.PlayerMoveSpeedMultiplier += 0.05f; break; - case "ExpGetUp": - TycoonManager.Instance.TycoonStatus.ExpMultiplier += 0.2f; break; - case "GoldGetUp": - TycoonManager.Instance.TycoonStatus.GoldMultiplier += 0.2f; break; - case "CleanUp": - EventManager.InvokeCleaningAll(); break; + _tycoonStatus.CurrentGarnishAmount2 += 4000; + break; + case "AllLiquidAdd": + EventManager.InvokeAddBarrels(1000); + break; + case "ServerNpcAdd": + EventManager.InvokeCreateServerCrew(); + break; + case "CleanerNpcAdd": + EventManager.InvokeCreateCleanerCrew(); + break; + case "BartenderNpcAdd": + EventManager.InvokeCreateBartenderCrew(); + break; + case "SpeedBoost": + _tycoonStatus.PlayerMoveSpeedMultiplier += 0.1f; + break; + case "ExpBoost": + _tycoonStatus.ExpMultiplier += 0.2f; + break; + case "GoldBoost": + _tycoonStatus.GoldMultiplier += 0.2f; + break; + case "AllCleanUp": + EventManager.InvokeCleaningAll(); + break; case "GaugeReset": - EventManager.InvokeGaugeResetCustomers(); break; + EventManager.InvokeGaugeResetCustomers(); + break; + case "DashCooldownReduction": + _tycoonStatus.PlayerDashCooldownReduction += 1; + break; + case "TipBoost": + // TODO : 서빙, 청소 팁 계산 및 연출 + _tycoonStatus.TipMultiplier += 0.2f; + break; + case "EndGoldBoost": + _tycoonStatus.EndGoldMultiplier += 0.1f; + break; + case "AllCustomerPurification": + break; + case "GaugeTimeUp": + _tycoonStatus.CustomerHurryTimeIncrease += 3; + break; + case "BarrelAutoSupply": + if (_tycoonManager.CardDataSo.CardFirstCheck("BarrelAutoSupply")) + { + EventManager.InvokeAutoSupplyBarrels(); + } + _tycoonStatus.BarrelAutoIncrease += 5; + break; + case "ServerNpcUpgrade": + // TODO : 서빙 팁 계산 및 연출 + _tycoonStatus.ServerTipMultiplier += 0.1f; + break; + case "CleanerNpcUpgrade": + _tycoonStatus.CleanerCleaningReduction += 1; + break; + case "BartenderNpcUpgrade": + _tycoonStatus.BartenderMakingReduction += 1; + break; + case "DoubleServing": + break; + case "RandomChange": + break; + case "GoldAutoGain": + break; + case "PassiveMakingBonus": + break; + case "PassiveServingBonus": + break; + case "PassiveCleaningBonus": + break; default: Debug.Log("Not Found Card : IDX" + currTycoonCard.CardDataForIdx.Idx); return; } diff --git a/Assets/05.Prefabs/Uis/Tycoons/Card.prefab b/Assets/05.Prefabs/Uis/Tycoons/Card.prefab index c38ef53ea..889800d40 100644 --- a/Assets/05.Prefabs/Uis/Tycoons/Card.prefab +++ b/Assets/05.Prefabs/Uis/Tycoons/Card.prefab @@ -297,7 +297,7 @@ MonoBehaviour: m_lineSpacingMax: 0 m_paragraphSpacing: 0 m_charWidthMaxAdj: 0 - m_TextWrappingMode: 0 + m_TextWrappingMode: 1 m_wordWrappingRatios: 0.4 m_overflowMode: 0 m_linkedTextComponent: {fileID: 0} diff --git a/Assets/Resources/Excel/CardDataTable.xlsx b/Assets/Resources/Excel/CardDataTable.xlsx index 513686fd5..a0acca1ad 100644 Binary files a/Assets/Resources/Excel/CardDataTable.xlsx and b/Assets/Resources/Excel/CardDataTable.xlsx differ diff --git a/Assets/Resources/Excel/LevelDataTable.xlsx b/Assets/Resources/Excel/LevelDataTable.xlsx index 34e81c824..7b92b47c5 100644 Binary files a/Assets/Resources/Excel/LevelDataTable.xlsx and b/Assets/Resources/Excel/LevelDataTable.xlsx differ diff --git a/Assets/Resources/JSON/CardDataTable.json b/Assets/Resources/JSON/CardDataTable.json index 58872484a..2804d0ee6 100644 --- a/Assets/Resources/JSON/CardDataTable.json +++ b/Assets/Resources/JSON/CardDataTable.json @@ -1,128 +1,299 @@ [ { - "Idx": "HeartPlus", - "Img": "HeartPlusImg", + "Idx": "HeartSlotPlus", "ScriptText": "하트 한칸 추가", - "Max": 3, - "Ratio": 10 + "Max": 5, + "Ratio": 5, + "Type": 0, + "Shop": 1, + "Price": 700 }, { - "Idx": "HeartHeal", - "Img": "HeartHealImg", + "Idx": "HeartRecovery", "ScriptText": "하트 한칸 회복", "Max": 10, - "Ratio": 0 + "Ratio": 0, + "Type": 0, + "Shop": 0, + "Price": 0 }, { - "Idx": "HeartAllHeal", - "Img": "HeartAllHealImg", + "Idx": "FullHeartRecovery", "ScriptText": "하트 전체 회복", "Max": 0, - "Ratio": 5 + "Ratio": 5, + "Type": 0, + "Shop": 0, + "Price": 0 }, { "Idx": "AddLiquidB", - "Img": "LiquidBImg", "ScriptText": "B 술을 4000ml 추가", "Max": 0, - "Ratio": 5 + "Ratio": 0, + "Type": 0, + "Shop": 0, + "Price": 0 }, { "Idx": "AddLiquidC", - "Img": "LiquidCImg", "ScriptText": "C 술을 4000ml 추가", "Max": 0, - "Ratio": 5 + "Ratio": 0, + "Type": 0, + "Shop": 0, + "Price": 0 }, { "Idx": "AddLiquidD", - "Img": "LiquidDImg", "ScriptText": "D 술을 4000ml 추가", "Max": 0, - "Ratio": 5 + "Ratio": 0, + "Type": 0, + "Shop": 0, + "Price": 0 }, { "Idx": "AddLiquidE", - "Img": "LiquidEImg", "ScriptText": "E 술을 4000ml 추가", "Max": 0, - "Ratio": 5 + "Ratio": 0, + "Type": 0, + "Shop": 0, + "Price": 0 }, { "Idx": "AddGarnish1", - "Img": "Garnish1Img", "ScriptText": "1번 가니쉬를 4000ml 추가", "Max": 0, - "Ratio": 5 + "Ratio": 0, + "Type": 0, + "Shop": 0, + "Price": 0 }, { "Idx": "AddGarnish2", - "Img": "Garnish2Img", "ScriptText": "2번 가니쉬를 4000ml 추가", "Max": 0, - "Ratio": 5 + "Ratio": 0, + "Type": 0, + "Shop": 0, + "Price": 0 }, { - "Idx": "AddAllLiquid", - "Img": "LiquidAllHealImg", + "Idx": "AllLiquidAdd", "ScriptText": "전체 재료 1000ml 추가", "Max": 0, - "Ratio": 10 + "Ratio": 5, + "Type": 0, + "Shop": 0, + "Price": 0 }, { - "Idx": "ServerNpc", - "Img": "ServerNpcImg", + "Idx": "ServerNpcAdd", "ScriptText": "서빙 종업원 추가", "Max": 5, - "Ratio": 5 + "Ratio": 5, + "Type": 0, + "Shop": 1, + "Price": 1000 }, { - "Idx": "CleanerNpc", - "Img": "CleanerNpcImg", + "Idx": "CleanerNpcAdd", "ScriptText": "청소 종업원 추가", "Max": 5, - "Ratio": 5 + "Ratio": 5, + "Type": 0, + "Shop": 1, + "Price": 1000 }, { - "Idx": "ChefNpc", - "Img": "ChefNpcImg", + "Idx": "BartenderNpcAdd", "ScriptText": "바텐터 종업원 추가", "Max": 5, - "Ratio": 5 + "Ratio": 5, + "Type": 0, + "Shop": 1, + "Price": 1000 }, { - "Idx": "SpeedUp", - "Img": "SpeedUpImg", - "ScriptText": "플레이어 이동 속도 5% 증가", + "Idx": "SpeedBoost", + "ScriptText": "플레이어 이동 속도 10% 증가", "Max": 10, - "Ratio": 5 + "Ratio": 5, + "Type": 0, + "Shop": 1, + "Price": 500 }, { - "Idx": "ExpGetUp", - "Img": "ExpGetUpImg", + "Idx": "ExpBoost", "ScriptText": "경험치 획득 20% 증가", "Max": 10, - "Ratio": 5 + "Ratio": 4, + "Type": 0, + "Shop": 1, + "Price": 500 }, { - "Idx": "GoldGetUp", - "Img": "GoldGetUpImg", + "Idx": "GoldBoost", "ScriptText": "골드 획득 20% 증가", "Max": 10, - "Ratio": 5 + "Ratio": 4, + "Type": 0, + "Shop": 1, + "Price": 500 }, { - "Idx": "CleanUp", - "Img": "CleanUpImgImg", + "Idx": "AllCleanUp", "ScriptText": "레스토랑 한번에 청소", "Max": 0, - "Ratio": 5 + "Ratio": 4, + "Type": 0, + "Shop": 0, + "Price": 0 }, { "Idx": "GaugeReset", - "Img": "GaugeResetImg", "ScriptText": "모든 손님들의 기다림 초기화", "Max": 0, - "Ratio": 10 + "Ratio": 0, + "Type": 0, + "Shop": 0, + "Price": 0 + }, + { + "Idx": "DashCooldownReduction", + "ScriptText": "대시 쿨타임 감소", + "Max": 5, + "Ratio": 4, + "Type": 0, + "Shop": 1, + "Price": 500 + }, + { + "Idx": "TipBoost", + "ScriptText": "팁 획득량 20% 증가", + "Max": 5, + "Ratio": 4, + "Type": 0, + "Shop": 1, + "Price": 600 + }, + { + "Idx": "EndGoldBoost", + "ScriptText": "게임 오버 후 획득 골드 10% 증가", + "Max": 10, + "Ratio": 4, + "Type": 0, + "Shop": 0, + "Price": 0 + }, + { + "Idx": "AllCustomerPurification", + "ScriptText": "손님들 전부 정화", + "Max": 0, + "Ratio": 4, + "Type": 0, + "Shop": 0, + "Price": 0 + }, + { + "Idx": "GaugeTimeUp", + "ScriptText": "손님들의 기다림 시간 3초 증가", + "Max": 5, + "Ratio": 5, + "Type": 0, + "Shop": 1, + "Price": 1000 + }, + { + "Idx": "BarrelAutoSupply", + "ScriptText": "모든 술 재료 자동 충천 (1초에 N리터)", + "Max": 10, + "Ratio": 5, + "Type": 0, + "Shop": 1, + "Price": 1500 + }, + { + "Idx": "ServerNpcUpgrade", + "ScriptText": "서빙 종업원 업그레이드 (팁 획득 비율 증가)", + "Max": 5, + "Ratio": 5, + "Type": 0, + "Shop": 1, + "Price": 300 + }, + { + "Idx": "CleanerNpcUpgrade", + "ScriptText": "청소 종업원 업그레이드 (청소 속도 증가)", + "Max": 5, + "Ratio": 5, + "Type": 0, + "Shop": 1, + "Price": 300 + }, + { + "Idx": "BartenderNpcUpgrade", + "ScriptText": "바텐터 종업원 업그레이드 (술 제조 속도 증가)", + "Max": 5, + "Ratio": 5, + "Type": 0, + "Shop": 1, + "Price": 300 + }, + { + "Idx": "DoubleServing", + "ScriptText": "플레이어가 양손에 서빙 가능", + "Max": 1, + "Ratio": 2, + "Type": 1, + "Shop": 1, + "Price": 1000 + }, + { + "Idx": "RandomChange", + "ScriptText": "휴지통을 랜덤 제조통으로 변경", + "Max": 1, + "Ratio": 2, + "Type": 1, + "Shop": 1, + "Price": 1000 + }, + { + "Idx": "GoldAutoGain", + "ScriptText": "자동으로 60초마다 돈통의 골드 회수", + "Max": 1, + "Ratio": 2, + "Type": 1, + "Shop": 1, + "Price": 900 + }, + { + "Idx": "PassiveMakingBonus", + "ScriptText": "술 제조 성공 시 골드 추가 획득", + "Max": 1, + "Ratio": 2, + "Type": 1, + "Shop": 1, + "Price": 800 + }, + { + "Idx": "PassiveServingBonus", + "ScriptText": "서빙 3번 성공 시 하트 반개 회복", + "Max": 1, + "Ratio": 2, + "Type": 1, + "Shop": 1, + "Price": 800 + }, + { + "Idx": "PassiveCleaningBonus", + "ScriptText": "청소 5번 성공 시 바텐더 제조 속도 증가", + "Max": 1, + "Ratio": 2, + "Type": 1, + "Shop": 1, + "Price": 800 } ] \ No newline at end of file diff --git a/Assets/Resources/JSON/LevelDataTable.json b/Assets/Resources/JSON/LevelDataTable.json index 4c33bdf3a..7d75f817a 100644 --- a/Assets/Resources/JSON/LevelDataTable.json +++ b/Assets/Resources/JSON/LevelDataTable.json @@ -8,7 +8,9 @@ "WaitTime": 20, "HurryTime": 20, "EatingTime": 10, - "OpenUpgrade": "Upgrade0" + "OpenUpgrade": "Upgrade0", + "RewardBoxType": 0, + "RewardBoxPrice": 50 }, { "Idx": 2, @@ -19,7 +21,9 @@ "WaitTime": 20, "HurryTime": 20, "EatingTime": 10, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 100 }, { "Idx": 3, @@ -30,7 +34,9 @@ "WaitTime": 20, "HurryTime": 20, "EatingTime": 10, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 150 }, { "Idx": 4, @@ -41,7 +47,9 @@ "WaitTime": 20, "HurryTime": 20, "EatingTime": 10, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 200 }, { "Idx": 5, @@ -52,7 +60,9 @@ "WaitTime": 20, "HurryTime": 20, "EatingTime": 10, - "OpenUpgrade": "Upgrade1" + "OpenUpgrade": "Upgrade1", + "RewardBoxType": 1, + "RewardBoxPrice": 500 }, { "Idx": 6, @@ -63,7 +73,9 @@ "WaitTime": 18, "HurryTime": 18, "EatingTime": 10, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 250 }, { "Idx": 7, @@ -74,7 +86,9 @@ "WaitTime": 18, "HurryTime": 18, "EatingTime": 10, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 300 }, { "Idx": 8, @@ -85,7 +99,9 @@ "WaitTime": 18, "HurryTime": 18, "EatingTime": 10, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 350 }, { "Idx": 9, @@ -96,7 +112,9 @@ "WaitTime": 18, "HurryTime": 18, "EatingTime": 10, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 400 }, { "Idx": 10, @@ -107,7 +125,9 @@ "WaitTime": 18, "HurryTime": 18, "EatingTime": 10, - "OpenUpgrade": "Upgrade2" + "OpenUpgrade": "Upgrade2", + "RewardBoxType": 1, + "RewardBoxPrice": 1000 }, { "Idx": 11, @@ -118,7 +138,9 @@ "WaitTime": 16, "HurryTime": 16, "EatingTime": 8, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 450 }, { "Idx": 12, @@ -129,7 +151,9 @@ "WaitTime": 16, "HurryTime": 16, "EatingTime": 8, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 500 }, { "Idx": 13, @@ -140,7 +164,9 @@ "WaitTime": 16, "HurryTime": 16, "EatingTime": 8, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 550 }, { "Idx": 14, @@ -151,7 +177,9 @@ "WaitTime": 16, "HurryTime": 16, "EatingTime": 8, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 600 }, { "Idx": 15, @@ -162,7 +190,9 @@ "WaitTime": 16, "HurryTime": 16, "EatingTime": 8, - "OpenUpgrade": "Upgrade3" + "OpenUpgrade": "Upgrade3", + "RewardBoxType": 1, + "RewardBoxPrice": 1500 }, { "Idx": 16, @@ -173,7 +203,9 @@ "WaitTime": 14, "HurryTime": 14, "EatingTime": 8, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 650 }, { "Idx": 17, @@ -184,7 +216,9 @@ "WaitTime": 14, "HurryTime": 14, "EatingTime": 8, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 700 }, { "Idx": 18, @@ -195,7 +229,9 @@ "WaitTime": 14, "HurryTime": 14, "EatingTime": 8, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 750 }, { "Idx": 19, @@ -206,7 +242,9 @@ "WaitTime": 14, "HurryTime": 14, "EatingTime": 8, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 800 }, { "Idx": 20, @@ -217,7 +255,9 @@ "WaitTime": 14, "HurryTime": 14, "EatingTime": 8, - "OpenUpgrade": "Upgrade4" + "OpenUpgrade": "Upgrade4", + "RewardBoxType": 1, + "RewardBoxPrice": 2000 }, { "Idx": 21, @@ -228,7 +268,9 @@ "WaitTime": 12, "HurryTime": 12, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 850 }, { "Idx": 22, @@ -239,7 +281,9 @@ "WaitTime": 12, "HurryTime": 12, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 900 }, { "Idx": 23, @@ -250,7 +294,9 @@ "WaitTime": 12, "HurryTime": 12, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 950 }, { "Idx": 24, @@ -261,7 +307,9 @@ "WaitTime": 12, "HurryTime": 12, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 1000 }, { "Idx": 25, @@ -272,7 +320,9 @@ "WaitTime": 12, "HurryTime": 12, "EatingTime": 6, - "OpenUpgrade": "Upgrade5" + "OpenUpgrade": "Upgrade5", + "RewardBoxType": 1, + "RewardBoxPrice": 3000 }, { "Idx": 26, @@ -283,7 +333,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 1100 }, { "Idx": 27, @@ -294,7 +346,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 1200 }, { "Idx": 28, @@ -305,7 +359,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 1300 }, { "Idx": 29, @@ -316,7 +372,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 1400 }, { "Idx": 30, @@ -327,7 +385,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "Upgrade6" + "OpenUpgrade": "Upgrade6", + "RewardBoxType": 1, + "RewardBoxPrice": 4000 }, { "Idx": 31, @@ -338,7 +398,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 1500 }, { "Idx": 32, @@ -349,7 +411,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 1600 }, { "Idx": 33, @@ -360,7 +424,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 1700 }, { "Idx": 34, @@ -371,7 +437,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 1800 }, { "Idx": 35, @@ -382,7 +450,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 1, + "RewardBoxPrice": 5000 }, { "Idx": 36, @@ -393,7 +463,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 1900 }, { "Idx": 37, @@ -404,7 +476,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 2000 }, { "Idx": 38, @@ -415,7 +489,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 2100 }, { "Idx": 39, @@ -426,7 +502,9 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 2200 }, { "Idx": 40, @@ -437,6 +515,138 @@ "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, - "OpenUpgrade": "" + "OpenUpgrade": "", + "RewardBoxType": 1, + "RewardBoxPrice": 2300 + }, + { + "Idx": 41, + "CustomerRespawn": 2, + "Gold": 100, + "Exp": 100, + "RequiredExp": 900, + "WaitTime": 10, + "HurryTime": 10, + "EatingTime": 6, + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 2400 + }, + { + "Idx": 42, + "CustomerRespawn": 2, + "Gold": 100, + "Exp": 100, + "RequiredExp": 900, + "WaitTime": 10, + "HurryTime": 10, + "EatingTime": 6, + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 2500 + }, + { + "Idx": 43, + "CustomerRespawn": 2, + "Gold": 100, + "Exp": 100, + "RequiredExp": 900, + "WaitTime": 10, + "HurryTime": 10, + "EatingTime": 6, + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 2600 + }, + { + "Idx": 44, + "CustomerRespawn": 2, + "Gold": 100, + "Exp": 100, + "RequiredExp": 900, + "WaitTime": 10, + "HurryTime": 10, + "EatingTime": 6, + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 2700 + }, + { + "Idx": 45, + "CustomerRespawn": 2, + "Gold": 100, + "Exp": 100, + "RequiredExp": 900, + "WaitTime": 10, + "HurryTime": 10, + "EatingTime": 6, + "OpenUpgrade": "", + "RewardBoxType": 1, + "RewardBoxPrice": 6000 + }, + { + "Idx": 46, + "CustomerRespawn": 2, + "Gold": 100, + "Exp": 100, + "RequiredExp": 900, + "WaitTime": 10, + "HurryTime": 10, + "EatingTime": 6, + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 2800 + }, + { + "Idx": 47, + "CustomerRespawn": 2, + "Gold": 100, + "Exp": 100, + "RequiredExp": 900, + "WaitTime": 10, + "HurryTime": 10, + "EatingTime": 6, + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 2900 + }, + { + "Idx": 48, + "CustomerRespawn": 2, + "Gold": 100, + "Exp": 100, + "RequiredExp": 900, + "WaitTime": 10, + "HurryTime": 10, + "EatingTime": 6, + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 3000 + }, + { + "Idx": 49, + "CustomerRespawn": 2, + "Gold": 100, + "Exp": 100, + "RequiredExp": 900, + "WaitTime": 10, + "HurryTime": 10, + "EatingTime": 6, + "OpenUpgrade": "", + "RewardBoxType": 0, + "RewardBoxPrice": 4000 + }, + { + "Idx": 50, + "CustomerRespawn": 2, + "Gold": 100, + "Exp": 100, + "RequiredExp": 900, + "WaitTime": 10, + "HurryTime": 10, + "EatingTime": 6, + "OpenUpgrade": "", + "RewardBoxType": 1, + "RewardBoxPrice": 7000 } ] \ No newline at end of file