161 lines
6.3 KiB
C#
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);
|
|
}
|
|
}
|
|
} |