バイト君報酬のドル袋処理追加

This commit is contained in:
kimura 2022-11-04 15:18:37 +09:00
parent 7603bc9f38
commit d972107529
2 changed files with 63 additions and 10 deletions

View File

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using MyGame.Scenes.Main.Scripts;
using MyGame.Scenes.marketing.Scripts;
using MyGame.Scripts;
using TMPro;
@ -26,9 +27,10 @@ public class MarketManager : MonoBehaviour
[SerializeField] private Transform coinPrefab;
[SerializeField] private Transform rootTransform;
[SerializeField] private TutorialObjectMask walkerMask;
[SerializeField] private GameObject dollarBag;
private Market market;
List<ProductData> productDataList;
private bool isPartTimer;
private bool isPartTimerMode;
private readonly Subject<Unit> customerRewardTimerUpdateSubject = new Subject<Unit>();
private readonly Subject<Unit> vipTimerUpdateSubject = new Subject<Unit>();
@ -41,7 +43,7 @@ public class MarketManager : MonoBehaviour
vipTimerUpdateSubject.AddTo(this);
market = WorldMarketManager.Instance.GetCurrentCityMarket();
market.CheckPartTimerMode();
isPartTimer = market.IsPartTimer;
isPartTimerMode = market.IsPartTimer;
SoundManager.Instance.PlayBGM("bgm_marketing");
var globalGameData = GameDataManager.GameData;
@ -63,12 +65,36 @@ public class MarketManager : MonoBehaviour
// 最新の都市ではない場合、バイトが有効
if (!market.IsLatestCity)
{
partTimerView.StartAnimation(isPartTimer);
partTimerView.StartAnimation(isPartTimerMode);
}
if (isPartTimer)
dollarBag.SetActive(isPartTimerMode && cityGameData.PartTimerElapsed > 10);
if (isPartTimerMode)
{
rewardButtonView.gameObject.SetActive(false);
vipCustomerButtonView.gameObject.SetActive(false);
var partTimersData = SpreadsheetDataManager.Instance.GetBaseDataList<PartTimerData>(Const.PartTimerDataSheet);
dollarBag.AddComponent<ObservableEventTrigger>().OnPointerClickAsObservable().Take(1).Subscribe(_ =>
{
dollarBag.SetActive(false);
// dialog表示時点の値をcache
var partTimerElapsed = cityGameData.PartTimerElapsed;
EarningsReportDialog.ShowDialog((coinPos, heartPos) =>
{
var partTimerData = partTimersData.First(data => data.level == cityGameData.PartTimerLevel);
var (coin, heart) = PartTimerManager.CalcEarnings(partTimerData, partTimerElapsed);
cityGameData.WaitAddHeart += heart;
HeartMeter.Instance.AddHeartForBulkOrder(heartPos, () =>
{
cityGameData.MoveHeart(heart);
});
CoinManager.Instance.AddCoinForBulkOrder(coin, coinPos);
cityGameData.Coin = CoinManager.Instance.OwnCoin;
cityGameData.PartTimerElapsed -= partTimerElapsed;
globalGameData.ShopCustomizeCoin += PartTimerManager.Instance.GetCustomizeCoin();
GameDataManager.SaveGameData();
});
}).AddTo(this);
}
if (!globalGameData.FinishedFlags.HasFlag(TutorialFlag.FirstPlay))
@ -157,8 +183,8 @@ public class MarketManager : MonoBehaviour
{
vipCustomerButtonView.SetActive(isPause);
// バイト君モードでは兄弟非表示
blueView.SetActive(!isPartTimer && !isPause);
BrotherPinkView.Instance.SetActive(!isPartTimer && !isPause);
blueView.SetActive(!isPartTimerMode && !isPause);
BrotherPinkView.Instance.SetActive(!isPartTimerMode && !isPause);
// 最新の都市ではない場合バイト非表示
partTimerView.SetActive(!market.IsLatestCity && !isPause);
}).AddTo(this);
@ -313,7 +339,7 @@ displayFlavors: {market.DisplayFlavors.Aggregate("", (s, data) => $"{s},{data.Fl
.Subscribe(x =>
{
var (isClose, isPromotion) = x;
if (isClose || isPartTimer)
if (isClose || isPartTimerMode)
{
BrotherPinkView.Instance.StopTasting();
rewardButtonView.gameObject.SetActive(false);
@ -491,7 +517,7 @@ displayFlavors: {market.DisplayFlavors.Aggregate("", (s, data) => $"{s},{data.Fl
}).AddTo(customerAnimator);
var eventTrigger = customerAnimator.gameObject.AddComponent<ObservableEventTrigger>();
eventTrigger.OnPointerClickAsObservable()
.Where(_ => !isPartTimer)
.Where(_ => !isPartTimerMode)
.Take(1)
.Subscribe(_ =>
{

View File

@ -3473,6 +3473,7 @@ MonoBehaviour:
type: 3}
rootTransform: {fileID: 714437465}
walkerMask: {fileID: 237651842}
dollarBag: {fileID: 1217099569}
--- !u!1 &1026166058
GameObject:
m_ObjectHideFlags: 0
@ -4171,6 +4172,8 @@ GameObject:
m_Component:
- component: {fileID: 1217099570}
- component: {fileID: 1217099571}
- component: {fileID: 1217099573}
- component: {fileID: 1217099572}
m_Layer: 5
m_Name: DollarBag
m_TagString: Untagged
@ -4201,8 +4204,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 128, y: -321}
m_SizeDelta: {x: 0, y: 0}
m_AnchoredPosition: {x: 78, y: -271}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0, y: 1}
--- !u!95 &1217099571
Animator:
@ -4224,6 +4227,30 @@ Animator:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorControllerStateOnDisable: 0
--- !u!114 &1217099572
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1217099569}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ee012d4774ae943b49c2443232200135, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &1217099573
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1217099569}
m_CullTransparentMesh: 1
--- !u!1 &1235629312
GameObject:
m_ObjectHideFlags: 0