仕入れチュートリアル対応
This commit is contained in:
parent
0cd9e21ffd
commit
e33effdb85
|
|
@ -91,14 +91,18 @@ public class ShopItemPurchaseView : MonoBehaviour
|
||||||
currentCount.Value = 1;
|
currentCount.Value = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GameDataManager.GameData.isFirstPlay)
|
// tutorial 所持金チェック
|
||||||
|
if (!GameDataManager.GameData.FinishedFlags.HasFlag(TutorialFlag.Shopping))
|
||||||
{
|
{
|
||||||
// マスク表示
|
if (GameDataManager.GameData.Coin >= data.shopData.price)
|
||||||
var go = TutorialManager.Instance.ShowTutorialMask(transform.parent, purchaseOnButton.transform as RectTransform);
|
|
||||||
purchaseOnButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
|
||||||
{
|
{
|
||||||
DestroyImmediate(go);
|
// マスク表示
|
||||||
}).AddTo(this);
|
var go = TutorialManager.Instance.ShowTutorialMask(transform.parent, purchaseOnButton.transform as RectTransform);
|
||||||
|
purchaseOnButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
|
{
|
||||||
|
DestroyImmediate(go);
|
||||||
|
}).AddTo(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,20 @@ public class Shopping : MonoBehaviour
|
||||||
|
|
||||||
SoundManager.Instance.PlayBGM("bgm_shopping");
|
SoundManager.Instance.PlayBGM("bgm_shopping");
|
||||||
var gameData = GameDataManager.GameData;
|
var gameData = GameDataManager.GameData;
|
||||||
|
|
||||||
|
// 一覧データ
|
||||||
|
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);
|
||||||
|
|
||||||
|
// tutorial 所持金が指定アイテムの金額以上かどうかチェック
|
||||||
|
var isTutorial = false;
|
||||||
|
if (!gameData.FinishedFlags.HasFlag(TutorialFlag.Shopping))
|
||||||
|
{
|
||||||
|
if (gameData.Coin >= (shopDataList.FirstOrDefault(data => data.itemId == 2)?.price ?? 10))
|
||||||
|
{
|
||||||
|
isTutorial = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
CoinManager.Instance.ChangeCoin(gameData.Coin);
|
CoinManager.Instance.ChangeCoin(gameData.Coin);
|
||||||
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
||||||
|
|
||||||
|
|
@ -36,8 +50,6 @@ public class Shopping : MonoBehaviour
|
||||||
HeartMeter.Instance.AddHeart(pair.Current - pair.Previous);
|
HeartMeter.Instance.AddHeart(pair.Current - pair.Previous);
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
// 一覧データ
|
|
||||||
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);
|
|
||||||
foreach (var shopData in shopDataList)
|
foreach (var shopData in shopDataList)
|
||||||
{
|
{
|
||||||
if (shopData.Category == ItemCategory.Special)
|
if (shopData.Category == ItemCategory.Special)
|
||||||
|
|
@ -52,36 +64,28 @@ public class Shopping : MonoBehaviour
|
||||||
{
|
{
|
||||||
itemView.SetItemActive(shopData.price <= ownCoin);
|
itemView.SetItemActive(shopData.price <= ownCoin);
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
var purchaseSubject = new Subject<int>();
|
|
||||||
purchaseSubject.AddTo(itemView);
|
|
||||||
purchaseSubject.Subscribe(amount =>
|
|
||||||
{
|
|
||||||
// アイテムを増やす
|
|
||||||
AddItem(shopData, amount);
|
|
||||||
itemView.SetStockCount(GetItemAmount(shopData));
|
|
||||||
CoinManager.Instance.SubCoin(shopData.price * amount);
|
|
||||||
gameData.Coin = CoinManager.Instance.OwnCoin;
|
|
||||||
changeCoinSubject.OnNext(gameData.Coin);
|
|
||||||
GameDataManager.SaveGameData();
|
|
||||||
}).AddTo(itemView);
|
|
||||||
// アイテム購入クリック購読
|
// アイテム購入クリック購読
|
||||||
itemView.PurchaseButtonObservable
|
itemView.PurchaseButtonObservable
|
||||||
.ThrottleFirst(TimeSpan.FromSeconds(.3f))
|
.ThrottleFirst(TimeSpan.FromSeconds(.3f))
|
||||||
.Where(_ => shopData.price <= CoinManager.Instance.OwnCoin)
|
.Where(_ => shopData.price <= CoinManager.Instance.OwnCoin)
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
ShopItemPurchaseView.ShowDialog((shopData, GetItemAmount(shopData)), x =>
|
ShopItemPurchaseView.ShowDialog((shopData, GetItemAmount(shopData)), amount =>
|
||||||
{
|
{
|
||||||
purchaseSubject.OnNext(x);
|
// アイテムを増やす
|
||||||
if (gameData.isFirstPlay)
|
AddItem(shopData, amount);
|
||||||
|
itemView.SetStockCount(GetItemAmount(shopData));
|
||||||
|
CoinManager.Instance.SubCoin(shopData.price * amount);
|
||||||
|
gameData.Coin = CoinManager.Instance.OwnCoin;
|
||||||
|
changeCoinSubject.OnNext(gameData.Coin);
|
||||||
|
GameDataManager.SaveGameData();
|
||||||
|
|
||||||
|
if (isTutorial)
|
||||||
{
|
{
|
||||||
TutorialManager.Instance.ShowTutorialConversation(6, () =>
|
TutorialManager.Instance.ShowTutorialConversation(8, () =>
|
||||||
{
|
{
|
||||||
var go = FindObjectOfType<FooterManager>().transform;
|
gameData.FinishedFlags |= TutorialFlag.Shopping;
|
||||||
go.transform.FindChildByName("Button_Main", t =>
|
GameDataManager.SaveGameData();
|
||||||
{
|
|
||||||
TutorialManager.Instance.ShowTutorialMask(go.parent, t as RectTransform, true);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -96,10 +100,10 @@ public class Shopping : MonoBehaviour
|
||||||
listView.SetTab(ItemCategory.Material);
|
listView.SetTab(ItemCategory.Material);
|
||||||
changeCoinSubject.OnNext(CoinManager.Instance.OwnCoin);
|
changeCoinSubject.OnNext(CoinManager.Instance.OwnCoin);
|
||||||
|
|
||||||
if (gameData.isFirstPlay)
|
if (isTutorial)
|
||||||
{
|
{
|
||||||
listView.ScrollRect.vertical = false;
|
listView.ScrollRect.vertical = false;
|
||||||
TutorialManager.Instance.ShowTutorialConversation(5, () =>
|
TutorialManager.Instance.ShowTutorialConversation(7, () =>
|
||||||
{
|
{
|
||||||
// マスク表示
|
// マスク表示
|
||||||
var view = listView.ScrollRect.content.GetChild(0).GetComponent<ShopItemView>();
|
var view = listView.ScrollRect.content.GetChild(0).GetComponent<ShopItemView>();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue