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

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;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using MyGame.Scenes.Main.Scripts;
using MyGame.Scenes.marketing.Scripts; using MyGame.Scenes.marketing.Scripts;
using MyGame.Scripts; using MyGame.Scripts;
using TMPro; using TMPro;
@ -26,9 +27,10 @@ public class MarketManager : MonoBehaviour
[SerializeField] private Transform coinPrefab; [SerializeField] private Transform coinPrefab;
[SerializeField] private Transform rootTransform; [SerializeField] private Transform rootTransform;
[SerializeField] private TutorialObjectMask walkerMask; [SerializeField] private TutorialObjectMask walkerMask;
[SerializeField] private GameObject dollarBag;
private Market market; private Market market;
List<ProductData> productDataList; List<ProductData> productDataList;
private bool isPartTimer; private bool isPartTimerMode;
private readonly Subject<Unit> customerRewardTimerUpdateSubject = new Subject<Unit>(); private readonly Subject<Unit> customerRewardTimerUpdateSubject = new Subject<Unit>();
private readonly Subject<Unit> vipTimerUpdateSubject = new Subject<Unit>(); private readonly Subject<Unit> vipTimerUpdateSubject = new Subject<Unit>();
@ -41,7 +43,7 @@ public class MarketManager : MonoBehaviour
vipTimerUpdateSubject.AddTo(this); vipTimerUpdateSubject.AddTo(this);
market = WorldMarketManager.Instance.GetCurrentCityMarket(); market = WorldMarketManager.Instance.GetCurrentCityMarket();
market.CheckPartTimerMode(); market.CheckPartTimerMode();
isPartTimer = market.IsPartTimer; isPartTimerMode = market.IsPartTimer;
SoundManager.Instance.PlayBGM("bgm_marketing"); SoundManager.Instance.PlayBGM("bgm_marketing");
var globalGameData = GameDataManager.GameData; var globalGameData = GameDataManager.GameData;
@ -63,12 +65,36 @@ public class MarketManager : MonoBehaviour
// 最新の都市ではない場合、バイトが有効 // 最新の都市ではない場合、バイトが有効
if (!market.IsLatestCity) if (!market.IsLatestCity)
{ {
partTimerView.StartAnimation(isPartTimer); partTimerView.StartAnimation(isPartTimerMode);
} }
if (isPartTimer) dollarBag.SetActive(isPartTimerMode && cityGameData.PartTimerElapsed > 10);
if (isPartTimerMode)
{ {
rewardButtonView.gameObject.SetActive(false); rewardButtonView.gameObject.SetActive(false);
vipCustomerButtonView.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)) if (!globalGameData.FinishedFlags.HasFlag(TutorialFlag.FirstPlay))
@ -157,8 +183,8 @@ public class MarketManager : MonoBehaviour
{ {
vipCustomerButtonView.SetActive(isPause); vipCustomerButtonView.SetActive(isPause);
// バイト君モードでは兄弟非表示 // バイト君モードでは兄弟非表示
blueView.SetActive(!isPartTimer && !isPause); blueView.SetActive(!isPartTimerMode && !isPause);
BrotherPinkView.Instance.SetActive(!isPartTimer && !isPause); BrotherPinkView.Instance.SetActive(!isPartTimerMode && !isPause);
// 最新の都市ではない場合バイト非表示 // 最新の都市ではない場合バイト非表示
partTimerView.SetActive(!market.IsLatestCity && !isPause); partTimerView.SetActive(!market.IsLatestCity && !isPause);
}).AddTo(this); }).AddTo(this);
@ -313,7 +339,7 @@ displayFlavors: {market.DisplayFlavors.Aggregate("", (s, data) => $"{s},{data.Fl
.Subscribe(x => .Subscribe(x =>
{ {
var (isClose, isPromotion) = x; var (isClose, isPromotion) = x;
if (isClose || isPartTimer) if (isClose || isPartTimerMode)
{ {
BrotherPinkView.Instance.StopTasting(); BrotherPinkView.Instance.StopTasting();
rewardButtonView.gameObject.SetActive(false); rewardButtonView.gameObject.SetActive(false);
@ -491,7 +517,7 @@ displayFlavors: {market.DisplayFlavors.Aggregate("", (s, data) => $"{s},{data.Fl
}).AddTo(customerAnimator); }).AddTo(customerAnimator);
var eventTrigger = customerAnimator.gameObject.AddComponent<ObservableEventTrigger>(); var eventTrigger = customerAnimator.gameObject.AddComponent<ObservableEventTrigger>();
eventTrigger.OnPointerClickAsObservable() eventTrigger.OnPointerClickAsObservable()
.Where(_ => !isPartTimer) .Where(_ => !isPartTimerMode)
.Take(1) .Take(1)
.Subscribe(_ => .Subscribe(_ =>
{ {

View File

@ -3473,6 +3473,7 @@ MonoBehaviour:
type: 3} type: 3}
rootTransform: {fileID: 714437465} rootTransform: {fileID: 714437465}
walkerMask: {fileID: 237651842} walkerMask: {fileID: 237651842}
dollarBag: {fileID: 1217099569}
--- !u!1 &1026166058 --- !u!1 &1026166058
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -4171,6 +4172,8 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 1217099570} - component: {fileID: 1217099570}
- component: {fileID: 1217099571} - component: {fileID: 1217099571}
- component: {fileID: 1217099573}
- component: {fileID: 1217099572}
m_Layer: 5 m_Layer: 5
m_Name: DollarBag m_Name: DollarBag
m_TagString: Untagged m_TagString: Untagged
@ -4201,8 +4204,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 128, y: -321} m_AnchoredPosition: {x: 78, y: -271}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0, y: 1} m_Pivot: {x: 0, y: 1}
--- !u!95 &1217099571 --- !u!95 &1217099571
Animator: Animator:
@ -4224,6 +4227,30 @@ Animator:
m_HasTransformHierarchy: 1 m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1 m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorControllerStateOnDisable: 0 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 --- !u!1 &1235629312
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0