バイトと収益バッジ対応

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

View File

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

View File

@ -52,10 +52,12 @@ namespace MyGame.Scripts
private static List<GameData> GetPartTimerList()
{
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;
}
@ -70,5 +72,15 @@ namespace MyGame.Scripts
var heart = (int)Mathf.Min((float)partTimerData.heart / 10 * elapsed, partTimerData.maxHeart);
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;
}
}
}