CapersProject/Assets/02.Scripts/Tycoon/TycoonCardController.cs
2024-11-17 13:29:57 +09:00

161 lines
6.3 KiB
C#

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<TycoonCard> 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)
{
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);
}
}
}