Merge branch 'develop' of bitbucket.org:usaya/popcorn into develop
This commit is contained in:
commit
e551edae50
|
|
@ -111,7 +111,7 @@ RectTransform:
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 0, y: 600}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &4293843006989820483
|
--- !u!222 &4293843006989820483
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
|
|
|
||||||
|
|
@ -14768,7 +14768,7 @@ PrefabInstance:
|
||||||
- target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28,
|
- target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_SizeDelta.y
|
propertyPath: m_SizeDelta.y
|
||||||
value: 0
|
value: 600
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28,
|
- target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||||
type: 3}
|
type: 3}
|
||||||
|
|
@ -14848,7 +14848,7 @@ PrefabInstance:
|
||||||
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_SizeDelta.y
|
propertyPath: m_SizeDelta.y
|
||||||
value: 806.6114
|
value: 826.3005
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||||
type: 3}
|
type: 3}
|
||||||
|
|
@ -14858,12 +14858,12 @@ PrefabInstance:
|
||||||
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: 173.4
|
value: 183.2
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7550014134400670843, guid: 1c993e9707f1a4fada56020be27dde28,
|
- target: {fileID: 7550014134400670843, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: -565
|
value: 65
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 1c993e9707f1a4fada56020be27dde28, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: 1c993e9707f1a4fada56020be27dde28, type: 3}
|
||||||
|
|
|
||||||
|
|
@ -948,7 +948,7 @@ MonoBehaviour:
|
||||||
m_SelectOnDown: {fileID: 0}
|
m_SelectOnDown: {fileID: 0}
|
||||||
m_SelectOnLeft: {fileID: 0}
|
m_SelectOnLeft: {fileID: 0}
|
||||||
m_SelectOnRight: {fileID: 0}
|
m_SelectOnRight: {fileID: 0}
|
||||||
m_Transition: 1
|
m_Transition: 0
|
||||||
m_Colors:
|
m_Colors:
|
||||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
|
@ -1750,7 +1750,7 @@ MonoBehaviour:
|
||||||
m_SelectOnDown: {fileID: 0}
|
m_SelectOnDown: {fileID: 0}
|
||||||
m_SelectOnLeft: {fileID: 0}
|
m_SelectOnLeft: {fileID: 0}
|
||||||
m_SelectOnRight: {fileID: 0}
|
m_SelectOnRight: {fileID: 0}
|
||||||
m_Transition: 1
|
m_Transition: 0
|
||||||
m_Colors:
|
m_Colors:
|
||||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@ public class CornField : MonoBehaviour
|
||||||
|
|
||||||
SetCornField();
|
SetCornField();
|
||||||
|
|
||||||
upgradeButton.OnClickAsObservable().Subscribe(_ =>
|
upgradeButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
LocalCacheManager.Save(CornFieldReinforcement.CornFieldResetCallbackTag, new Action(() => SetCornField()));
|
LocalCacheManager.Save(CornFieldReinforcement.CornFieldResetCallbackTag, new Action(() => SetCornField()));
|
||||||
TransitionManager.Instance.LoadSceneAdditive(GameScenes.Reinforcement);
|
TransitionManager.Instance.LoadSceneAdditive(GameScenes.Reinforcement);
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ public class CornFieldReinforcement : MonoBehaviour
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
compositeDisposable.AddTo(this);
|
compositeDisposable.AddTo(this);
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
LocalCacheManager.Remove(CornFieldReinforcementDataTypeTag);
|
LocalCacheManager.Remove(CornFieldReinforcementDataTypeTag);
|
||||||
LocalCacheManager.Remove(CornFieldReinforcementDataTag);
|
LocalCacheManager.Remove(CornFieldReinforcementDataTag);
|
||||||
|
|
@ -53,7 +53,7 @@ public class CornFieldReinforcement : MonoBehaviour
|
||||||
view.SetButtonActive(price <= CoinManager.Instance.OwnCoin);
|
view.SetButtonActive(price <= CoinManager.Instance.OwnCoin);
|
||||||
view.SetReinforcement(lineData, price);
|
view.SetReinforcement(lineData, price);
|
||||||
// 購入ボタン
|
// 購入ボタン
|
||||||
view.ButtonClickObserve.Subscribe(_ =>
|
view.ButtonClickObserve.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, upgradeType);
|
LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, upgradeType);
|
||||||
LocalCacheManager.Save(CornFieldReinforcementDataTag, (lineData, price, new Action(() => {
|
LocalCacheManager.Save(CornFieldReinforcementDataTag, (lineData, price, new Action(() => {
|
||||||
|
|
@ -71,7 +71,7 @@ public class CornFieldReinforcement : MonoBehaviour
|
||||||
view.SetButtonActive(price <= CoinManager.Instance.OwnCoin);
|
view.SetButtonActive(price <= CoinManager.Instance.OwnCoin);
|
||||||
view.SetRelease(price);
|
view.SetRelease(price);
|
||||||
// 購入ボタン
|
// 購入ボタン
|
||||||
view.ButtonClickObserve.Subscribe(_ =>
|
view.ButtonClickObserve.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, upgradeType);
|
LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, upgradeType);
|
||||||
LocalCacheManager.Save(CornFieldReinforcementDataTag, (lineData = null, price, new Action(() => {
|
LocalCacheManager.Save(CornFieldReinforcementDataTag, (lineData = null, price, new Action(() => {
|
||||||
|
|
@ -97,7 +97,7 @@ public class CornFieldReinforcement : MonoBehaviour
|
||||||
machineUpgradeView.SetButtonActive(price <= CoinManager.Instance.OwnCoin);
|
machineUpgradeView.SetButtonActive(price <= CoinManager.Instance.OwnCoin);
|
||||||
machineUpgradeView.SetData(gameData.MachineLevel, price);
|
machineUpgradeView.SetData(gameData.MachineLevel, price);
|
||||||
// 購入ボタン
|
// 購入ボタン
|
||||||
machineUpgradeView.ButtonClickObserve.Subscribe(_ =>
|
machineUpgradeView.ButtonClickObserve.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, CornFieldUpgradeType.Machine);
|
LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, CornFieldUpgradeType.Machine);
|
||||||
LocalCacheManager.Save(CornFieldReinforcementDataTag, (gameData.MachineLevel, price, new Action(() => {
|
LocalCacheManager.Save(CornFieldReinforcementDataTag, (gameData.MachineLevel, price, new Action(() => {
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ public class CornFieldReinforcementDetailView : MonoBehaviour
|
||||||
default:
|
default:
|
||||||
throw new ArgumentOutOfRangeException();
|
throw new ArgumentOutOfRangeException();
|
||||||
}
|
}
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
transform.SetLocalScale(0);
|
transform.SetLocalScale(0);
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
|
|
@ -66,8 +66,11 @@ public class CornFieldReinforcementDetailView : MonoBehaviour
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
purchaseButton.OnClickAsObservable()
|
purchaseButton.OnClickAsObservable()
|
||||||
.Merge(releaseButton.OnClickAsObservable())
|
.Merge(releaseButton.OnClickAsObservable())
|
||||||
.Subscribe(_ =>
|
.Take(1)
|
||||||
|
.Subscribe(_ => { }, () =>
|
||||||
{
|
{
|
||||||
|
purchaseButton.interactable = false;
|
||||||
|
releaseButton.interactable = false;
|
||||||
// 購入処理
|
// 購入処理
|
||||||
callback?.Invoke();
|
callback?.Invoke();
|
||||||
transform.SetLocalScale(0);
|
transform.SetLocalScale(0);
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ GameObject:
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 9117079084301130545}
|
- component: {fileID: 9117079084301130545}
|
||||||
- component: {fileID: 9117079084301130544}
|
- component: {fileID: 9117079084301130544}
|
||||||
|
- component: {fileID: 8528884583953186477}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: UICamera
|
m_Name: UICamera
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
|
|
@ -74,3 +75,15 @@ Camera:
|
||||||
m_OcclusionCulling: 0
|
m_OcclusionCulling: 0
|
||||||
m_StereoConvergence: 10
|
m_StereoConvergence: 10
|
||||||
m_StereoSeparation: 0.022
|
m_StereoSeparation: 0.022
|
||||||
|
--- !u!114 &8528884583953186477
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9117079084301130547}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: c11194ed6fd84a1f812fa2cfae75f873, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ public class BulkOrder : MonoBehaviour
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
transform.parent.SetLocalScale(0);
|
transform.parent.SetLocalScale(0);
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ public class BulkOrderAchievedView : MonoBehaviour
|
||||||
messageText.text = messageList.First(data => data.id == gameData.OrderTextId).thanksText;
|
messageText.text = messageList.First(data => data.id == gameData.OrderTextId).thanksText;
|
||||||
orderCharacterImage.sprite = bulkOrderCharacter.GetThanksIcon(gameData.OrderIconIndex);
|
orderCharacterImage.sprite = bulkOrderCharacter.GetThanksIcon(gameData.OrderIconIndex);
|
||||||
}
|
}
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
if (LocalCacheManager.Load<Action>(BulkOrder.AchievedCallbackTag, null) is Action callback)
|
if (LocalCacheManager.Load<Action>(BulkOrder.AchievedCallbackTag, null) is Action callback)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ public class BulkOrderCancelView : MonoBehaviour
|
||||||
coinText.text = orderData.rewardCoin.ToString();
|
coinText.text = orderData.rewardCoin.ToString();
|
||||||
heartText.text = orderData.rewardHeart.ToString();
|
heartText.text = orderData.rewardHeart.ToString();
|
||||||
}
|
}
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
transform.parent.SetLocalScale(0);
|
transform.parent.SetLocalScale(0);
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
|
|
@ -30,7 +30,7 @@ public class BulkOrderCancelView : MonoBehaviour
|
||||||
TransitionManager.Instance.UnloadScene(GameScenes.BulkOrderCancel);
|
TransitionManager.Instance.UnloadScene(GameScenes.BulkOrderCancel);
|
||||||
});
|
});
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
cancelButton.OnClickAsObservable().Subscribe(_ =>
|
cancelButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
if (LocalCacheManager.Load<Action>(BulkOrder.CancelCallbackTag, null) is Action callback)
|
if (LocalCacheManager.Load<Action>(BulkOrder.CancelCallbackTag, null) is Action callback)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ public class BulkOrderNotifyView : MonoBehaviour
|
||||||
itemView3.SetActive(false);
|
itemView3.SetActive(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
transform.parent.SetLocalScale(0);
|
transform.parent.SetLocalScale(0);
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ public class Information : MonoBehaviour
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
transform.SetLocalScale(0);
|
transform.SetLocalScale(0);
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,8 @@ public class KitchenManager : MonoBehaviour
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
|
|
||||||
SoundManager.Instance.PlayBGM("bgm_Main");
|
// 実機でアプリ初回起動時にBGMならないの回避。1フレーム遅らせると鳴る
|
||||||
|
Observable.NextFrame().Subscribe(_ => SoundManager.Instance.PlayBGM("bgm_Main"));
|
||||||
var gameData = GameDataManager.GameData;
|
var gameData = GameDataManager.GameData;
|
||||||
|
|
||||||
// レシピの表示
|
// レシピの表示
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ public class MissionCompleteView : MonoBehaviour
|
||||||
{
|
{
|
||||||
var (missionData, callback) = LocalCacheManager.Load< (MissionData, Action)>(MissionManager.MissionDataTag);
|
var (missionData, callback) = LocalCacheManager.Load< (MissionData, Action)>(MissionManager.MissionDataTag);
|
||||||
LocalCacheManager.Remove(MissionManager.MissionDataTag);
|
LocalCacheManager.Remove(MissionManager.MissionDataTag);
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
callback?.Invoke();
|
callback?.Invoke();
|
||||||
transform.SetLocalScale(0);
|
transform.SetLocalScale(0);
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ public class MissionManager : MonoBehaviour
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
LocalCacheManager.Remove(MissionDataTag);
|
LocalCacheManager.Remove(MissionDataTag);
|
||||||
transform.SetLocalScale(0);
|
transform.SetLocalScale(0);
|
||||||
|
|
@ -76,7 +76,7 @@ public class MissionManager : MonoBehaviour
|
||||||
{
|
{
|
||||||
count = gameData.dailyMissionIdArray.Length,
|
count = gameData.dailyMissionIdArray.Length,
|
||||||
reward = dailyMissionCompleteRewardCoin,
|
reward = dailyMissionCompleteRewardCoin,
|
||||||
text = "デイリーミッションすべて完了で達成",
|
text = "デイリーミッションを達成しよう",
|
||||||
category = (int)MissionCategory.Daily,
|
category = (int)MissionCategory.Daily,
|
||||||
};
|
};
|
||||||
var progressValue = gameData.dailyMissionAchievedIdArray.Length;
|
var progressValue = gameData.dailyMissionAchievedIdArray.Length;
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ namespace MyGame.Scenes.Settings.Scripts
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
SoundManager.Instance.SaveVolumeBGM();
|
SoundManager.Instance.SaveVolumeBGM();
|
||||||
SoundManager.Instance.SaveVolumeSE();
|
SoundManager.Instance.SaveVolumeSE();
|
||||||
|
|
|
||||||
|
|
@ -99,16 +99,17 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
|
|
||||||
// 購入リクエスト
|
// 購入リクエスト
|
||||||
var maxOrder = orderPosisionObject.transform.childCount;
|
var maxOrder = orderPosisionObject.transform.childCount;
|
||||||
orderSubject.Do(_ => { Debug.Log($"aa orderSubject");})
|
Observable.Merge(
|
||||||
.Merge(waitCustomerList.ObserveAdd().AsUnitObservable().Do(_ => { Debug.Log($"aa waitCustomerListAdd");}))
|
orderSubject /*.Do(_ => { Debug.Log($"aa orderSubject");})*/,
|
||||||
.Merge(shopState.Where(x => x == ShopState.Open).AsUnitObservable().Do(_ => { Debug.Log($"aa shopStateOpen");}))
|
waitCustomerList.ObserveAdd().AsUnitObservable() /*.Do(_ => { Debug.Log($"aa waitCustomerListAdd");})*/,
|
||||||
|
shopState.Where(x => x == ShopState.Open).AsUnitObservable() /*.Do(_ => { Debug.Log($"aa shopStateOpen");})*/
|
||||||
|
)
|
||||||
.BatchFrame()
|
.BatchFrame()
|
||||||
.Where(_ => waitCustomerList.Count > 0)
|
.Where(_ => waitCustomerList.Count > 0)
|
||||||
.SelectMany(_ => waitCustomerList.ToList().GetRange(0, Mathf.Min(maxOrder, waitCustomerList.Count)))
|
.SelectMany(_ => waitCustomerList.ToList().GetRange(0, Mathf.Min(maxOrder, waitCustomerList.Count)))
|
||||||
.Subscribe(customer =>
|
.Subscribe(customer =>
|
||||||
{
|
{
|
||||||
var count = customerList.Count(x => x.State.Value == CustomerState.Order);
|
var count = customerList.Count(x => x.State.Value == CustomerState.Order);
|
||||||
Debug.Log($"aa order:{count} Request {Time.time} {customer.GetHashCode()}");
|
|
||||||
if (count >= maxOrder)
|
if (count >= maxOrder)
|
||||||
{
|
{
|
||||||
// shopState.Value = ShopState.Busy;
|
// shopState.Value = ShopState.Busy;
|
||||||
|
|
@ -171,8 +172,17 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Debug.LogError($"d:{displayFlavors.Count}, {string.Join("", tmpOrders)}");
|
Debug.LogError($"d:{displayFlavors.Count}, {string.Join("", tmpOrders)}" +
|
||||||
throw;
|
$"\nshuffled:{shuffledOrder.Count}, maxNum:{shuffledOrder.Max()}");
|
||||||
|
/*
|
||||||
|
* 例外握りつぶし
|
||||||
|
* 存在しないorderを引いたのでそのまま処理せず逃がす
|
||||||
|
*/
|
||||||
|
controller.CallWaitForSeconds(1.5f, () =>
|
||||||
|
{
|
||||||
|
controller.ChangeCustomerState(CustomerState.Leave);
|
||||||
|
});
|
||||||
|
dontBuyCustomerList.Add(controller);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach (var customerController in dontBuyCustomerList)
|
foreach (var customerController in dontBuyCustomerList)
|
||||||
|
|
@ -470,9 +480,26 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
}
|
}
|
||||||
// 補充候補リスト
|
// 補充候補リスト
|
||||||
var orders = Enumerable.Range(0, shopStock.Count).Except(shuffledOrder).ToList();
|
var orders = Enumerable.Range(0, shopStock.Count).Except(shuffledOrder).ToList();
|
||||||
var refillList = orders.OrderBy(_ => Random.value).ToList();
|
var refillList = orders.GetRange(0, refillCount).OrderBy(_ => Random.value).ToList();
|
||||||
shuffledOrder.AddRange(refillList);
|
shuffledOrder.AddRange(refillList);
|
||||||
displayFlavors = shopStock.ToList();
|
try
|
||||||
|
{
|
||||||
|
if (displayFlavors.Count <= shopStock.Count)
|
||||||
|
{
|
||||||
|
displayFlavors = shopStock.ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < refillList.Count; i++)
|
||||||
|
{
|
||||||
|
displayFlavors[refillList[i]] = shopStock[shopStock.Count - 1 - i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
return refillList;
|
return refillList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,23 @@ public class MarketManager : MonoBehaviour
|
||||||
|
|
||||||
productDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(Const.ProductDataSheet);
|
productDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(Const.ProductDataSheet);
|
||||||
stockView.SetStock(gameData.StorageTanks);
|
stockView.SetStock(gameData.StorageTanks);
|
||||||
var startStocks = market.ShuffledOrder.Select(x => (x, market.DisplayFlavors[x])).ToList();
|
List<(int, ProductStockData)> startStocks;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
startStocks = market.ShuffledOrder.Select(x => (x, market.DisplayFlavors[x])).ToList();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
Debug.LogError($"{market.ShuffledOrder.Count}, {market.DisplayFlavors.Count}");
|
||||||
|
#endif
|
||||||
|
/*
|
||||||
|
* 例外握りつぶし
|
||||||
|
*/
|
||||||
|
startStocks = market.ShuffledOrder
|
||||||
|
.Where(x => x < market.DisplayFlavors.Count)
|
||||||
|
.Select(x => (x, market.DisplayFlavors[x])).ToList();
|
||||||
|
}
|
||||||
cartView.Initialize();
|
cartView.Initialize();
|
||||||
cartView.SetStock(startStocks, false);
|
cartView.SetStock(startStocks, false);
|
||||||
BrotherPinkView.Instance.SetBrotherView(pinkTarget);
|
BrotherPinkView.Instance.SetBrotherView(pinkTarget);
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ public class ShopLevelUp : MonoBehaviour
|
||||||
var shopLevel = LocalCacheManager.Load<int>(DataTag);
|
var shopLevel = LocalCacheManager.Load<int>(DataTag);
|
||||||
var scriptList = SpreadsheetDataManager.Instance.GetBaseDataList<BrotherScriptData>(Const.ScriptDataSheet);
|
var scriptList = SpreadsheetDataManager.Instance.GetBaseDataList<BrotherScriptData>(Const.ScriptDataSheet);
|
||||||
var targetScriptList = scriptList.Where(data => data.id == shopLevel).ToList();
|
var targetScriptList = scriptList.Where(data => data.id == shopLevel).ToList();
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
transform.SetLocalScale(0);
|
transform.SetLocalScale(0);
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ public class TankDetailView : MonoBehaviour
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
var data = LocalCacheManager.Load<(int tankNum, int totalStock, StorageTank tankData, ProductData productData, List<(ProductRarity rarity, int price, int stock)> raritySummaryData)>(TankDetailDataTag);
|
var data = LocalCacheManager.Load<(int tankNum, int totalStock, StorageTank tankData, ProductData productData, List<(ProductRarity rarity, int price, int stock)> raritySummaryData)>(TankDetailDataTag);
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
transform.SetLocalScale(0);
|
transform.SetLocalScale(0);
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ public class TastingView : MonoBehaviour
|
||||||
packageImageTarget.DestroyAllChildrens();
|
packageImageTarget.DestroyAllChildrens();
|
||||||
Instantiate(x.productData.GetIconPrefab(), packageImageTarget);
|
Instantiate(x.productData.GetIconPrefab(), packageImageTarget);
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
this.CallWaitForSeconds(.5f, () =>
|
this.CallWaitForSeconds(.5f, () =>
|
||||||
|
|
@ -34,7 +34,7 @@ public class TastingView : MonoBehaviour
|
||||||
TransitionManager.Instance.UnloadScene(GameScenes.Tasting);
|
TransitionManager.Instance.UnloadScene(GameScenes.Tasting);
|
||||||
});
|
});
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
tastingButton.OnClickAsObservable().Subscribe(_ =>
|
tastingButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
this.CallWaitForSeconds(.5f, () =>
|
this.CallWaitForSeconds(.5f, () =>
|
||||||
|
|
|
||||||
|
|
@ -1064,6 +1064,7 @@ GameObject:
|
||||||
- component: {fileID: 658354829}
|
- component: {fileID: 658354829}
|
||||||
- component: {fileID: 658354828}
|
- component: {fileID: 658354828}
|
||||||
- component: {fileID: 658354831}
|
- component: {fileID: 658354831}
|
||||||
|
- component: {fileID: 658354832}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Main Camera
|
m_Name: Main Camera
|
||||||
m_TagString: MainCamera
|
m_TagString: MainCamera
|
||||||
|
|
@ -1110,7 +1111,7 @@ Camera:
|
||||||
m_Depth: -1
|
m_Depth: -1
|
||||||
m_CullingMask:
|
m_CullingMask:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 4294967295
|
m_Bits: 23
|
||||||
m_RenderingPath: -1
|
m_RenderingPath: -1
|
||||||
m_TargetTexture: {fileID: 0}
|
m_TargetTexture: {fileID: 0}
|
||||||
m_TargetDisplay: 0
|
m_TargetDisplay: 0
|
||||||
|
|
@ -1152,6 +1153,18 @@ MonoBehaviour:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 4294967295
|
m_Bits: 4294967295
|
||||||
m_MaxRayIntersections: 0
|
m_MaxRayIntersections: 0
|
||||||
|
--- !u!114 &658354832
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 658354827}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: c11194ed6fd84a1f812fa2cfae75f873, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &658817260
|
--- !u!1 &658817260
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -1636,7 +1649,7 @@ PrefabInstance:
|
||||||
- target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28,
|
- target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_SizeDelta.y
|
propertyPath: m_SizeDelta.y
|
||||||
value: 0
|
value: 400
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28,
|
- target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||||
type: 3}
|
type: 3}
|
||||||
|
|
@ -1736,7 +1749,7 @@ PrefabInstance:
|
||||||
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_SizeDelta.y
|
propertyPath: m_SizeDelta.y
|
||||||
value: -653.7666
|
value: -1063.2974
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||||
type: 3}
|
type: 3}
|
||||||
|
|
@ -1746,7 +1759,7 @@ PrefabInstance:
|
||||||
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: 58.699707
|
value: 58.69995
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 1c993e9707f1a4fada56020be27dde28, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: 1c993e9707f1a4fada56020be27dde28, type: 3}
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ public class RecipeDetailView : MonoBehaviour
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cancelButton.OnClickAsObservable().Subscribe(_ =>
|
cancelButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
transform.parent.SetLocalScale(0);
|
transform.parent.SetLocalScale(0);
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
|
|
@ -76,7 +76,7 @@ public class RecipeDetailView : MonoBehaviour
|
||||||
});
|
});
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
nextButton.OnClickAsObservable().Subscribe(_ =>
|
nextButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
LocalCacheManager.Save(PopcornGameManager.PanDataTag, panSelector.SelectedPanData.Value);
|
LocalCacheManager.Save(PopcornGameManager.PanDataTag, panSelector.SelectedPanData.Value);
|
||||||
// 消費
|
// 消費
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ public class RecipeSelectDialog : MonoBehaviour
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
var gameData = GameDataManager.GameData;
|
var gameData = GameDataManager.GameData;
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
transform.SetLocalScale(0);
|
transform.SetLocalScale(0);
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
|
|
@ -56,7 +56,7 @@ public class RecipeSelectDialog : MonoBehaviour
|
||||||
if (hasRecipe)
|
if (hasRecipe)
|
||||||
{
|
{
|
||||||
view.SetLockPanel(false);
|
view.SetLockPanel(false);
|
||||||
view.RecipeClickObservable.Subscribe(_ =>
|
view.RecipeClickObservable.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
LocalCacheManager.Save(PopcornGameManager.CookingDataTag, productData);
|
LocalCacheManager.Save(PopcornGameManager.CookingDataTag, productData);
|
||||||
RecipeDetailView.ShowDialog(() =>
|
RecipeDetailView.ShowDialog(() =>
|
||||||
|
|
|
||||||
|
|
@ -133,6 +133,16 @@ PrefabInstance:
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: 50
|
value: 50
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 9133304335268316946, guid: 3ea48dc60c16147799619e2fb9fe1cd9,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_Transition
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 9133304335268316946, guid: 3ea48dc60c16147799619e2fb9fe1cd9,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_Interactable
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 9133304335334808081, guid: 3ea48dc60c16147799619e2fb9fe1cd9,
|
- target: {fileID: 9133304335334808081, guid: 3ea48dc60c16147799619e2fb9fe1cd9,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ public class ShopItemDetailView : MonoBehaviour
|
||||||
{
|
{
|
||||||
var data = LocalCacheManager.Load<ShopData>(ItemDetailTag);
|
var data = LocalCacheManager.Load<ShopData>(ItemDetailTag);
|
||||||
SetData(data);
|
SetData(data);
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
transform.SetLocalScale(0);
|
transform.SetLocalScale(0);
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ public class ShopItemPurchaseView : MonoBehaviour
|
||||||
var data = LocalCacheManager.Load<(ShopData shopData, int stockCount)>(ItemPurchaseTag);
|
var data = LocalCacheManager.Load<(ShopData shopData, int stockCount)>(ItemPurchaseTag);
|
||||||
LocalCacheManager.Remove(ItemPurchaseTag);
|
LocalCacheManager.Remove(ItemPurchaseTag);
|
||||||
SetData(data.shopData, data.stockCount);
|
SetData(data.shopData, data.stockCount);
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
LocalCacheManager.Load<Action>(CloseCallbackTag, null)?.Invoke();
|
LocalCacheManager.Load<Action>(CloseCallbackTag, null)?.Invoke();
|
||||||
transform.SetLocalScale(0);
|
transform.SetLocalScale(0);
|
||||||
|
|
@ -53,8 +53,9 @@ public class ShopItemPurchaseView : MonoBehaviour
|
||||||
TransitionManager.Instance.UnloadScene(GameScenes.Purchase);
|
TransitionManager.Instance.UnloadScene(GameScenes.Purchase);
|
||||||
});
|
});
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
purchaseOnButton.OnClickAsObservable().Subscribe(_ =>
|
purchaseOnButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
|
purchaseOnButton.interactable = false;
|
||||||
LocalCacheManager.Load<Action<int>>(PurchaseCallbackTag, null)?.Invoke(currentCount.Value);
|
LocalCacheManager.Load<Action<int>>(PurchaseCallbackTag, null)?.Invoke(currentCount.Value);
|
||||||
transform.SetLocalScale(0);
|
transform.SetLocalScale(0);
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ public class Shopping : MonoBehaviour
|
||||||
}).AddTo(itemView);
|
}).AddTo(itemView);
|
||||||
// アイテム購入クリック購読
|
// アイテム購入クリック購読
|
||||||
itemView.PurchaseButtonObservable
|
itemView.PurchaseButtonObservable
|
||||||
|
.ThrottleFirst(TimeSpan.FromSeconds(.3f))
|
||||||
.Where(_ => shopData.price <= CoinManager.Instance.OwnCoin)
|
.Where(_ => shopData.price <= CoinManager.Instance.OwnCoin)
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
|
|
@ -77,7 +78,7 @@ public class Shopping : MonoBehaviour
|
||||||
});
|
});
|
||||||
}).AddTo(itemView);
|
}).AddTo(itemView);
|
||||||
// show detail view
|
// show detail view
|
||||||
itemView.DetailButtonObservable.Subscribe(_ =>
|
itemView.DetailButtonObservable.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
LocalCacheManager.Save(ShopItemDetailView.ItemDetailTag, shopData);
|
LocalCacheManager.Save(ShopItemDetailView.ItemDetailTag, shopData);
|
||||||
TransitionManager.Instance.LoadSceneAdditive(GameScenes.ShoppingExplanation);
|
TransitionManager.Instance.LoadSceneAdditive(GameScenes.ShoppingExplanation);
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ public sealed class ApplicationExitConfirmDialogManager : MonoBehaviour
|
||||||
{
|
{
|
||||||
backButton.OnClickAsObservable()
|
backButton.OnClickAsObservable()
|
||||||
.Merge(closeButton.OnClickAsObservable())
|
.Merge(closeButton.OnClickAsObservable())
|
||||||
|
.Take(1)
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
transform.parent.SetLocalScale(0);
|
transform.parent.SetLocalScale(0);
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,9 @@ namespace MyGame.Scripts
|
||||||
case GameScenes.Main:
|
case GameScenes.Main:
|
||||||
camera.orthographicSize = 14f;
|
camera.orthographicSize = 14f;
|
||||||
break;
|
break;
|
||||||
|
case GameScenes.marketing:
|
||||||
|
camera.orthographicSize = 13.5f;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,58 +7,143 @@ using UnityEngine;
|
||||||
public class GameDataObserver : SingletonMonoBehaviour<GameDataObserver>
|
public class GameDataObserver : SingletonMonoBehaviour<GameDataObserver>
|
||||||
{
|
{
|
||||||
[SerializeField] private FloatReactiveProperty checkInterval = new FloatReactiveProperty(.1f);
|
[SerializeField] private FloatReactiveProperty checkInterval = new FloatReactiveProperty(.1f);
|
||||||
private IObservable<int> heartObserver;
|
private readonly Subject<int> heartObserver = new Subject<int>();
|
||||||
public IObservable<int> Heart => heartObserver;
|
private readonly Subject<int> sceneCounter = new Subject<int>();
|
||||||
|
private readonly Subject<int> shopLevelObserver = new Subject<int>();
|
||||||
|
private readonly Subject<int> achievedMissionObserver = new Subject<int>();
|
||||||
|
private readonly Subject<int> addCoinObserver = new Subject<int>();
|
||||||
|
private readonly Subject<int> subCoinObserver = new Subject<int>();
|
||||||
|
private readonly Subject<int> addCornObserver = new Subject<int>();
|
||||||
|
private readonly Subject<int> addCustomerObserver = new Subject<int>();
|
||||||
|
private readonly Subject<int> addSalesObserver = new Subject<int>();
|
||||||
|
private readonly Subject<int> addRareSalesObserver = new Subject<int>();
|
||||||
|
private readonly Subject<int> hasRecipeObserver = new Subject<int>();
|
||||||
|
private readonly Subject<int> deliveredBulkOrderObserver = new Subject<int>();
|
||||||
|
private readonly BoolReactiveProperty updateMissionAchieved = new BoolReactiveProperty();
|
||||||
|
public IReadOnlyReactiveProperty<bool> UpdateMissionAchieved => updateMissionAchieved;
|
||||||
|
|
||||||
private IObservable<int> sceneCounter;
|
public IObservable<bool> ShopLevelUpdate { get; private set; }
|
||||||
public IObservable<int> SceneCounter => sceneCounter;
|
|
||||||
|
|
||||||
public IObservable<bool> ShopLevelUpdate;
|
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
checkInterval.AddTo(this);
|
checkInterval.AddTo(this);
|
||||||
|
updateMissionAchieved.AddTo(this);
|
||||||
var levelList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopLevelData>(Const.ShopLevelDataSheet);
|
var levelList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopLevelData>(Const.ShopLevelDataSheet);
|
||||||
heartObserver = checkInterval
|
checkInterval.Select(x => Observable.Interval(TimeSpan.FromSeconds(x))).Switch().Subscribe(_ =>
|
||||||
.Select(x =>
|
{
|
||||||
Observable.Interval(TimeSpan.FromSeconds(x))
|
var gameData = GameDataManager.GameData;
|
||||||
.Select(_ => GameDataManager.GameData.Heart)
|
heartObserver.OnNext(gameData.Heart);
|
||||||
.DistinctUntilChanged())
|
sceneCounter.OnNext(UnityEngine.SceneManagement.SceneManager.sceneCount);
|
||||||
.Switch();
|
shopLevelObserver.OnNext(gameData.ViewedShopLevel);
|
||||||
|
achievedMissionObserver.OnNext(gameData.AchievedMission.Count);
|
||||||
var shopLevelObserver = checkInterval
|
// addCoinObserver.OnNext(gameData.TotalAddCoin);
|
||||||
.Select(x =>
|
subCoinObserver.OnNext(gameData.TotalSubCoin);
|
||||||
Observable.Interval(TimeSpan.FromSeconds(x))
|
addCornObserver.OnNext(gameData.TotalAddCornSeed);
|
||||||
.Select(_ => GameDataManager.GameData.ViewedShopLevel)
|
addCustomerObserver.OnNext(gameData.TotalCustomerCount);
|
||||||
.DistinctUntilChanged())
|
addSalesObserver.OnNext(gameData.TotalSales);
|
||||||
.Switch();
|
addRareSalesObserver.OnNext(gameData.RareTotalSales);
|
||||||
|
hasRecipeObserver.OnNext(gameData.MyRecipes.Length);
|
||||||
|
deliveredBulkOrderObserver.OnNext(gameData.BulkOrderDeliveredCount);
|
||||||
|
}).AddTo(this);
|
||||||
|
|
||||||
sceneCounter = checkInterval
|
ShopLevelUpdate = Observable.CombineLatest(
|
||||||
.Select(x =>
|
heartObserver.DistinctUntilChanged(),
|
||||||
Observable.Interval(TimeSpan.FromSeconds(x))
|
sceneCounter.DistinctUntilChanged().Delay(TimeSpan.FromSeconds(.4f)),
|
||||||
.Select(_ => UnityEngine.SceneManagement.SceneManager.sceneCount)
|
(heart, sceneCount) =>
|
||||||
.DistinctUntilChanged()
|
|
||||||
.Delay(TimeSpan.FromSeconds(.4f))
|
|
||||||
// .Do(c => { Debug.Log($"sceneCount:{c}");})
|
|
||||||
)
|
|
||||||
.Switch();
|
|
||||||
|
|
||||||
ShopLevelUpdate = Observable.CombineLatest(heartObserver, shopLevelObserver, sceneCounter,
|
|
||||||
(heart, level, sceneCount) =>
|
|
||||||
{
|
|
||||||
if (level == 0 && GameDataManager.GameData.isFirstPlay)
|
|
||||||
{
|
{
|
||||||
return false;
|
var viewedLevel = GameDataManager.GameData.ViewedShopLevel;
|
||||||
}
|
if (viewedLevel == 0 && GameDataManager.GameData.isFirstPlay)
|
||||||
var currentLevel = levelList.LastOrDefault(data => data.heart <= heart)?.shopLevel ?? 1;
|
{
|
||||||
return currentLevel > level && sceneCount == 1;
|
return false;
|
||||||
})
|
}
|
||||||
|
var currentLevel = levelList.LastOrDefault(data => data.heart <= heart)?.shopLevel ?? 1;
|
||||||
|
return currentLevel > viewedLevel && sceneCount == 1;
|
||||||
|
})
|
||||||
.DistinctUntilChanged()
|
.DistinctUntilChanged()
|
||||||
.Publish(false)
|
.Publish(false)
|
||||||
.RefCount();
|
.RefCount();
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
// ShopLevelUpdate.Subscribe(x => { Debug.Log($"change:{x}"); });
|
// ShopLevelUpdate.Subscribe(x => { Debug.Log($"change:{x}"); });
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// ミッション達成チェッカー
|
||||||
|
var missionList = SpreadsheetDataManager.Instance.GetBaseDataList<MissionData>(Const.MissionDataSheet);
|
||||||
|
var normalMissionList = missionList.Where(data => data.Category == MissionCategory.Normal).ToList();
|
||||||
|
var latestMissionList = GetLatestMissionList();
|
||||||
|
// 各条件の最前の未達成のミッションのみにフィルタ
|
||||||
|
List<MissionData> GetLatestMissionList() => normalMissionList
|
||||||
|
.Where(data => data.shopLevel <= GameDataManager.GameData.ViewedShopLevel)
|
||||||
|
.Where(data => !GameDataManager.GameData.AchievedMission.Contains(data.id))
|
||||||
|
.GroupBy(data => data.Condition, (_, list) => list.FirstOrDefault()).ToList();
|
||||||
|
// 店舗レベルアップorミッション達成でリスト更新して達成チェック
|
||||||
|
Observable.Merge(
|
||||||
|
shopLevelObserver.DistinctUntilChanged(),
|
||||||
|
achievedMissionObserver.DistinctUntilChanged())
|
||||||
|
.Subscribe(_ =>
|
||||||
|
{
|
||||||
|
latestMissionList = GetLatestMissionList();
|
||||||
|
// ここで達成を再確認
|
||||||
|
updateMissionAchieved.Value = latestMissionList
|
||||||
|
.Any(data => data.count <= MissionManager.GetProgressValue(data));
|
||||||
|
|
||||||
|
// CheckDailyCompleteMission
|
||||||
|
if (!GameDataManager.GameData.dailyMissionCompleted)
|
||||||
|
{
|
||||||
|
if (GameDataManager.GameData.dailyMissionIdArray.Length <= GameDataManager.GameData.dailyMissionAchievedIdArray.Length)
|
||||||
|
{
|
||||||
|
updateMissionAchieved.Value = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 各種ポップコーン以外の達成を確認
|
||||||
|
Observable.Merge(
|
||||||
|
subCoinObserver.DistinctUntilChanged().Select(_ => MissionCondition.CoinConsumeCount),
|
||||||
|
addCornObserver.DistinctUntilChanged().Select(_ => MissionCondition.CornCount),
|
||||||
|
addCustomerObserver.DistinctUntilChanged().Select(_ => MissionCondition.CustomerCount),
|
||||||
|
hasRecipeObserver.DistinctUntilChanged().Select(_ => MissionCondition.RecipeCount),
|
||||||
|
deliveredBulkOrderObserver.DistinctUntilChanged().Select(_ => MissionCondition.BulkOrderDeliveredCount))
|
||||||
|
.Subscribe(condition =>
|
||||||
|
{
|
||||||
|
if (latestMissionList
|
||||||
|
.Where(data => data.Condition == condition)
|
||||||
|
.Any(data => data.count <= MissionManager.GetProgressValue(data)))
|
||||||
|
{
|
||||||
|
updateMissionAchieved.Value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// dailyMission
|
||||||
|
var ids = GameDataManager.GameData.dailyMissionIdArray.Except(GameDataManager.GameData.dailyMissionAchievedIdArray);
|
||||||
|
if (missionList
|
||||||
|
.Where(data => ids.Contains(data.id))
|
||||||
|
.Any(missionData => missionData.count <= MissionManager.GetDailyProgressValue(missionData)))
|
||||||
|
{
|
||||||
|
updateMissionAchieved.Value = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// ポップコーン達成確認
|
||||||
|
Observable.Merge(
|
||||||
|
addSalesObserver.DistinctUntilChanged(),
|
||||||
|
addRareSalesObserver.DistinctUntilChanged())
|
||||||
|
.Subscribe(_ =>
|
||||||
|
{
|
||||||
|
if (latestMissionList
|
||||||
|
.Any(data => data.count <= MissionManager.GetProgressValue(data)))
|
||||||
|
{
|
||||||
|
updateMissionAchieved.Value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// dailyMission
|
||||||
|
var ids = GameDataManager.GameData.dailyMissionIdArray.Except(GameDataManager.GameData.dailyMissionAchievedIdArray);
|
||||||
|
if (missionList
|
||||||
|
.Where(data => ids.Contains(data.id))
|
||||||
|
.Any(missionData => missionData.count <= MissionManager.GetDailyProgressValue(missionData)))
|
||||||
|
{
|
||||||
|
updateMissionAchieved.Value = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// デイリーミッション日付チェック
|
// デイリーミッション日付チェック
|
||||||
sceneCounter
|
sceneCounter
|
||||||
.Where(x => x <= 1)
|
.Where(x => x <= 1)
|
||||||
|
|
@ -93,7 +178,6 @@ public class GameDataObserver : SingletonMonoBehaviour<GameDataObserver>
|
||||||
gameData.dailyMissionCompleted = false;
|
gameData.dailyMissionCompleted = false;
|
||||||
gameData.ResetDailyTotalCount();
|
gameData.ResetDailyTotalCount();
|
||||||
// 新ミッション登録
|
// 新ミッション登録
|
||||||
var missionList = SpreadsheetDataManager.Instance.GetBaseDataList<MissionData>(Const.MissionDataSheet);
|
|
||||||
var targetList = missionList.Where(data =>
|
var targetList = missionList.Where(data =>
|
||||||
data.Category == MissionCategory.Daily && data.shopLevel <= gameData.ViewedShopLevel);
|
data.Category == MissionCategory.Daily && data.shopLevel <= gameData.ViewedShopLevel);
|
||||||
gameData.dailyMissionIdArray = targetList.ToList().RandomChoose(3).Select(data => data.id).ToArray();
|
gameData.dailyMissionIdArray = targetList.ToList().RandomChoose(3).Select(data => data.id).ToArray();
|
||||||
|
|
|
||||||
|
|
@ -21,43 +21,16 @@ public class HeaderManager : MonoBehaviour
|
||||||
});
|
});
|
||||||
missionButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ =>
|
missionButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
MissionManager.ShowDialog(onAchieved:() => missionIndicator.SetActive(CheckMissionIndicate()));
|
MissionManager.ShowDialog();
|
||||||
});
|
});
|
||||||
informationButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ =>
|
informationButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
TransitionManager.Instance.LoadSceneAdditive(GameScenes.Information);
|
TransitionManager.Instance.LoadSceneAdditive(GameScenes.Information);
|
||||||
});
|
});
|
||||||
// mission報酬通知
|
// mission報酬通知
|
||||||
missionIndicator.SetActive(CheckMissionIndicate());
|
GameDataObserver.Instance.UpdateMissionAchieved.Subscribe(x =>
|
||||||
}
|
|
||||||
|
|
||||||
private bool CheckMissionIndicate()
|
|
||||||
{
|
|
||||||
// ミッション読み込み
|
|
||||||
var missionList = SpreadsheetDataManager.Instance.GetBaseDataList<MissionData>(Const.MissionDataSheet);
|
|
||||||
var gameData = GameDataManager.GameData;
|
|
||||||
// ミッション表示
|
|
||||||
if (missionList
|
|
||||||
.Where(data => data.Category == MissionCategory.Normal && data.shopLevel <= gameData.ViewedShopLevel)
|
|
||||||
.Where(missionData => !GameDataManager.GameData.AchievedMission.Contains(missionData.id))
|
|
||||||
.Any(missionData => missionData.count <= MissionManager.GetProgressValue(missionData)))
|
|
||||||
{
|
{
|
||||||
return true;
|
missionIndicator.SetActive(x);
|
||||||
}
|
}).AddTo(this);
|
||||||
|
|
||||||
// dailyMission
|
|
||||||
// コンプリートミッション
|
|
||||||
if (!gameData.dailyMissionCompleted)
|
|
||||||
{
|
|
||||||
if (gameData.dailyMissionIdArray.Length <= gameData.dailyMissionAchievedIdArray.Length)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var ids = gameData.dailyMissionIdArray.Except(gameData.dailyMissionAchievedIdArray);
|
|
||||||
return missionList
|
|
||||||
.Where(data => ids.Contains(data.id))
|
|
||||||
.Any(missionData => missionData.count <= MissionManager.GetDailyProgressValue(missionData));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ namespace MyGame.Scripts
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
transform.parent.SetLocalScale(0);
|
transform.parent.SetLocalScale(0);
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"MonoBehaviour": {
|
||||||
|
"Version": 3,
|
||||||
|
"EnableBurstCompilation": true,
|
||||||
|
"EnableOptimisations": true,
|
||||||
|
"EnableSafetyChecks": false,
|
||||||
|
"EnableDebugInAllBuilds": false,
|
||||||
|
"CpuMinTargetX32": 0,
|
||||||
|
"CpuMaxTargetX32": 0,
|
||||||
|
"CpuMinTargetX64": 0,
|
||||||
|
"CpuMaxTargetX64": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue