仕入れワールド対応
This commit is contained in:
parent
9ceacd9400
commit
8b2f64ad3e
|
@ -45,27 +45,27 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
|||
public void ShowResult(int score, ScrollGamePlaceData[] placeList, ScrollGameStageData stageData)
|
||||
{
|
||||
SoundManager.Instance.ChangeVolumeUniqueBGM(.3f);
|
||||
var gameData = GameDataManager.GameData;
|
||||
var globalGameData = GameDataManager.GameData;
|
||||
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);
|
||||
|
||||
if (!(gameData.ScrollGameStageScoreList.FirstOrDefault(data => data.Id == stageData.id) is ScrollGameScoreData stageScoreData))
|
||||
if (!(globalGameData.ScrollGameStageScoreList.FirstOrDefault(data => data.Id == stageData.id) is ScrollGameScoreData stageScoreData))
|
||||
{
|
||||
stageScoreData = new ScrollGameScoreData
|
||||
{
|
||||
Id = stageData.id,
|
||||
Score = 0
|
||||
};
|
||||
gameData.ScrollGameStageScoreList.Add(stageScoreData);
|
||||
globalGameData.ScrollGameStageScoreList.Add(stageScoreData);
|
||||
}
|
||||
|
||||
if (!(gameData.ScrollGamePlaceScoreList.FirstOrDefault(data => data.Id == placeList[0].id) is ScrollGameScoreData placeScoreData))
|
||||
if (!(globalGameData.ScrollGamePlaceScoreList.FirstOrDefault(data => data.Id == placeList[0].id) is ScrollGameScoreData placeScoreData))
|
||||
{
|
||||
placeScoreData = new ScrollGameScoreData
|
||||
{
|
||||
Id = placeList[0].id,
|
||||
Score = 0
|
||||
};
|
||||
gameData.ScrollGamePlaceScoreList.Add(placeScoreData);
|
||||
globalGameData.ScrollGamePlaceScoreList.Add(placeScoreData);
|
||||
}
|
||||
|
||||
scoreText.text = score.ToString();
|
||||
|
@ -111,7 +111,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
|||
}
|
||||
|
||||
materialAmountText.text = $"×{amount}";
|
||||
Shopping.AddItem(shopData, amount);
|
||||
Shopping.AddItem(shopData, amount, globalGameData.CurrentCityId);
|
||||
}
|
||||
|
||||
var customizeDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopCustomizeData>(Const.ShopCustomizeDataSheet);
|
||||
|
@ -127,12 +127,12 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
|||
// 獲得処理
|
||||
if (placeData.recipeId != 0)
|
||||
{
|
||||
if (gameData.MyRecipes.Contains(placeData.recipeId))
|
||||
if (globalGameData.MyRecipes.Contains(placeData.recipeId))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
gameData.MyRecipes = new List<int>(gameData.MyRecipes){placeData.recipeId}.ToArray();
|
||||
gameData.DailyRecipeGetCount++;
|
||||
globalGameData.MyRecipes = new List<int>(globalGameData.MyRecipes){placeData.recipeId}.ToArray();
|
||||
globalGameData.DailyRecipeGetCount++;
|
||||
var shopData = shopDataList.First(data => data.itemId == placeData.recipeId && data.Category == ItemCategory.Recipe);
|
||||
// progressList.Add((shopData.Name, shopData.GetPrefab(), placeData.NeedScore, true));
|
||||
progressList.Add((shopData.Name, recipeMalaImagePrefab, placeData.NeedScore, true));
|
||||
|
@ -148,7 +148,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
|||
var nextAchievement = sortedPlaceList.FirstOrDefault(data => data.NeedScore > placeScoreData.Score);
|
||||
if (nextAchievement != null)
|
||||
{
|
||||
if (nextAchievement.recipeId != 0 && !gameData.MyRecipes.Contains(nextAchievement.recipeId))
|
||||
if (nextAchievement.recipeId != 0 && !globalGameData.MyRecipes.Contains(nextAchievement.recipeId))
|
||||
{
|
||||
var shopData = shopDataList.First(data => data.itemId == nextAchievement.recipeId && data.Category == ItemCategory.Recipe);
|
||||
// progressList.Add((shopData.Name, shopData.GetPrefab(), nextAchievement.NeedScore, true));
|
||||
|
|
|
@ -18,30 +18,31 @@ public class Shopping : MonoBehaviour
|
|||
changeCoinSubject.AddTo(this);
|
||||
|
||||
SoundManager.Instance.PlayBGM("bgm_shopping");
|
||||
var gameData = GameDataManager.GameData;
|
||||
var globalGameData = GameDataManager.GameData;
|
||||
var cityGameData = GameDataManager.GetCurrentCityGameData();
|
||||
|
||||
// 一覧データ
|
||||
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);
|
||||
|
||||
// tutorial 所持金が指定アイテムの金額以上かどうかチェック
|
||||
var isTutorial = false;
|
||||
if (!gameData.FinishedFlags.HasFlag(TutorialFlag.Shopping))
|
||||
if (!globalGameData.FinishedFlags.HasFlag(TutorialFlag.Shopping))
|
||||
{
|
||||
if (gameData.Coin >= (shopDataList.FirstOrDefault(data => data.itemId == 2)?.price ?? 10))
|
||||
if (cityGameData.Coin >= (shopDataList.FirstOrDefault(data => data.itemId == 2)?.price ?? 10))
|
||||
{
|
||||
isTutorial = true;
|
||||
}
|
||||
}
|
||||
|
||||
CoinManager.Instance.ChangeCoin(gameData.Coin);
|
||||
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
||||
CoinManager.Instance.ChangeCoin(cityGameData.Coin);
|
||||
HeartMeter.Instance.Initialize(globalGameData.ViewedShopLevel, cityGameData.Heart);
|
||||
|
||||
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
||||
HeartMeter.Instance.FulledHeart
|
||||
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
||||
.Subscribe(_ =>
|
||||
{
|
||||
ShopLevelUp.ShowDialog(gameData.ViewedShopLevel + 1);
|
||||
ShopLevelUp.ShowDialog(globalGameData.ViewedShopLevel + 1);
|
||||
}).AddTo(this);
|
||||
|
||||
GameDataObserver.Instance.HeartObserver
|
||||
|
@ -76,11 +77,11 @@ public class Shopping : MonoBehaviour
|
|||
ShopItemPurchaseView.ShowDialog((shopData, GetItemAmount(shopData)), amount =>
|
||||
{
|
||||
// アイテムを増やす
|
||||
AddItem(shopData, amount);
|
||||
AddItem(shopData, amount, globalGameData.CurrentCityId);
|
||||
itemView.SetStockCount(GetItemAmount(shopData));
|
||||
CoinManager.Instance.SubCoin(shopData.price * amount);
|
||||
gameData.Coin = CoinManager.Instance.OwnCoin;
|
||||
changeCoinSubject.OnNext(gameData.Coin);
|
||||
cityGameData.Coin = CoinManager.Instance.OwnCoin;
|
||||
changeCoinSubject.OnNext(cityGameData.Coin);
|
||||
GameDataManager.SaveGameData();
|
||||
|
||||
if (isTutorial)
|
||||
|
@ -88,7 +89,7 @@ public class Shopping : MonoBehaviour
|
|||
TutorialManager.Instance.ShowTutorialConversation(8, () =>
|
||||
{
|
||||
isTutorial = false;
|
||||
gameData.FinishedFlags |= TutorialFlag.Shopping;
|
||||
globalGameData.FinishedFlags |= TutorialFlag.Shopping;
|
||||
GameDataManager.SaveGameData();
|
||||
});
|
||||
}
|
||||
|
@ -103,7 +104,7 @@ public class Shopping : MonoBehaviour
|
|||
ShopItemExchangeView.ShowDialog(shopData, () =>
|
||||
{
|
||||
// アイテムを増やす
|
||||
AddItem(shopData, 1);
|
||||
AddItem(shopData, 1, globalGameData.CurrentCityId);
|
||||
itemView.SetStockCount(GetItemAmount(shopData));
|
||||
GameDataManager.SaveGameData();
|
||||
recipeNotifyIcon.SetActive(CheckEarnedRecipe());
|
||||
|
@ -141,49 +142,49 @@ public class Shopping : MonoBehaviour
|
|||
|
||||
private static int GetItemAmount(ShopData shopData)
|
||||
{
|
||||
var gameData = GameDataManager.GameData;
|
||||
switch (shopData.Category)
|
||||
{
|
||||
case ItemCategory.Material:
|
||||
return gameData.Material.Find(data => data.Id == shopData.itemId)?.Amount ?? 0;
|
||||
return GameDataManager.GetCurrentCityGameData().Material.Find(data => data.Id == shopData.itemId)?.Amount ?? 0;
|
||||
case ItemCategory.Recipe:
|
||||
return gameData.MyRecipes.Contains(shopData.itemId) ? 1 : 0;
|
||||
return GameDataManager.GameData.MyRecipes.Contains(shopData.itemId) ? 1 : 0;
|
||||
case ItemCategory.Pan:
|
||||
return gameData.Pans.Contains(shopData.itemId) ? 1 : 0;
|
||||
return GameDataManager.GameData.Pans.Contains(shopData.itemId) ? 1 : 0;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
}
|
||||
|
||||
public static void AddItem(ShopData shopData, int amount)
|
||||
public static void AddItem(ShopData shopData, int amount, int cityId)
|
||||
{
|
||||
var gameData = GameDataManager.GameData;
|
||||
var cityGameData = GameDataManager.GetCityGameData(cityId);
|
||||
var globalGameData = GameDataManager.GameData;
|
||||
switch (shopData.Category)
|
||||
{
|
||||
case ItemCategory.Material:
|
||||
var index = gameData.Material.FindIndex(x => x.Id == shopData.itemId);
|
||||
var index = cityGameData.Material.FindIndex(x => x.Id == shopData.itemId);
|
||||
if (index == -1)
|
||||
{
|
||||
index = gameData.Material.Count;
|
||||
gameData.Material.Add(new MaterialData
|
||||
index = cityGameData.Material.Count;
|
||||
cityGameData.Material.Add(new MaterialData
|
||||
{
|
||||
Id = shopData.itemId,
|
||||
Amount = 0
|
||||
});
|
||||
}
|
||||
gameData.Material[index].Amount += amount;
|
||||
cityGameData.Material[index].Amount += amount;
|
||||
break;
|
||||
case ItemCategory.Recipe:
|
||||
if (!gameData.MyRecipes.Contains(shopData.itemId))
|
||||
if (!globalGameData.MyRecipes.Contains(shopData.itemId))
|
||||
{
|
||||
gameData.MyRecipes = new List<int>(gameData.MyRecipes){shopData.itemId}.ToArray();
|
||||
gameData.DailyRecipeGetCount++;
|
||||
globalGameData.MyRecipes = new List<int>(globalGameData.MyRecipes){shopData.itemId}.ToArray();
|
||||
globalGameData.DailyRecipeGetCount++;
|
||||
}
|
||||
break;
|
||||
case ItemCategory.Pan:
|
||||
if (!gameData.Pans.Contains(shopData.itemId))
|
||||
if (!globalGameData.Pans.Contains(shopData.itemId))
|
||||
{
|
||||
gameData.Pans = new List<int>(gameData.Pans){shopData.itemId}.ToArray();
|
||||
globalGameData.Pans = new List<int>(globalGameData.Pans){shopData.itemId}.ToArray();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
Loading…
Reference in New Issue