バイトと収益バッジ対応

This commit is contained in:
kimura 2022-09-27 16:50:27 +09:00
parent 6d24958ea6
commit ca4507010c
3 changed files with 26 additions and 19 deletions

View File

@ -35,7 +35,7 @@ public class KitchenManager : MonoBehaviour
var globalGameData = GameDataManager.GameData; var globalGameData = GameDataManager.GameData;
var newGameData = GameDataUtils.CreateCityData(2); var newGameData = GameDataUtils.CreateCityData(2);
// newGameData.IsFundingCompleted = true; // newGameData.IsFundingCompleted = true;
newGameData.Heart = 100; newGameData.Heart = 0;
// gameData.IsFundingCompleted = true; // gameData.IsFundingCompleted = true;
// gameData.PartTimerElapsed = 100; // gameData.PartTimerElapsed = 100;
// globalGameData.CurrentCityId = Const.DefaultCityId; // globalGameData.CurrentCityId = Const.DefaultCityId;
@ -55,14 +55,17 @@ public class KitchenManager : MonoBehaviour
if (isPartTimer) if (isPartTimer)
{ {
var partTimersData = SpreadsheetDataManager.Instance.GetBaseDataList<PartTimerData>(Const.PartTimerDataSheet); var partTimersData = SpreadsheetDataManager.Instance.GetBaseDataList<PartTimerData>(Const.PartTimerDataSheet);
partTimersData[0].maxSales = 300;
var cityDataList = SpreadsheetDataManager.Instance.GetBaseDataList<CityData>(Const.CityDataSheet); var cityDataList = SpreadsheetDataManager.Instance.GetBaseDataList<CityData>(Const.CityDataSheet);
var cityData = cityDataList.First(data => data.id == globalGameData.CurrentCityId); var cityData = cityDataList.First(data => data.id == globalGameData.CurrentCityId);
partTimerButtonView.SetBadgeActive(false); // バイト強化可能か判定
partTimerButtonView.SetBadgeActive(PartTimerManager.CheckLevelUp(globalGameData.CurrentCityId));
partTimerButtonView.OnClick.Subscribe(_ => partTimerButtonView.OnClick.Subscribe(_ =>
{ {
newGameData.Heart += 110;
PartTimerDialog.ShowDialog(cityData, partTimersData, () => PartTimerDialog.ShowDialog(cityData, partTimersData, () =>
{ {
// バッジ更新 partTimerButtonView.SetBadgeActive(PartTimerManager.CheckLevelUp(globalGameData.CurrentCityId));
}); });
}).AddTo(this); }).AddTo(this);

View File

@ -109,19 +109,11 @@ namespace MyGame.Scenes.WorldMap.Scripts
} }
// バイト強化可能か判定 // バイト強化可能か判定
var nextLevelData = partTimerDataList.FirstOrDefault(data => data.level == cityGameData.PartTimerLevel + 1); if (PartTimerManager.CheckLevelUp(cityIcon.CityId))
if (nextLevelData != null)
{
// 都市が開放されてから兄弟が働いて獲得したハートの合計
if (nextLevelData.needHeart <= GameDataUtils.GetPartTimerHeart(nextLevelData.cityId))
{
if (nextLevelData.needAmount <= cityGameData.Coin)
{ {
// 強化可能 // 強化可能
cityIcon.SetNotify(true); cityIcon.SetNotify(true);
} }
}
}
cityIcon.OnClick cityIcon.OnClick
.Where(_ => shareGate) .Where(_ => shareGate)
@ -219,8 +211,8 @@ namespace MyGame.Scenes.WorldMap.Scripts
private static (float heartProgress, float coinProgress) CalcPartTimerProgress(PartTimerData partTimerData, int elapsed) private static (float heartProgress, float coinProgress) CalcPartTimerProgress(PartTimerData partTimerData, int elapsed)
{ {
var heartProgress = partTimerData.heart / 10 * elapsed / partTimerData.maxHeart; var heartProgress = (float)partTimerData.heart / 10 * elapsed / partTimerData.maxHeart;
var coinProgress = partTimerData.sales / 10 * elapsed / partTimerData.maxSales; var coinProgress = (float)partTimerData.sales / 10 * elapsed / partTimerData.maxSales;
return (heartProgress, coinProgress); return (heartProgress, coinProgress);
} }
} }

View File

@ -52,10 +52,12 @@ namespace MyGame.Scripts
private static List<GameData> GetPartTimerList() private static List<GameData> GetPartTimerList()
{ {
var newList = GameDataManager.GameData.CityGameDataDict.Values.Where(data => data.IsFundingCompleted).ToList(); var newList = GameDataManager.GameData.CityGameDataDict.Values.Where(data => data.IsFundingCompleted).ToList();
if (newList.Count > 0) if (newList.Count <= 0)
{ {
newList.Add(GameDataManager.GameData); return newList;
} }
newList = newList.SkipLast(1).ToList();
newList.Add(GameDataManager.GameData);
return newList; return newList;
} }
@ -70,5 +72,15 @@ namespace MyGame.Scripts
var heart = (int)Mathf.Min((float)partTimerData.heart / 10 * elapsed, partTimerData.maxHeart); var heart = (int)Mathf.Min((float)partTimerData.heart / 10 * elapsed, partTimerData.maxHeart);
return (coin, heart); return (coin, heart);
} }
public static bool CheckLevelUp(int cityId)
{
var cityGameData = GameDataManager.GetCityGameData(cityId);
var partTimersData = SpreadsheetDataManager.Instance.GetBaseDataList<PartTimerData>(Const.PartTimerDataSheet);
var nextLevelData = partTimersData.FirstOrDefault(data => data.level == cityGameData.PartTimerLevel + 1);
if (nextLevelData == null) return false;
if (nextLevelData.needHeart > GameDataUtils.GetPartTimerHeart(nextLevelData.cityId)) return false;
return nextLevelData.needAmount <= cityGameData.Coin;
}
} }
} }