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_AnchorMax: {x: 1, y: 1}
|
||||
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}
|
||||
--- !u!222 &4293843006989820483
|
||||
CanvasRenderer:
|
||||
|
|
|
|||
|
|
@ -14768,7 +14768,7 @@ PrefabInstance:
|
|||
- target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
value: 600
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||
type: 3}
|
||||
|
|
@ -14848,7 +14848,7 @@ PrefabInstance:
|
|||
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 806.6114
|
||||
value: 826.3005
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||
type: 3}
|
||||
|
|
@ -14858,12 +14858,12 @@ PrefabInstance:
|
|||
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 173.4
|
||||
value: 183.2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7550014134400670843, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: -565
|
||||
value: 65
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 1c993e9707f1a4fada56020be27dde28, type: 3}
|
||||
|
|
|
|||
|
|
@ -948,7 +948,7 @@ MonoBehaviour:
|
|||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Transition: 0
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, 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_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Transition: 0
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ public class CornField : MonoBehaviour
|
|||
|
||||
SetCornField();
|
||||
|
||||
upgradeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
upgradeButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||
{
|
||||
LocalCacheManager.Save(CornFieldReinforcement.CornFieldResetCallbackTag, new Action(() => SetCornField()));
|
||||
TransitionManager.Instance.LoadSceneAdditive(GameScenes.Reinforcement);
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public class CornFieldReinforcement : MonoBehaviour
|
|||
private void Start()
|
||||
{
|
||||
compositeDisposable.AddTo(this);
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
LocalCacheManager.Remove(CornFieldReinforcementDataTypeTag);
|
||||
LocalCacheManager.Remove(CornFieldReinforcementDataTag);
|
||||
|
|
@ -53,7 +53,7 @@ public class CornFieldReinforcement : MonoBehaviour
|
|||
view.SetButtonActive(price <= CoinManager.Instance.OwnCoin);
|
||||
view.SetReinforcement(lineData, price);
|
||||
// 購入ボタン
|
||||
view.ButtonClickObserve.Subscribe(_ =>
|
||||
view.ButtonClickObserve.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||
{
|
||||
LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, upgradeType);
|
||||
LocalCacheManager.Save(CornFieldReinforcementDataTag, (lineData, price, new Action(() => {
|
||||
|
|
@ -71,7 +71,7 @@ public class CornFieldReinforcement : MonoBehaviour
|
|||
view.SetButtonActive(price <= CoinManager.Instance.OwnCoin);
|
||||
view.SetRelease(price);
|
||||
// 購入ボタン
|
||||
view.ButtonClickObserve.Subscribe(_ =>
|
||||
view.ButtonClickObserve.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||
{
|
||||
LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, upgradeType);
|
||||
LocalCacheManager.Save(CornFieldReinforcementDataTag, (lineData = null, price, new Action(() => {
|
||||
|
|
@ -97,7 +97,7 @@ public class CornFieldReinforcement : MonoBehaviour
|
|||
machineUpgradeView.SetButtonActive(price <= CoinManager.Instance.OwnCoin);
|
||||
machineUpgradeView.SetData(gameData.MachineLevel, price);
|
||||
// 購入ボタン
|
||||
machineUpgradeView.ButtonClickObserve.Subscribe(_ =>
|
||||
machineUpgradeView.ButtonClickObserve.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||
{
|
||||
LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, CornFieldUpgradeType.Machine);
|
||||
LocalCacheManager.Save(CornFieldReinforcementDataTag, (gameData.MachineLevel, price, new Action(() => {
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ public class CornFieldReinforcementDetailView : MonoBehaviour
|
|||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
transform.SetLocalScale(0);
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
|
|
@ -66,8 +66,11 @@ public class CornFieldReinforcementDetailView : MonoBehaviour
|
|||
}).AddTo(this);
|
||||
purchaseButton.OnClickAsObservable()
|
||||
.Merge(releaseButton.OnClickAsObservable())
|
||||
.Subscribe(_ =>
|
||||
.Take(1)
|
||||
.Subscribe(_ => { }, () =>
|
||||
{
|
||||
purchaseButton.interactable = false;
|
||||
releaseButton.interactable = false;
|
||||
// 購入処理
|
||||
callback?.Invoke();
|
||||
transform.SetLocalScale(0);
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ GameObject:
|
|||
m_Component:
|
||||
- component: {fileID: 9117079084301130545}
|
||||
- component: {fileID: 9117079084301130544}
|
||||
- component: {fileID: 8528884583953186477}
|
||||
m_Layer: 5
|
||||
m_Name: UICamera
|
||||
m_TagString: Untagged
|
||||
|
|
@ -74,3 +75,15 @@ Camera:
|
|||
m_OcclusionCulling: 0
|
||||
m_StereoConvergence: 10
|
||||
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()
|
||||
{
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
transform.parent.SetLocalScale(0);
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public class BulkOrderAchievedView : MonoBehaviour
|
|||
messageText.text = messageList.First(data => data.id == gameData.OrderTextId).thanksText;
|
||||
orderCharacterImage.sprite = bulkOrderCharacter.GetThanksIcon(gameData.OrderIconIndex);
|
||||
}
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
if (LocalCacheManager.Load<Action>(BulkOrder.AchievedCallbackTag, null) is Action callback)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public class BulkOrderCancelView : MonoBehaviour
|
|||
coinText.text = orderData.rewardCoin.ToString();
|
||||
heartText.text = orderData.rewardHeart.ToString();
|
||||
}
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
transform.parent.SetLocalScale(0);
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
|
|
@ -30,7 +30,7 @@ public class BulkOrderCancelView : MonoBehaviour
|
|||
TransitionManager.Instance.UnloadScene(GameScenes.BulkOrderCancel);
|
||||
});
|
||||
}).AddTo(this);
|
||||
cancelButton.OnClickAsObservable().Subscribe(_ =>
|
||||
cancelButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
if (LocalCacheManager.Load<Action>(BulkOrder.CancelCallbackTag, null) is Action callback)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ public class BulkOrderNotifyView : MonoBehaviour
|
|||
itemView3.SetActive(false);
|
||||
}
|
||||
}
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
transform.parent.SetLocalScale(0);
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class Information : MonoBehaviour
|
|||
|
||||
private void Start()
|
||||
{
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
transform.SetLocalScale(0);
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
|
|
|
|||
|
|
@ -23,7 +23,8 @@ public class KitchenManager : MonoBehaviour
|
|||
void Start()
|
||||
{
|
||||
|
||||
SoundManager.Instance.PlayBGM("bgm_Main");
|
||||
// 実機でアプリ初回起動時にBGMならないの回避。1フレーム遅らせると鳴る
|
||||
Observable.NextFrame().Subscribe(_ => SoundManager.Instance.PlayBGM("bgm_Main"));
|
||||
var gameData = GameDataManager.GameData;
|
||||
|
||||
// レシピの表示
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public class MissionCompleteView : MonoBehaviour
|
|||
{
|
||||
var (missionData, callback) = LocalCacheManager.Load< (MissionData, Action)>(MissionManager.MissionDataTag);
|
||||
LocalCacheManager.Remove(MissionManager.MissionDataTag);
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
callback?.Invoke();
|
||||
transform.SetLocalScale(0);
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ public class MissionManager : MonoBehaviour
|
|||
|
||||
private void Start()
|
||||
{
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
LocalCacheManager.Remove(MissionDataTag);
|
||||
transform.SetLocalScale(0);
|
||||
|
|
@ -76,7 +76,7 @@ public class MissionManager : MonoBehaviour
|
|||
{
|
||||
count = gameData.dailyMissionIdArray.Length,
|
||||
reward = dailyMissionCompleteRewardCoin,
|
||||
text = "デイリーミッションすべて完了で達成",
|
||||
text = "デイリーミッションを達成しよう",
|
||||
category = (int)MissionCategory.Daily,
|
||||
};
|
||||
var progressValue = gameData.dailyMissionAchievedIdArray.Length;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ namespace MyGame.Scenes.Settings.Scripts
|
|||
|
||||
private void Start()
|
||||
{
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
SoundManager.Instance.SaveVolumeBGM();
|
||||
SoundManager.Instance.SaveVolumeSE();
|
||||
|
|
|
|||
|
|
@ -99,16 +99,17 @@ public class Market : SingletonMonoBehaviour<Market>
|
|||
|
||||
// 購入リクエスト
|
||||
var maxOrder = orderPosisionObject.transform.childCount;
|
||||
orderSubject.Do(_ => { Debug.Log($"aa orderSubject");})
|
||||
.Merge(waitCustomerList.ObserveAdd().AsUnitObservable().Do(_ => { Debug.Log($"aa waitCustomerListAdd");}))
|
||||
.Merge(shopState.Where(x => x == ShopState.Open).AsUnitObservable().Do(_ => { Debug.Log($"aa shopStateOpen");}))
|
||||
Observable.Merge(
|
||||
orderSubject /*.Do(_ => { Debug.Log($"aa orderSubject");})*/,
|
||||
waitCustomerList.ObserveAdd().AsUnitObservable() /*.Do(_ => { Debug.Log($"aa waitCustomerListAdd");})*/,
|
||||
shopState.Where(x => x == ShopState.Open).AsUnitObservable() /*.Do(_ => { Debug.Log($"aa shopStateOpen");})*/
|
||||
)
|
||||
.BatchFrame()
|
||||
.Where(_ => waitCustomerList.Count > 0)
|
||||
.SelectMany(_ => waitCustomerList.ToList().GetRange(0, Mathf.Min(maxOrder, waitCustomerList.Count)))
|
||||
.Subscribe(customer =>
|
||||
{
|
||||
var count = customerList.Count(x => x.State.Value == CustomerState.Order);
|
||||
Debug.Log($"aa order:{count} Request {Time.time} {customer.GetHashCode()}");
|
||||
if (count >= maxOrder)
|
||||
{
|
||||
// shopState.Value = ShopState.Busy;
|
||||
|
|
@ -171,8 +172,17 @@ public class Market : SingletonMonoBehaviour<Market>
|
|||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogError($"d:{displayFlavors.Count}, {string.Join("", tmpOrders)}");
|
||||
throw;
|
||||
Debug.LogError($"d:{displayFlavors.Count}, {string.Join("", tmpOrders)}" +
|
||||
$"\nshuffled:{shuffledOrder.Count}, maxNum:{shuffledOrder.Max()}");
|
||||
/*
|
||||
* 例外握りつぶし
|
||||
* 存在しないorderを引いたのでそのまま処理せず逃がす
|
||||
*/
|
||||
controller.CallWaitForSeconds(1.5f, () =>
|
||||
{
|
||||
controller.ChangeCustomerState(CustomerState.Leave);
|
||||
});
|
||||
dontBuyCustomerList.Add(controller);
|
||||
}
|
||||
}
|
||||
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 refillList = orders.OrderBy(_ => Random.value).ToList();
|
||||
var refillList = orders.GetRange(0, refillCount).OrderBy(_ => Random.value).ToList();
|
||||
shuffledOrder.AddRange(refillList);
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -83,7 +83,23 @@ public class MarketManager : MonoBehaviour
|
|||
|
||||
productDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(Const.ProductDataSheet);
|
||||
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.SetStock(startStocks, false);
|
||||
BrotherPinkView.Instance.SetBrotherView(pinkTarget);
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public class ShopLevelUp : MonoBehaviour
|
|||
var shopLevel = LocalCacheManager.Load<int>(DataTag);
|
||||
var scriptList = SpreadsheetDataManager.Instance.GetBaseDataList<BrotherScriptData>(Const.ScriptDataSheet);
|
||||
var targetScriptList = scriptList.Where(data => data.id == shopLevel).ToList();
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
transform.SetLocalScale(0);
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public class TankDetailView : MonoBehaviour
|
|||
private void Start()
|
||||
{
|
||||
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);
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public class TastingView : MonoBehaviour
|
|||
packageImageTarget.DestroyAllChildrens();
|
||||
Instantiate(x.productData.GetIconPrefab(), packageImageTarget);
|
||||
}).AddTo(this);
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
this.CallWaitForSeconds(.5f, () =>
|
||||
|
|
@ -34,7 +34,7 @@ public class TastingView : MonoBehaviour
|
|||
TransitionManager.Instance.UnloadScene(GameScenes.Tasting);
|
||||
});
|
||||
}).AddTo(this);
|
||||
tastingButton.OnClickAsObservable().Subscribe(_ =>
|
||||
tastingButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||
{
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
this.CallWaitForSeconds(.5f, () =>
|
||||
|
|
|
|||
|
|
@ -1064,6 +1064,7 @@ GameObject:
|
|||
- component: {fileID: 658354829}
|
||||
- component: {fileID: 658354828}
|
||||
- component: {fileID: 658354831}
|
||||
- component: {fileID: 658354832}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
|
|
@ -1110,7 +1111,7 @@ Camera:
|
|||
m_Depth: -1
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_Bits: 23
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
|
|
@ -1152,6 +1153,18 @@ MonoBehaviour:
|
|||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -1636,7 +1649,7 @@ PrefabInstance:
|
|||
- target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
value: 400
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||
type: 3}
|
||||
|
|
@ -1736,7 +1749,7 @@ PrefabInstance:
|
|||
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: -653.7666
|
||||
value: -1063.2974
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||
type: 3}
|
||||
|
|
@ -1746,7 +1759,7 @@ PrefabInstance:
|
|||
- target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 58.699707
|
||||
value: 58.69995
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
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);
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
|
|
@ -76,7 +76,7 @@ public class RecipeDetailView : MonoBehaviour
|
|||
});
|
||||
}).AddTo(this);
|
||||
|
||||
nextButton.OnClickAsObservable().Subscribe(_ =>
|
||||
nextButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
LocalCacheManager.Save(PopcornGameManager.PanDataTag, panSelector.SelectedPanData.Value);
|
||||
// 消費
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public class RecipeSelectDialog : MonoBehaviour
|
|||
void Start()
|
||||
{
|
||||
var gameData = GameDataManager.GameData;
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
transform.SetLocalScale(0);
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
|
|
@ -56,7 +56,7 @@ public class RecipeSelectDialog : MonoBehaviour
|
|||
if (hasRecipe)
|
||||
{
|
||||
view.SetLockPanel(false);
|
||||
view.RecipeClickObservable.Subscribe(_ =>
|
||||
view.RecipeClickObservable.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||
{
|
||||
LocalCacheManager.Save(PopcornGameManager.CookingDataTag, productData);
|
||||
RecipeDetailView.ShowDialog(() =>
|
||||
|
|
|
|||
|
|
@ -133,6 +133,16 @@ PrefabInstance:
|
|||
propertyPath: m_AnchoredPosition.y
|
||||
value: 50
|
||||
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,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public class ShopItemDetailView : MonoBehaviour
|
|||
{
|
||||
var data = LocalCacheManager.Load<ShopData>(ItemDetailTag);
|
||||
SetData(data);
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
transform.SetLocalScale(0);
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class ShopItemPurchaseView : MonoBehaviour
|
|||
var data = LocalCacheManager.Load<(ShopData shopData, int stockCount)>(ItemPurchaseTag);
|
||||
LocalCacheManager.Remove(ItemPurchaseTag);
|
||||
SetData(data.shopData, data.stockCount);
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
LocalCacheManager.Load<Action>(CloseCallbackTag, null)?.Invoke();
|
||||
transform.SetLocalScale(0);
|
||||
|
|
@ -53,8 +53,9 @@ public class ShopItemPurchaseView : MonoBehaviour
|
|||
TransitionManager.Instance.UnloadScene(GameScenes.Purchase);
|
||||
});
|
||||
}).AddTo(this);
|
||||
purchaseOnButton.OnClickAsObservable().Subscribe(_ =>
|
||||
purchaseOnButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
purchaseOnButton.interactable = false;
|
||||
LocalCacheManager.Load<Action<int>>(PurchaseCallbackTag, null)?.Invoke(currentCount.Value);
|
||||
transform.SetLocalScale(0);
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ public class Shopping : MonoBehaviour
|
|||
}).AddTo(itemView);
|
||||
// アイテム購入クリック購読
|
||||
itemView.PurchaseButtonObservable
|
||||
.ThrottleFirst(TimeSpan.FromSeconds(.3f))
|
||||
.Where(_ => shopData.price <= CoinManager.Instance.OwnCoin)
|
||||
.Subscribe(_ =>
|
||||
{
|
||||
|
|
@ -77,7 +78,7 @@ public class Shopping : MonoBehaviour
|
|||
});
|
||||
}).AddTo(itemView);
|
||||
// show detail view
|
||||
itemView.DetailButtonObservable.Subscribe(_ =>
|
||||
itemView.DetailButtonObservable.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||
{
|
||||
LocalCacheManager.Save(ShopItemDetailView.ItemDetailTag, shopData);
|
||||
TransitionManager.Instance.LoadSceneAdditive(GameScenes.ShoppingExplanation);
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ public sealed class ApplicationExitConfirmDialogManager : MonoBehaviour
|
|||
{
|
||||
backButton.OnClickAsObservable()
|
||||
.Merge(closeButton.OnClickAsObservable())
|
||||
.Take(1)
|
||||
.Subscribe(_ =>
|
||||
{
|
||||
transform.parent.SetLocalScale(0);
|
||||
|
|
|
|||
|
|
@ -33,6 +33,9 @@ namespace MyGame.Scripts
|
|||
case GameScenes.Main:
|
||||
camera.orthographicSize = 14f;
|
||||
break;
|
||||
case GameScenes.marketing:
|
||||
camera.orthographicSize = 13.5f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,51 +7,57 @@ using UnityEngine;
|
|||
public class GameDataObserver : SingletonMonoBehaviour<GameDataObserver>
|
||||
{
|
||||
[SerializeField] private FloatReactiveProperty checkInterval = new FloatReactiveProperty(.1f);
|
||||
private IObservable<int> heartObserver;
|
||||
public IObservable<int> Heart => heartObserver;
|
||||
private readonly Subject<int> heartObserver = new Subject<int>();
|
||||
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<int> SceneCounter => sceneCounter;
|
||||
|
||||
public IObservable<bool> ShopLevelUpdate;
|
||||
public IObservable<bool> ShopLevelUpdate { get; private set; }
|
||||
|
||||
private void Start()
|
||||
{
|
||||
checkInterval.AddTo(this);
|
||||
updateMissionAchieved.AddTo(this);
|
||||
var levelList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopLevelData>(Const.ShopLevelDataSheet);
|
||||
heartObserver = checkInterval
|
||||
.Select(x =>
|
||||
Observable.Interval(TimeSpan.FromSeconds(x))
|
||||
.Select(_ => GameDataManager.GameData.Heart)
|
||||
.DistinctUntilChanged())
|
||||
.Switch();
|
||||
|
||||
var shopLevelObserver = checkInterval
|
||||
.Select(x =>
|
||||
Observable.Interval(TimeSpan.FromSeconds(x))
|
||||
.Select(_ => GameDataManager.GameData.ViewedShopLevel)
|
||||
.DistinctUntilChanged())
|
||||
.Switch();
|
||||
|
||||
sceneCounter = checkInterval
|
||||
.Select(x =>
|
||||
Observable.Interval(TimeSpan.FromSeconds(x))
|
||||
.Select(_ => UnityEngine.SceneManagement.SceneManager.sceneCount)
|
||||
.DistinctUntilChanged()
|
||||
.Delay(TimeSpan.FromSeconds(.4f))
|
||||
// .Do(c => { Debug.Log($"sceneCount:{c}");})
|
||||
)
|
||||
.Switch();
|
||||
|
||||
ShopLevelUpdate = Observable.CombineLatest(heartObserver, shopLevelObserver, sceneCounter,
|
||||
(heart, level, sceneCount) =>
|
||||
checkInterval.Select(x => Observable.Interval(TimeSpan.FromSeconds(x))).Switch().Subscribe(_ =>
|
||||
{
|
||||
if (level == 0 && GameDataManager.GameData.isFirstPlay)
|
||||
var gameData = GameDataManager.GameData;
|
||||
heartObserver.OnNext(gameData.Heart);
|
||||
sceneCounter.OnNext(UnityEngine.SceneManagement.SceneManager.sceneCount);
|
||||
shopLevelObserver.OnNext(gameData.ViewedShopLevel);
|
||||
achievedMissionObserver.OnNext(gameData.AchievedMission.Count);
|
||||
// addCoinObserver.OnNext(gameData.TotalAddCoin);
|
||||
subCoinObserver.OnNext(gameData.TotalSubCoin);
|
||||
addCornObserver.OnNext(gameData.TotalAddCornSeed);
|
||||
addCustomerObserver.OnNext(gameData.TotalCustomerCount);
|
||||
addSalesObserver.OnNext(gameData.TotalSales);
|
||||
addRareSalesObserver.OnNext(gameData.RareTotalSales);
|
||||
hasRecipeObserver.OnNext(gameData.MyRecipes.Length);
|
||||
deliveredBulkOrderObserver.OnNext(gameData.BulkOrderDeliveredCount);
|
||||
}).AddTo(this);
|
||||
|
||||
ShopLevelUpdate = Observable.CombineLatest(
|
||||
heartObserver.DistinctUntilChanged(),
|
||||
sceneCounter.DistinctUntilChanged().Delay(TimeSpan.FromSeconds(.4f)),
|
||||
(heart, sceneCount) =>
|
||||
{
|
||||
var viewedLevel = GameDataManager.GameData.ViewedShopLevel;
|
||||
if (viewedLevel == 0 && GameDataManager.GameData.isFirstPlay)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
var currentLevel = levelList.LastOrDefault(data => data.heart <= heart)?.shopLevel ?? 1;
|
||||
return currentLevel > level && sceneCount == 1;
|
||||
return currentLevel > viewedLevel && sceneCount == 1;
|
||||
})
|
||||
.DistinctUntilChanged()
|
||||
.Publish(false)
|
||||
|
|
@ -59,6 +65,85 @@ public class GameDataObserver : SingletonMonoBehaviour<GameDataObserver>
|
|||
#if UNITY_EDITOR
|
||||
// ShopLevelUpdate.Subscribe(x => { Debug.Log($"change:{x}"); });
|
||||
#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
|
||||
.Where(x => x <= 1)
|
||||
|
|
@ -93,7 +178,6 @@ public class GameDataObserver : SingletonMonoBehaviour<GameDataObserver>
|
|||
gameData.dailyMissionCompleted = false;
|
||||
gameData.ResetDailyTotalCount();
|
||||
// 新ミッション登録
|
||||
var missionList = SpreadsheetDataManager.Instance.GetBaseDataList<MissionData>(Const.MissionDataSheet);
|
||||
var targetList = missionList.Where(data =>
|
||||
data.Category == MissionCategory.Daily && data.shopLevel <= gameData.ViewedShopLevel);
|
||||
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(_ =>
|
||||
{
|
||||
MissionManager.ShowDialog(onAchieved:() => missionIndicator.SetActive(CheckMissionIndicate()));
|
||||
MissionManager.ShowDialog();
|
||||
});
|
||||
informationButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ =>
|
||||
{
|
||||
TransitionManager.Instance.LoadSceneAdditive(GameScenes.Information);
|
||||
});
|
||||
// mission報酬通知
|
||||
missionIndicator.SetActive(CheckMissionIndicate());
|
||||
}
|
||||
|
||||
private bool CheckMissionIndicate()
|
||||
GameDataObserver.Instance.UpdateMissionAchieved.Subscribe(x =>
|
||||
{
|
||||
// ミッション読み込み
|
||||
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;
|
||||
}
|
||||
|
||||
// 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));
|
||||
missionIndicator.SetActive(x);
|
||||
}).AddTo(this);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ namespace MyGame.Scripts
|
|||
|
||||
private void Start()
|
||||
{
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
transform.parent.SetLocalScale(0);
|
||||
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