using System.Collections.Generic; using BlueWater.Uis; using UnityEngine; namespace BlueWater.Tycoons { public class TycoonCardController: MonoBehaviour { [SerializeField] private TycoonCard _tycoonCardPrefab; private TycoonManager _tycoonManager; private TycoonStatus _tycoonStatus; private bool _isSelectedPassiveCard; private void Start() { _tycoonManager = TycoonManager.Instance; _tycoonStatus = _tycoonManager.TycoonStatus; } public TycoonCard CreateTycoonCard(Transform instantiateLocation = null) { return Instantiate(_tycoonCardPrefab, instantiateLocation); } public void DestroyCardList(List tycoonCards) { foreach (var element in tycoonCards) { if (!element || !element.gameObject) continue; Destroy(element.gameObject); } tycoonCards.Clear(); } public bool IsSelectedPassiveCard(CardData card) { return _isSelectedPassiveCard && card.Type == CardType.Passive; } public void SelectedCard(TycoonCard currentTycoonCard) { currentTycoonCard.CardCountUp(); switch (currentTycoonCard.CardDataForIdx.Idx) //탐색 후 행동... { case "HeartSlotPlus": _tycoonStatus.MaxPlayerHealth += 2; break; case "HeartRecovery": _tycoonStatus.CurrentPlayerHealth += 2; break; case "FullHeartRecovery": _tycoonStatus.CurrentPlayerHealth = _tycoonStatus.MaxPlayerHealth; break; case "AddLiquidB": _tycoonStatus.CurrentLiquidAmountB += 4000; break; case "AddLiquidC": _tycoonStatus.CurrentLiquidAmountC += 4000; break; case "AddLiquidD": _tycoonStatus.CurrentLiquidAmountD += 4000; break; case "AddLiquidE": _tycoonStatus.CurrentLiquidAmountE += 4000; break; case "AddGarnish1": _tycoonStatus.CurrentGarnishAmount1 += 4000; break; case "AddGarnish2": _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; case "DashCooldownReduction": _tycoonStatus.PlayerDashCooldownReduction += 1; break; case "TipBoost": _tycoonStatus.TipMultiplier += 0.2f; break; case "EndGoldBoost": _tycoonStatus.EndGoldMultiplier += 0.1f; break; case "AllCustomerPurification": EventManager.InvokePurifiedCustomerAll(); break; case "GaugeTimeUp": _tycoonStatus.CustomerHurryTimeIncrease += 3; break; case "BarrelAutoSupply": if (_tycoonManager.CardDataSo.CardFirstCheck("BarrelAutoSupply")) { EventManager.InvokeAutoSupplyBarrels(); } _tycoonStatus.BarrelAutoIncrease += 2; break; case "ServerNpcUpgrade": _tycoonStatus.ServerTipMultiplier += 0.1f; break; case "CleanerNpcUpgrade": _tycoonStatus.CleanerCleaningReduction += 1; break; case "BartenderNpcUpgrade": _tycoonStatus.BartenderMakingReduction += 1; break; case "PassiveDoubleServing": _tycoonStatus.CurrentPassiveCard = PassiveCard.DoubleServing; break; case "PassiveRandomChange": _tycoonStatus.CurrentPassiveCard = PassiveCard.RandomChange; EventManager.InvokeChangedRandomBox(); break; case "PassiveGoldAutoGain": _tycoonStatus.CurrentPassiveCard = PassiveCard.GoldAutoGain; EventManager.InvokeGainAutoMoneyCounter(_tycoonManager.TycoonStageController.StageDataSo.AutoGainWaitTime); break; case "PassiveMakingBonus": _tycoonStatus.CurrentPassiveCard = PassiveCard.MakingBonus; break; case "PassiveServingBonus": _tycoonStatus.CurrentPassiveCard = PassiveCard.ServingBonus; break; case "PassiveCleaningBonus": _tycoonStatus.CurrentPassiveCard = PassiveCard.CleaningBonus; break; default: Debug.Log("Not Found Card : IDX" + currentTycoonCard.CardDataForIdx.Idx); return; } if (currentTycoonCard.CardDataForIdx.Type == CardType.Passive) _isSelectedPassiveCard = true; TycoonManager.Instance.CardDataSo.AddToSelectedCard(currentTycoonCard.CardDataForIdx); } } }