0.3.2.17 버전 업데이트
This commit is contained in:
parent
3cb6c7b52b
commit
726063fcf6
File diff suppressed because it is too large
Load Diff
@ -77,6 +77,7 @@ namespace BlueWater.Npcs.Crews.Bartender
|
||||
}
|
||||
|
||||
MyBartenderTable.CompleteMakingCocktail(_makingCocktailData);
|
||||
EventManager.InvokeCocktailCompleted(_makingCocktailData, false);
|
||||
ResetMission();
|
||||
}
|
||||
}
|
||||
|
@ -141,8 +141,6 @@ namespace BlueWater.Npcs.Customers
|
||||
private int _paidAmount;
|
||||
private int _foodPrice;
|
||||
private int _tipAmount;
|
||||
|
||||
private bool _isQuitting;
|
||||
|
||||
// State
|
||||
public StateMachineController<Customer> StateMachineController { get; private set; }
|
||||
@ -170,11 +168,6 @@ namespace BlueWater.Npcs.Customers
|
||||
EventManager.OnGaugeResetCustomers += ResetGauge;
|
||||
}
|
||||
|
||||
private void OnApplicationQuit()
|
||||
{
|
||||
_isQuitting = true;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
StateMachineController.UpdateState(this);
|
||||
@ -303,7 +296,7 @@ namespace BlueWater.Npcs.Customers
|
||||
IsOrderedSucceed = currentPickupItem.Idx == OrderedCocktailData.Idx;
|
||||
IsReceivedItem = true;
|
||||
ServedItem(servedCocktailData);
|
||||
EventManager.InvokeCocktailServedToCustomer(servedCocktailData);
|
||||
EventManager.InvokeCocktailServedToCustomer(servedCocktailData, true);
|
||||
EventManager.InvokeOrderResult(this, IsOrderedSucceed);
|
||||
break;
|
||||
default:
|
||||
@ -335,6 +328,7 @@ namespace BlueWater.Npcs.Customers
|
||||
IsOrderedSucceed = currentPickupItem.Idx == OrderedCocktailData.Idx;
|
||||
IsReceivedItem = true;
|
||||
ServedItem(servedCocktailData);
|
||||
EventManager.InvokeCocktailServedToCustomer(servedCocktailData, false);
|
||||
serverCrew.BalloonUi.DiscardItem();
|
||||
serverCrew.ResetMission();
|
||||
EventManager.InvokeOrderResult(this, IsOrderedSucceed);
|
||||
@ -347,7 +341,7 @@ namespace BlueWater.Npcs.Customers
|
||||
|
||||
public bool CanInteractionCrew(Crew crew = null)
|
||||
{
|
||||
return !IsReceivedItem && CurrentTableSeat;
|
||||
return IsOrderedCocktail();
|
||||
}
|
||||
|
||||
public virtual void ShowInteractionUi()
|
||||
@ -470,12 +464,17 @@ namespace BlueWater.Npcs.Customers
|
||||
|
||||
public void ResetGauge()
|
||||
{
|
||||
if (!CurrentTableSeat || IsReceivedItem) return;
|
||||
if (!IsOrderedCocktail()) return;
|
||||
|
||||
BalloonUi.ResetGauge();
|
||||
CurrentBill.ResetGauge();
|
||||
}
|
||||
|
||||
public bool IsOrderedCocktail()
|
||||
{
|
||||
return CurrentTableSeat && !IsReceivedItem;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -24,18 +24,14 @@ namespace BlueWater.Players.Tycoons
|
||||
|
||||
private void Start()
|
||||
{
|
||||
EventManager.OnCocktailStarted += PickupUnfinishedCocktail;
|
||||
EventManager.OnCocktailCompleted += PickupItem;
|
||||
EventManager.OnCocktailDiscarded += DiscardItem;
|
||||
EventManager.OnCocktailServedToCustomer += GiveItem;
|
||||
EventManager.OnMakeCocktailStarted += PickupUnfinishedCocktail;
|
||||
EventManager.OnMakeCocktailCompleted += PickupItem;
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
EventManager.OnCocktailStarted -= PickupUnfinishedCocktail;
|
||||
EventManager.OnCocktailCompleted -= PickupItem;
|
||||
EventManager.OnCocktailDiscarded -= DiscardItem;
|
||||
EventManager.OnCocktailServedToCustomer -= GiveItem;
|
||||
EventManager.OnMakeCocktailStarted -= PickupUnfinishedCocktail;
|
||||
EventManager.OnMakeCocktailCompleted -= PickupItem;
|
||||
}
|
||||
|
||||
[Button("컴포넌트 초기화")]
|
||||
@ -49,8 +45,10 @@ namespace BlueWater.Players.Tycoons
|
||||
_isUnfinishedCocktailPickedUp = true;
|
||||
}
|
||||
|
||||
public void PickupItem(IPickup item)
|
||||
public void PickupItem(IPickup item, bool isMadePlayer)
|
||||
{
|
||||
if (!isMadePlayer) return;
|
||||
|
||||
if (_isPickedUpItem)
|
||||
{
|
||||
Debug.Log("이미 아이템을 들고 있습니다.");
|
||||
@ -64,7 +62,7 @@ namespace BlueWater.Players.Tycoons
|
||||
_isPickedUpItem = true;
|
||||
}
|
||||
|
||||
public void GiveItem(IPickup item)
|
||||
public void ServedItem(IPickup item)
|
||||
{
|
||||
if (!_isPickedUpItem || _currentPickupItem == null)
|
||||
{
|
||||
|
@ -1,4 +1,5 @@
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Items;
|
||||
using BlueWater.Tycoons;
|
||||
using BlueWater.Uis;
|
||||
using Sirenix.OdinInspector;
|
||||
@ -93,11 +94,10 @@ namespace BlueWater.Players.Tycoons
|
||||
TycoonInput.OnMoveInputReceived += TycoonMovement.HandleInputMovement;
|
||||
|
||||
EventManager.OnDead += Die;
|
||||
var balloonUi = InteractionCanvas.BalloonUi;
|
||||
EventManager.OnCocktailStarted += balloonUi.PickupUnfinishedCocktail;
|
||||
EventManager.OnCocktailCompleted += balloonUi.SetItemImage;
|
||||
EventManager.OnCocktailDiscarded += balloonUi.DiscardItem;
|
||||
EventManager.OnCocktailServedToCustomer += balloonUi.GiveItem;
|
||||
EventManager.OnMakeCocktailStarted += MakeCocktailStarted;
|
||||
EventManager.OnMakeCocktailCompleted += MakeCocktailCompleted;
|
||||
EventManager.OnCocktailDiscarded += DiscardCocktail;
|
||||
EventManager.OnCocktailServedToCustomer += ServedCocktail;
|
||||
|
||||
IdleStateMachine = new IdleStateMachine();
|
||||
WalkingStateMachine = new WalkingStateMachine();
|
||||
@ -121,11 +121,10 @@ namespace BlueWater.Players.Tycoons
|
||||
TycoonInput.OnMoveInputReceived -= TycoonMovement.HandleInputMovement;
|
||||
|
||||
EventManager.OnDead -= Die;
|
||||
var balloonUi = InteractionCanvas.BalloonUi;
|
||||
EventManager.OnCocktailStarted -= balloonUi.PickupUnfinishedCocktail;
|
||||
EventManager.OnCocktailCompleted -= balloonUi.SetItemImage;
|
||||
EventManager.OnCocktailDiscarded -= balloonUi.DiscardItem;
|
||||
EventManager.OnCocktailServedToCustomer -= balloonUi.GiveItem;
|
||||
EventManager.OnMakeCocktailStarted -= MakeCocktailStarted;
|
||||
EventManager.OnMakeCocktailCompleted -= MakeCocktailCompleted;
|
||||
EventManager.OnCocktailDiscarded -= DiscardCocktail;
|
||||
EventManager.OnCocktailServedToCustomer -= ServedCocktail;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@ -172,6 +171,34 @@ namespace BlueWater.Players.Tycoons
|
||||
CurrentStateMachine.EnterState(this);
|
||||
}
|
||||
|
||||
public void MakeCocktailStarted()
|
||||
{
|
||||
InteractionCanvas.BalloonUi.PickupUnfinishedCocktail();
|
||||
}
|
||||
|
||||
public void MakeCocktailCompleted(CocktailData cocktailData, bool isMadePlayer)
|
||||
{
|
||||
if (!isMadePlayer) return;
|
||||
|
||||
InteractionCanvas.BalloonUi.SetItemImage(cocktailData);
|
||||
}
|
||||
|
||||
public void DiscardCocktail(CocktailData cocktailData, bool isDiscardedPlayer)
|
||||
{
|
||||
if (!isDiscardedPlayer) return;
|
||||
|
||||
TycoonPickupHandler.DiscardItem();
|
||||
InteractionCanvas.BalloonUi.DiscardItem();
|
||||
}
|
||||
|
||||
public void ServedCocktail(CocktailData cocktailData, bool isServedPlayer)
|
||||
{
|
||||
if (!isServedPlayer) return;
|
||||
|
||||
TycoonPickupHandler.ServedItem(cocktailData);
|
||||
InteractionCanvas.BalloonUi.ServedItem();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -120,24 +120,24 @@ namespace BlueWater
|
||||
}
|
||||
|
||||
// 플레이어 칵테일 제조 시작 이벤트
|
||||
public static Action OnCocktailStarted;
|
||||
public static Action OnMakeCocktailStarted;
|
||||
public static void InvokeCocktailStarted()
|
||||
{
|
||||
OnCocktailStarted?.Invoke();
|
||||
OnMakeCocktailStarted?.Invoke();
|
||||
}
|
||||
|
||||
// 플레이어 칵테일 제조 완성 이벤트
|
||||
public static Action<CocktailData> OnCocktailCompleted;
|
||||
public static void InvokeCocktailCompleted(CocktailData completedCocktail)
|
||||
// 칵테일 제조 완성 이벤트 (bool값은 player가 만들었으면 true, crew가 만들었으면 false)
|
||||
public static Action<CocktailData, bool> OnMakeCocktailCompleted;
|
||||
public static void InvokeCocktailCompleted(CocktailData completedCocktail, bool isMadePlayer)
|
||||
{
|
||||
OnCocktailCompleted?.Invoke(completedCocktail);
|
||||
OnMakeCocktailCompleted?.Invoke(completedCocktail, isMadePlayer);
|
||||
}
|
||||
|
||||
// 플레이어가 들고있는 칵테일 버리기 이벤트
|
||||
public static Action OnCocktailDiscarded;
|
||||
public static void InvokeCocktailDiscarded()
|
||||
public static Action<CocktailData, bool> OnCocktailDiscarded;
|
||||
public static void InvokeCocktailDiscarded(CocktailData cocktailData, bool isDiscardedPlayer)
|
||||
{
|
||||
OnCocktailDiscarded?.Invoke();
|
||||
OnCocktailDiscarded?.Invoke(cocktailData, isDiscardedPlayer);
|
||||
}
|
||||
|
||||
// 플레이어가 들고있는 칵테일을 서빙테이블에 올려두는 이벤트
|
||||
@ -169,10 +169,10 @@ namespace BlueWater
|
||||
}
|
||||
|
||||
// 손님이 칵테일을 받을때 이벤트
|
||||
public static Action<CocktailData> OnCocktailServedToCustomer;
|
||||
public static void InvokeCocktailServedToCustomer(CocktailData servedCocktailData)
|
||||
public static Action<CocktailData, bool> OnCocktailServedToCustomer;
|
||||
public static void InvokeCocktailServedToCustomer(CocktailData servedCocktailData, bool isServedPlayer)
|
||||
{
|
||||
OnCocktailServedToCustomer?.Invoke(servedCocktailData);
|
||||
OnCocktailServedToCustomer?.Invoke(servedCocktailData, isServedPlayer);
|
||||
}
|
||||
|
||||
// 손님이 칵테일을 받을때 결과 이벤트
|
||||
|
@ -12,7 +12,7 @@ namespace BlueWater.Tycoons
|
||||
// 테이블의 칵테일을 가져가는 경우
|
||||
if (CurrentPickupItem != null)
|
||||
{
|
||||
CurrentTycoonPlayer.TycoonPickupHandler.PickupItem(CurrentPickupItem);
|
||||
CurrentTycoonPlayer.TycoonPickupHandler.PickupItem(CurrentPickupItem, true);
|
||||
CurrentTycoonPlayer.InteractionCanvas.BalloonUi.SetItemImage(CurrentPickupItem);
|
||||
CocktailGlassImage.enabled = false;
|
||||
InteractionCanvas.BalloonUi.DiscardItem();
|
||||
|
@ -1,4 +1,3 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using BlueWater.Items;
|
||||
using BlueWater.Uis;
|
||||
@ -50,8 +49,10 @@ namespace BlueWater.Tycoons
|
||||
base.OnEnable();
|
||||
}
|
||||
|
||||
private void Start()
|
||||
protected override void Start()
|
||||
{
|
||||
base.Start();
|
||||
|
||||
CookGauge.enabled = false;
|
||||
FireWoodQuantity.enabled = false;
|
||||
FoodQuantity.enabled = false;
|
||||
@ -121,7 +122,7 @@ namespace BlueWater.Tycoons
|
||||
var carriedItemData = CurrentTycoonPlayer.TycoonPickupHandler.GetCurrentPickupItem();
|
||||
if (carriedItemData.Idx == FireWoodIdx)
|
||||
{
|
||||
CurrentTycoonPlayer.TycoonPickupHandler.GiveItem(carriedItemData);
|
||||
CurrentTycoonPlayer.TycoonPickupHandler.ServedItem(carriedItemData);
|
||||
_currentFireWoodCount++;
|
||||
}
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ namespace BlueWater.Tycoons
|
||||
// 테이블의 칵테일을 가져가는 경우
|
||||
if (CurrentPickupItem != null)
|
||||
{
|
||||
CurrentTycoonPlayer.TycoonPickupHandler.PickupItem(CurrentPickupItem);
|
||||
CurrentTycoonPlayer.TycoonPickupHandler.PickupItem(CurrentPickupItem, true);
|
||||
CurrentTycoonPlayer.InteractionCanvas.BalloonUi.SetItemImage(CurrentPickupItem);
|
||||
CocktailGlassImage.enabled = false;
|
||||
InteractionCanvas.BalloonUi.DiscardItem();
|
||||
|
@ -1,10 +1,15 @@
|
||||
using BlueWater.Items;
|
||||
|
||||
namespace BlueWater.Tycoons
|
||||
{
|
||||
public class TrashCan : InteractionFurniture
|
||||
{
|
||||
public override void Interaction()
|
||||
{
|
||||
EventManager.InvokeCocktailDiscarded();
|
||||
var discardCocktailDataIdx = CurrentTycoonPlayer.TycoonPickupHandler.GetCurrentPickupItem().Idx;
|
||||
var discardCocktailData = ItemManager.Instance.CocktailDataSo.GetDataByIdx(discardCocktailDataIdx);
|
||||
|
||||
EventManager.InvokeCocktailDiscarded(discardCocktailData, true);
|
||||
}
|
||||
|
||||
public override bool CanInteraction()
|
||||
|
@ -131,17 +131,26 @@ namespace BlueWater.Tycoons
|
||||
private IEnumerator FindBartenderCrewCoroutine(Customer orderedCustomer)
|
||||
{
|
||||
var waitTime = new WaitForSeconds(2f);
|
||||
var tycoonIngredientController = TycoonManager.Instance.TycoonIngredientController;
|
||||
var tycoonManager = TycoonManager.Instance;
|
||||
var tycoonIngredientController = tycoonManager.TycoonIngredientController;
|
||||
var orderedCocktailData = orderedCustomer.OrderedCocktailData;
|
||||
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
|
||||
while (true)
|
||||
{
|
||||
var orderedCount = tycoonManager.CustomerController.OrderedCocktailCount(orderedCocktailData.Idx);
|
||||
if (!tycoonManager.TycoonStageController.CanMakingCocktail(orderedCocktailData.Idx, orderedCount))
|
||||
{
|
||||
yield return waitTime;
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach (var element in BartenderCrews)
|
||||
{
|
||||
if (element.MyBartenderTable.CurrentPickupItem != null || element.IsOnMission) continue;
|
||||
|
||||
var orderedCocktailIngredients = orderedCustomer.OrderedCocktailData.ValidIngredients;
|
||||
var orderedCocktailIngredients = orderedCocktailData.ValidIngredients;
|
||||
if (!tycoonIngredientController.IsMakingCocktail(orderedCocktailIngredients)) break;
|
||||
|
||||
if (orderedCustomer.IsReceivedItem || orderedCustomer.IsMatchedServer) yield break;
|
||||
|
@ -1,6 +1,8 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Items;
|
||||
using BlueWater.Npcs.Customers;
|
||||
using BlueWater.Utility;
|
||||
using Sirenix.OdinInspector;
|
||||
@ -132,5 +134,10 @@ namespace BlueWater.Tycoons
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public int OrderedCocktailCount(string cocktailDataIdx)
|
||||
{
|
||||
return InstanceCustomers.Count(element => element.IsOrderedCocktail() && element.OrderedCocktailData.Idx == cocktailDataIdx);
|
||||
}
|
||||
}
|
||||
}
|
@ -54,10 +54,10 @@ namespace BlueWater
|
||||
private Transform _spawnLocation;
|
||||
|
||||
[SerializeField]
|
||||
private Vector3 _pushDirection;
|
||||
private Vector3 _pushDirection = new(-3f, -1f, 0f);
|
||||
|
||||
[SerializeField]
|
||||
private float _pushPower;
|
||||
private float _pushPower = 50;
|
||||
|
||||
[Title("Liquid / Garnish")]
|
||||
[SerializeField, Required, Tooltip("원액 프리팹")]
|
||||
@ -67,10 +67,10 @@ namespace BlueWater
|
||||
private Garnish _garnishObject;
|
||||
|
||||
[SerializeField, Tooltip("초당 생성되는 액체 수(ml)")]
|
||||
private int _liquidsPerSecond = 80;
|
||||
private int _liquidsPerSecond = 100;
|
||||
|
||||
[SerializeField]
|
||||
private int _maxLiquidCount = 400;
|
||||
private int _maxLiquidCount = 300;
|
||||
|
||||
[SerializeField, Range(0f, 1f), Tooltip("목표 색상으로 변경되는데 걸리는 시간")]
|
||||
private float _colorLerpSpeed = 0.5f;
|
||||
@ -78,6 +78,10 @@ namespace BlueWater
|
||||
[SerializeField, Range(1f, 5f), Tooltip("목표 색상 * 밝기")]
|
||||
private float _colorIntensity = 2f;
|
||||
|
||||
[Title("도착 지점")]
|
||||
[SerializeField, Tooltip("도착 지점의 Lerp값")]
|
||||
private Vector2 _reachedLerpPosition = new(-10.5f, 4f);
|
||||
|
||||
[Title("오브젝트 풀링")]
|
||||
[SerializeField, Tooltip("오브젝트 풀링 최대 개수")]
|
||||
private int _objectPoolCount = 1000;
|
||||
@ -90,10 +94,10 @@ namespace BlueWater
|
||||
private Sprite _playerBalloonImage;
|
||||
|
||||
[SerializeField]
|
||||
private float _moveToPlayerDuration = 0.5f;
|
||||
private float _moveToPlayerDuration = 0.2f;
|
||||
|
||||
[SerializeField]
|
||||
private float _moveToCenterDuration = 0.2f;
|
||||
private float _moveToCenterDuration = 0.15f;
|
||||
|
||||
[SerializeField]
|
||||
private Vector3 _centerPosition = new(-300f, 0f, 0f);
|
||||
@ -124,6 +128,7 @@ namespace BlueWater
|
||||
private Color _targetColor;
|
||||
private Camera _overlayCamera;
|
||||
private TycoonPlayer _tycoonPlayer;
|
||||
private Vector2 _originalReachedPosition;
|
||||
private Vector3 _lastPlayerPosition;
|
||||
private Vector3 _originalPanelScale;
|
||||
private Coroutine _movePanelToPlayerInstance;
|
||||
@ -158,6 +163,7 @@ namespace BlueWater
|
||||
_instanceMaterial = Instantiate(_liquidRenderer.material);
|
||||
_liquidRenderer.material = _instanceMaterial;
|
||||
|
||||
_originalReachedPosition = _reachedCollider.transform.position;
|
||||
_originalPanelScale = _liquidPanel.transform.localScale;
|
||||
_instanceMaterial.SetFloat(LiquidAmountHash, 0f);
|
||||
_timeInterval = 1f / _liquidsPerSecond;
|
||||
@ -312,8 +318,10 @@ namespace BlueWater
|
||||
HidePanel();
|
||||
}
|
||||
|
||||
public void ReleaseAllObject(CocktailData cocktailData)
|
||||
public void ReleaseAllObject(CocktailData cocktailData, bool isServedPlayer)
|
||||
{
|
||||
if (!isServedPlayer) return;
|
||||
|
||||
// 리스트 삭제는 뒤에서부터 해야 오류가 없음
|
||||
for (var i = _activeLiquidDatas.Count - 1; i >= 0; i--)
|
||||
{
|
||||
@ -341,6 +349,7 @@ namespace BlueWater
|
||||
_isCompleted = false;
|
||||
_currentMixedColor = barrel.GetLiquidData().Color;
|
||||
_instanceMaterial.SetColor(LiquidColorHash, _currentMixedColor * _colorIntensity);
|
||||
_reachedCollider.transform.position = _originalReachedPosition;
|
||||
EventManager.InvokeCocktailStarted();
|
||||
}
|
||||
|
||||
@ -474,7 +483,7 @@ namespace BlueWater
|
||||
yield return new WaitForSeconds(1f);
|
||||
|
||||
HidePanel();
|
||||
EventManager.InvokeCocktailCompleted(matchingCocktail);
|
||||
EventManager.InvokeCocktailCompleted(matchingCocktail, true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -508,6 +517,9 @@ namespace BlueWater
|
||||
_liquidReachedTime = Time.time;
|
||||
SetCurrentAmount(++_currentLiquidAmount);
|
||||
var liquidAmount = Mathf.Clamp(_currentLiquidAmount / _maxLiquidCount, 0f, 1f);
|
||||
var reachedColliderPositionY = Mathf.Lerp(_reachedLerpPosition.x, _reachedLerpPosition.y, liquidAmount);
|
||||
_reachedCollider.transform.position = new Vector3(_reachedCollider.transform.position.x,
|
||||
reachedColliderPositionY, _reachedCollider.transform.position.z);
|
||||
_instanceMaterial.SetFloat(LiquidAmountHash, liquidAmount);
|
||||
_targetColor = MixColorsByTime();
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using BlueWater.Npcs.Customers;
|
||||
using BlueWater.Items;
|
||||
using BlueWater.Utility;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
@ -13,8 +13,7 @@ namespace BlueWater.Tycoons
|
||||
[field: SerializeField, Required]
|
||||
public StageDataSo StageDataSo { get; private set; }
|
||||
|
||||
[SerializeField]
|
||||
private List<CustomerVisitInfo> _dailyCustomerVisitInfos;
|
||||
public Dictionary<string, int> InstanceCocktailDatas { get; private set; } = new();
|
||||
|
||||
private bool _isClosedTime;
|
||||
private TycoonManager _tycoonManager;
|
||||
@ -24,20 +23,23 @@ namespace BlueWater.Tycoons
|
||||
private void Start()
|
||||
{
|
||||
_tycoonManager = TycoonManager.Instance;
|
||||
|
||||
_dailyCustomerVisitInfos = new List<CustomerVisitInfo>();
|
||||
|
||||
EventManager.OnInitializedPlayerInput += StartStage;
|
||||
EventManager.OnMakeCocktailCompleted += AddInstanceCocktail;
|
||||
EventManager.OnCocktailServedToCustomer += RemoveInstanceCocktail;
|
||||
EventManager.OnCocktailDiscarded += RemoveInstanceCocktail;
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
EventManager.OnInitializedPlayerInput -= StartStage;
|
||||
EventManager.OnMakeCocktailCompleted -= AddInstanceCocktail;
|
||||
EventManager.OnCocktailServedToCustomer -= RemoveInstanceCocktail;
|
||||
EventManager.OnCocktailDiscarded -= RemoveInstanceCocktail;
|
||||
}
|
||||
|
||||
private void StartStage()
|
||||
{
|
||||
_dailyCustomerVisitInfos.Clear();
|
||||
Utils.StartUniqueCoroutine(this, ref _startStageCoroutineInstance, StartStageCoroutine());
|
||||
|
||||
EventManager.InvokeTycoonGameStarted();
|
||||
@ -65,14 +67,38 @@ namespace BlueWater.Tycoons
|
||||
}
|
||||
}
|
||||
|
||||
public void RegisterCustomerVisitInfo(CustomerVisitInfo customerVisitInfo)
|
||||
public void AddInstanceCocktail(CocktailData cocktailData, bool isMadePlayer)
|
||||
{
|
||||
Utils.RegisterList(_dailyCustomerVisitInfos, customerVisitInfo);
|
||||
var idx = cocktailData.Idx;
|
||||
if (!InstanceCocktailDatas.TryAdd(idx, 1))
|
||||
{
|
||||
InstanceCocktailDatas[idx]++;
|
||||
}
|
||||
}
|
||||
|
||||
public void UnregisterCustomerVisitInfo(CustomerVisitInfo customerVisitInfo)
|
||||
|
||||
public void RemoveInstanceCocktail(CocktailData cocktailData, bool isRemovedPlayer)
|
||||
{
|
||||
Utils.UnregisterList(_dailyCustomerVisitInfos, customerVisitInfo);
|
||||
var idx = cocktailData.Idx;
|
||||
if (InstanceCocktailDatas.ContainsKey(idx))
|
||||
{
|
||||
InstanceCocktailDatas[idx]--;
|
||||
}
|
||||
}
|
||||
|
||||
public bool CanMakingCocktail(string cocktailDataIdx, int orderedCount)
|
||||
{
|
||||
if (!InstanceCocktailDatas.TryGetValue(cocktailDataIdx, out var instanceCount)) return true;
|
||||
|
||||
return instanceCount < orderedCount;
|
||||
}
|
||||
|
||||
private void PrintInstanceCocktailDatas()
|
||||
{
|
||||
foreach (var element in InstanceCocktailDatas)
|
||||
{
|
||||
print($"key : {element.Key}, Value : {element.Value}");
|
||||
}
|
||||
print("\n");
|
||||
}
|
||||
}
|
||||
}
|
@ -104,7 +104,7 @@ namespace BlueWater.Uis
|
||||
SetEmpty();
|
||||
}
|
||||
|
||||
public void GiveItem(IPickup item)
|
||||
public void ServedItem()
|
||||
{
|
||||
_isUnfinishedCocktailPickedUp = false;
|
||||
HideUi();
|
||||
|
@ -508,38 +508,6 @@ MonoBehaviour:
|
||||
m_Calls: []
|
||||
m_ActionId: 0dbf1015-499a-43fe-b252-11c232b9a1ae
|
||||
m_ActionName: 'Combat/HealthPointMax[/Keyboard/f3]'
|
||||
- m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1674052485383758547}
|
||||
m_TargetAssemblyTypeName: BlueWater.Players.Tycoons.TycoonInput, Assembly-CSharp
|
||||
m_MethodName: OnPour
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
m_ActionId: b02d861a-39ed-4c5e-abd0-7ce3c2a44707
|
||||
m_ActionName: 'Bar/Pour[/Keyboard/e]'
|
||||
- m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1674052485383758547}
|
||||
m_TargetAssemblyTypeName: BlueWater.Players.Tycoons.TycoonInput, Assembly-CSharp
|
||||
m_MethodName: OnCancel
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
m_ActionId: 4752dd64-7a31-42ae-bfc9-45a01927bd07
|
||||
m_ActionName: 'Bar/EscapeBar[/Keyboard/escape]'
|
||||
- m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1674052485383758547}
|
||||
|
@ -141,7 +141,7 @@ Rigidbody2D:
|
||||
m_Mass: 10
|
||||
m_LinearDamping: 0
|
||||
m_AngularDamping: 0
|
||||
m_GravityScale: 3
|
||||
m_GravityScale: 6
|
||||
m_Material: {fileID: 6200000, guid: 98be3277bd162b947a951461d0862c30, type: 2}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
@ -165,6 +165,6 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: f725398f0fbd88e43b707a988c2b347a, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_spriteRenderer: {fileID: 3772201455671009312}
|
||||
_rigidbody2D: {fileID: 3470010340248184897}
|
||||
SpriteRenderer: {fileID: 3772201455671009312}
|
||||
Rigidbody2D: {fileID: 3470010340248184897}
|
||||
_distanceThreshold: 0.5
|
||||
|
Loading…
Reference in New Issue
Block a user