Merge branch 'feature/1.7.0' of bitbucket.org:usaya/popcorn into feature/1.7.0
This commit is contained in:
commit
666699f7b6
|
@ -0,0 +1 @@
|
||||||
|
tH3z3Et10Knf4DgmAzuyNeZ7dYAsZVGGIxyUvbKPolUDqZJeexF/XwPpsBiPbouNvG39NB9EZOmGMlUZ1m980sZTu9k8bIFfmKQlHcJLjTdpITS5YMOfyUNNM/HIO9Nf
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 421e6ff37efa34561b5988b4609d80d6
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -35,8 +35,9 @@ namespace MyGame.Scenes.Main.Scripts
|
||||||
var (coin, heart) = PartTimerManager.CalcEarnings(partTimerData, cityGameData.PartTimerElapsed);
|
var (coin, heart) = PartTimerManager.CalcEarnings(partTimerData, cityGameData.PartTimerElapsed);
|
||||||
coinText.text = coin.ToString();
|
coinText.text = coin.ToString();
|
||||||
heartText.text = heart.ToString();
|
heartText.text = heart.ToString();
|
||||||
shopCustomizeObject.SetActive(PartTimerManager.Instance.CheckEarningsCustomizeCoin(true));
|
var customizeCoin = PartTimerManager.Instance.CheckEarningsCustomizeCoin();
|
||||||
shopCustomizeCoinText.text = "1";
|
shopCustomizeObject.SetActive(customizeCoin > 0);
|
||||||
|
shopCustomizeCoinText.text = customizeCoin.ToString();
|
||||||
|
|
||||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using MyGame.Scenes.Main.Scripts;
|
||||||
using MyGame.Scenes.marketing.Scripts;
|
using MyGame.Scenes.marketing.Scripts;
|
||||||
using MyGame.Scripts;
|
using MyGame.Scripts;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
|
@ -26,9 +27,10 @@ public class MarketManager : MonoBehaviour
|
||||||
[SerializeField] private Transform coinPrefab;
|
[SerializeField] private Transform coinPrefab;
|
||||||
[SerializeField] private Transform rootTransform;
|
[SerializeField] private Transform rootTransform;
|
||||||
[SerializeField] private TutorialObjectMask walkerMask;
|
[SerializeField] private TutorialObjectMask walkerMask;
|
||||||
|
[SerializeField] private GameObject dollarBag;
|
||||||
private Market market;
|
private Market market;
|
||||||
List<ProductData> productDataList;
|
List<ProductData> productDataList;
|
||||||
private bool isPartTimer;
|
private bool isPartTimerMode;
|
||||||
|
|
||||||
private readonly Subject<Unit> customerRewardTimerUpdateSubject = new Subject<Unit>();
|
private readonly Subject<Unit> customerRewardTimerUpdateSubject = new Subject<Unit>();
|
||||||
private readonly Subject<Unit> vipTimerUpdateSubject = new Subject<Unit>();
|
private readonly Subject<Unit> vipTimerUpdateSubject = new Subject<Unit>();
|
||||||
|
@ -41,7 +43,7 @@ public class MarketManager : MonoBehaviour
|
||||||
vipTimerUpdateSubject.AddTo(this);
|
vipTimerUpdateSubject.AddTo(this);
|
||||||
market = WorldMarketManager.Instance.GetCurrentCityMarket();
|
market = WorldMarketManager.Instance.GetCurrentCityMarket();
|
||||||
market.CheckPartTimerMode();
|
market.CheckPartTimerMode();
|
||||||
isPartTimer = market.IsPartTimer;
|
isPartTimerMode = market.IsPartTimer;
|
||||||
|
|
||||||
SoundManager.Instance.PlayBGM("bgm_marketing");
|
SoundManager.Instance.PlayBGM("bgm_marketing");
|
||||||
var globalGameData = GameDataManager.GameData;
|
var globalGameData = GameDataManager.GameData;
|
||||||
|
@ -63,12 +65,36 @@ public class MarketManager : MonoBehaviour
|
||||||
// 最新の都市ではない場合、バイトが有効
|
// 最新の都市ではない場合、バイトが有効
|
||||||
if (!market.IsLatestCity)
|
if (!market.IsLatestCity)
|
||||||
{
|
{
|
||||||
partTimerView.StartAnimation(isPartTimer);
|
partTimerView.StartAnimation(isPartTimerMode);
|
||||||
}
|
}
|
||||||
if (isPartTimer)
|
dollarBag.SetActive(isPartTimerMode && cityGameData.PartTimerElapsed > 10);
|
||||||
|
if (isPartTimerMode)
|
||||||
{
|
{
|
||||||
rewardButtonView.gameObject.SetActive(false);
|
rewardButtonView.gameObject.SetActive(false);
|
||||||
vipCustomerButtonView.gameObject.SetActive(false);
|
vipCustomerButtonView.gameObject.SetActive(false);
|
||||||
|
|
||||||
|
var partTimersData = SpreadsheetDataManager.Instance.GetBaseDataList<PartTimerData>(Const.PartTimerDataSheet);
|
||||||
|
dollarBag.AddComponent<ObservableEventTrigger>().OnPointerClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
|
{
|
||||||
|
dollarBag.SetActive(false);
|
||||||
|
// dialog表示時点の値をcache
|
||||||
|
var partTimerElapsed = cityGameData.PartTimerElapsed;
|
||||||
|
EarningsReportDialog.ShowDialog((coinPos, heartPos) =>
|
||||||
|
{
|
||||||
|
var partTimerData = partTimersData.First(data => data.level == cityGameData.PartTimerLevel);
|
||||||
|
var (coin, heart) = PartTimerManager.CalcEarnings(partTimerData, partTimerElapsed);
|
||||||
|
cityGameData.WaitAddHeart += heart;
|
||||||
|
HeartMeter.Instance.AddHeartForBulkOrder(heartPos, () =>
|
||||||
|
{
|
||||||
|
cityGameData.MoveHeart(heart);
|
||||||
|
});
|
||||||
|
CoinManager.Instance.AddCoinForBulkOrder(coin, coinPos);
|
||||||
|
cityGameData.Coin = CoinManager.Instance.OwnCoin;
|
||||||
|
cityGameData.PartTimerElapsed -= partTimerElapsed;
|
||||||
|
globalGameData.ShopCustomizeCoin += PartTimerManager.Instance.GetCustomizeCoin();
|
||||||
|
GameDataManager.SaveGameData();
|
||||||
|
});
|
||||||
|
}).AddTo(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!globalGameData.FinishedFlags.HasFlag(TutorialFlag.FirstPlay))
|
if (!globalGameData.FinishedFlags.HasFlag(TutorialFlag.FirstPlay))
|
||||||
|
@ -157,8 +183,8 @@ public class MarketManager : MonoBehaviour
|
||||||
{
|
{
|
||||||
vipCustomerButtonView.SetActive(isPause);
|
vipCustomerButtonView.SetActive(isPause);
|
||||||
// バイト君モードでは兄弟非表示
|
// バイト君モードでは兄弟非表示
|
||||||
blueView.SetActive(!isPartTimer && !isPause);
|
blueView.SetActive(!isPartTimerMode && !isPause);
|
||||||
BrotherPinkView.Instance.SetActive(!isPartTimer && !isPause);
|
BrotherPinkView.Instance.SetActive(!isPartTimerMode && !isPause);
|
||||||
// 最新の都市ではない場合バイト非表示
|
// 最新の都市ではない場合バイト非表示
|
||||||
partTimerView.SetActive(!market.IsLatestCity && !isPause);
|
partTimerView.SetActive(!market.IsLatestCity && !isPause);
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
@ -313,7 +339,7 @@ displayFlavors: {market.DisplayFlavors.Aggregate("", (s, data) => $"{s},{data.Fl
|
||||||
.Subscribe(x =>
|
.Subscribe(x =>
|
||||||
{
|
{
|
||||||
var (isClose, isPromotion) = x;
|
var (isClose, isPromotion) = x;
|
||||||
if (isClose || isPartTimer)
|
if (isClose || isPartTimerMode)
|
||||||
{
|
{
|
||||||
BrotherPinkView.Instance.StopTasting();
|
BrotherPinkView.Instance.StopTasting();
|
||||||
rewardButtonView.gameObject.SetActive(false);
|
rewardButtonView.gameObject.SetActive(false);
|
||||||
|
@ -491,7 +517,7 @@ displayFlavors: {market.DisplayFlavors.Aggregate("", (s, data) => $"{s},{data.Fl
|
||||||
}).AddTo(customerAnimator);
|
}).AddTo(customerAnimator);
|
||||||
var eventTrigger = customerAnimator.gameObject.AddComponent<ObservableEventTrigger>();
|
var eventTrigger = customerAnimator.gameObject.AddComponent<ObservableEventTrigger>();
|
||||||
eventTrigger.OnPointerClickAsObservable()
|
eventTrigger.OnPointerClickAsObservable()
|
||||||
.Where(_ => !isPartTimer)
|
.Where(_ => !isPartTimerMode)
|
||||||
.Take(1)
|
.Take(1)
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
|
|
|
@ -3473,6 +3473,7 @@ MonoBehaviour:
|
||||||
type: 3}
|
type: 3}
|
||||||
rootTransform: {fileID: 714437465}
|
rootTransform: {fileID: 714437465}
|
||||||
walkerMask: {fileID: 237651842}
|
walkerMask: {fileID: 237651842}
|
||||||
|
dollarBag: {fileID: 1217099569}
|
||||||
--- !u!1 &1026166058
|
--- !u!1 &1026166058
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -4171,6 +4172,8 @@ GameObject:
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 1217099570}
|
- component: {fileID: 1217099570}
|
||||||
- component: {fileID: 1217099571}
|
- component: {fileID: 1217099571}
|
||||||
|
- component: {fileID: 1217099573}
|
||||||
|
- component: {fileID: 1217099572}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: DollarBag
|
m_Name: DollarBag
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
|
@ -4201,8 +4204,8 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 128, y: -321}
|
m_AnchoredPosition: {x: 78, y: -271}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 100, y: 100}
|
||||||
m_Pivot: {x: 0, y: 1}
|
m_Pivot: {x: 0, y: 1}
|
||||||
--- !u!95 &1217099571
|
--- !u!95 &1217099571
|
||||||
Animator:
|
Animator:
|
||||||
|
@ -4224,6 +4227,30 @@ Animator:
|
||||||
m_HasTransformHierarchy: 1
|
m_HasTransformHierarchy: 1
|
||||||
m_AllowConstantClipSamplingOptimization: 1
|
m_AllowConstantClipSamplingOptimization: 1
|
||||||
m_KeepAnimatorControllerStateOnDisable: 0
|
m_KeepAnimatorControllerStateOnDisable: 0
|
||||||
|
--- !u!114 &1217099572
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1217099569}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ee012d4774ae943b49c2443232200135, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!222 &1217099573
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1217099569}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &1235629312
|
--- !u!1 &1235629312
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
|
@ -74,6 +74,9 @@ public static class Const {
|
||||||
public static readonly string CityDataSheet = "CityData";
|
public static readonly string CityDataSheet = "CityData";
|
||||||
public static readonly string FundingDataSheet = "FundingData";
|
public static readonly string FundingDataSheet = "FundingData";
|
||||||
public static readonly string PartTimerDataSheet = "PartTimerData";
|
public static readonly string PartTimerDataSheet = "PartTimerData";
|
||||||
|
public static readonly string CityShopLevelDataSheet = "CityShopLevelData";
|
||||||
|
public static readonly string ItemConditionDataSheet = "ItemConditionData";
|
||||||
|
public static readonly string ScriptConditionDataSheet = "ScriptConditionData";
|
||||||
|
|
||||||
// language
|
// language
|
||||||
public static readonly string LangJapanDataSheet = "LangJapanData";
|
public static readonly string LangJapanDataSheet = "LangJapanData";
|
||||||
|
@ -118,6 +121,9 @@ public static class Const {
|
||||||
new SheetData(Const.CityDataSheet),
|
new SheetData(Const.CityDataSheet),
|
||||||
new SheetData(Const.FundingDataSheet),
|
new SheetData(Const.FundingDataSheet),
|
||||||
new SheetData(Const.PartTimerDataSheet),
|
new SheetData(Const.PartTimerDataSheet),
|
||||||
|
new SheetData(Const.CityShopLevelDataSheet),
|
||||||
|
new SheetData(Const.ItemConditionDataSheet),
|
||||||
|
new SheetData(Const.ScriptConditionDataSheet),
|
||||||
};
|
};
|
||||||
public static readonly SheetData[] LanguageSheetNameList = new SheetData[]{
|
public static readonly SheetData[] LanguageSheetNameList = new SheetData[]{
|
||||||
new SheetData(Const.LangJapanDataSheet, "LanguageData"),
|
new SheetData(Const.LangJapanDataSheet, "LanguageData"),
|
||||||
|
|
|
@ -200,7 +200,9 @@ public sealed class GameData {
|
||||||
// バイト君
|
// バイト君
|
||||||
public int PartTimerLevel;
|
public int PartTimerLevel;
|
||||||
public int PartTimerElapsed; // ゲーム起動中経過時間
|
public int PartTimerElapsed; // ゲーム起動中経過時間
|
||||||
public int CustomizeCoinElapsed; // 羽の獲得用経過時間
|
|
||||||
|
private int[] usedItemCondition;
|
||||||
|
public List<int> UsedItemCondition;
|
||||||
|
|
||||||
// mission
|
// mission
|
||||||
[DataMember(Name = "Data1001")]
|
[DataMember(Name = "Data1001")]
|
||||||
|
@ -571,6 +573,7 @@ public sealed class GameData {
|
||||||
ScrollGameStageScoreList = ScrollGameStageScoreList ?? new List<ScrollGameScoreData>();
|
ScrollGameStageScoreList = ScrollGameStageScoreList ?? new List<ScrollGameScoreData>();
|
||||||
CityGameDataDict ??= new CityGameDataDict();
|
CityGameDataDict ??= new CityGameDataDict();
|
||||||
FundingDict ??= new FundingDict();
|
FundingDict ??= new FundingDict();
|
||||||
|
UsedItemCondition = usedItemCondition?.ToList() ?? new List<int>();
|
||||||
}
|
}
|
||||||
private Dictionary<int, int> ArrayToDictionary(KeyValueOfintint[] array){
|
private Dictionary<int, int> ArrayToDictionary(KeyValueOfintint[] array){
|
||||||
var dictionary = new Dictionary<int, int>();
|
var dictionary = new Dictionary<int, int>();
|
||||||
|
@ -587,6 +590,7 @@ public sealed class GameData {
|
||||||
// lastAdRewardTimeArray = lastAdRewardTimeList.ToArray();
|
// lastAdRewardTimeArray = lastAdRewardTimeList.ToArray();
|
||||||
achievedMission = AchievedMission.ToArray();
|
achievedMission = AchievedMission.ToArray();
|
||||||
deliveredOrder = DeliveredOrder.ToArray();
|
deliveredOrder = DeliveredOrder.ToArray();
|
||||||
|
usedItemCondition = UsedItemCondition.ToArray();
|
||||||
// CityGameData
|
// CityGameData
|
||||||
foreach (var cityGameData in CityGameDataDict.Values)
|
foreach (var cityGameData in CityGameDataDict.Values)
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace MyGame.Scripts
|
||||||
|
{
|
||||||
|
public class ItemConditionUtils
|
||||||
|
{
|
||||||
|
public static List<ItemConditionData> GetList()
|
||||||
|
{
|
||||||
|
return SpreadsheetDataManager.Instance.GetBaseDataList<ItemConditionData>(Const.ItemConditionDataSheet);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<ScriptConditionData> GetScriptList()
|
||||||
|
{
|
||||||
|
return SpreadsheetDataManager.Instance.GetBaseDataList<ScriptConditionData>(Const.ScriptConditionDataSheet);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<ItemConditionData> GetList(int cityId)
|
||||||
|
{
|
||||||
|
return SpreadsheetDataManager.Instance.GetBaseDataList<ItemConditionData>(Const.ItemConditionDataSheet)
|
||||||
|
.Where(data => data.cityId == cityId)
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<ItemConditionData> GetList(int cityId, ItemCondition condition)
|
||||||
|
{
|
||||||
|
return SpreadsheetDataManager.Instance.GetBaseDataList<ItemConditionData>(Const.ItemConditionDataSheet)
|
||||||
|
.Where(data => data.cityId == cityId)
|
||||||
|
.Where(data => data.Condition == condition)
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<ItemConditionData> GetGlobalList(ItemCondition condition, int value) => GetList(0, condition, value);
|
||||||
|
public static List<ItemConditionData> GetGlobalList(ItemCondition condition, int value, RewardActionType rewardActionType, bool ignoreUsed = false) => GetList(0, condition, value, rewardActionType, ignoreUsed);
|
||||||
|
public static List<ItemConditionData> GetList(int cityId, ItemCondition condition, int value)
|
||||||
|
{
|
||||||
|
return SpreadsheetDataManager.Instance.GetBaseDataList<ItemConditionData>(Const.ItemConditionDataSheet)
|
||||||
|
.Where(data => data.cityId == cityId)
|
||||||
|
.Where(data => data.Condition == condition)
|
||||||
|
.Where(data => data.needValue <= value)
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<ItemConditionData> GetList(int cityId, ItemCondition condition, int value, RewardActionType rewardActionType, bool ignoreUsed = false)
|
||||||
|
{
|
||||||
|
var ignoreList = ignoreUsed ? GameDataManager.GameData.UsedItemCondition : new List<int>();
|
||||||
|
return SpreadsheetDataManager.Instance.GetBaseDataList<ItemConditionData>(Const.ItemConditionDataSheet)
|
||||||
|
.Where(data => data.cityId == cityId)
|
||||||
|
.Where(data => data.Condition == condition)
|
||||||
|
.Where(data => data.needValue <= value)
|
||||||
|
.Where(data => data.RewardActionType == rewardActionType)
|
||||||
|
.Where(data => !ignoreList.Contains(data.id) )
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<ScriptConditionData> GetScriptList(int cityId, ItemCondition condition)
|
||||||
|
{
|
||||||
|
return SpreadsheetDataManager.Instance.GetBaseDataList<ScriptConditionData>(Const.ScriptConditionDataSheet)
|
||||||
|
.Where(data => data.cityId == cityId)
|
||||||
|
.Where(data => data.Condition == condition)
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<ScriptConditionData> GetScriptList(int cityId, ItemCondition condition, int value)
|
||||||
|
{
|
||||||
|
return SpreadsheetDataManager.Instance.GetBaseDataList<ScriptConditionData>(Const.ScriptConditionDataSheet)
|
||||||
|
.Where(data => data.cityId == cityId)
|
||||||
|
.Where(data => data.Condition == condition)
|
||||||
|
.Where(data => data.needValue <= value)
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Use(ItemConditionData itemConditionData)
|
||||||
|
{
|
||||||
|
GameDataManager.GameData.UsedItemCondition.Add(itemConditionData.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e6fa9bff677e4168bd7a82981de94ce4
|
||||||
|
timeCreated: 1667534395
|
|
@ -12,9 +12,6 @@ namespace MyGame.Scripts
|
||||||
{
|
{
|
||||||
[SerializeField] private int updateTiming = 2;
|
[SerializeField] private int updateTiming = 2;
|
||||||
[SerializeField] private int saveTiming = 10;
|
[SerializeField] private int saveTiming = 10;
|
||||||
[SerializeField] private int shopCustomizeCoinTiming = 86400; // 1day
|
|
||||||
[SerializeField] private int targetCount = 3;
|
|
||||||
private int checkCount;
|
|
||||||
private float saveElapsed;
|
private float saveElapsed;
|
||||||
private List<GameData> partTimerList;
|
private List<GameData> partTimerList;
|
||||||
private void Start()
|
private void Start()
|
||||||
|
@ -38,8 +35,6 @@ namespace MyGame.Scripts
|
||||||
cityGameData.PartTimerElapsed += updateTiming;
|
cityGameData.PartTimerElapsed += updateTiming;
|
||||||
}
|
}
|
||||||
|
|
||||||
GameDataManager.GameData.CustomizeCoinElapsed += updateTiming;
|
|
||||||
|
|
||||||
saveElapsed += updateTiming;
|
saveElapsed += updateTiming;
|
||||||
if (saveTiming < saveElapsed)
|
if (saveTiming < saveElapsed)
|
||||||
{
|
{
|
||||||
|
@ -79,13 +74,15 @@ namespace MyGame.Scripts
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public int GetCustomizeCoin()
|
public int GetCustomizeCoin()
|
||||||
{
|
{
|
||||||
if (CheckEarningsCustomizeCoin())
|
// 達成リスト
|
||||||
|
var list = ItemConditionUtils.GetGlobalList(ItemCondition.TotalHeart, GameDataUtils.GetTotalHeart(), RewardActionType.CustomizeCoin, true);
|
||||||
|
var rewardCount = 0;
|
||||||
|
list.ForEach(data =>
|
||||||
{
|
{
|
||||||
checkCount = 0;
|
rewardCount += data.value;
|
||||||
GameDataManager.GameData.CustomizeCoinElapsed -= shopCustomizeCoinTiming;
|
ItemConditionUtils.Use(data);
|
||||||
return 1;
|
});
|
||||||
}
|
return rewardCount;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -93,24 +90,7 @@ namespace MyGame.Scripts
|
||||||
/// checkCountがTargetCount以上になれば受取可能
|
/// checkCountがTargetCount以上になれば受取可能
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public bool CheckEarningsCustomizeCoin(bool withCount = false)
|
public int CheckEarningsCustomizeCoin() => ItemConditionUtils.GetGlobalList(ItemCondition.TotalHeart, GameDataUtils.GetTotalHeart(), RewardActionType.CustomizeCoin, true).Sum(data => data.value);
|
||||||
{
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
Debug.Log($"CustomizeCoinElapsed:{GameDataManager.GameData.CustomizeCoinElapsed}/{shopCustomizeCoinTiming} checkCount:{checkCount}/{targetCount}");
|
|
||||||
#endif
|
|
||||||
if (shopCustomizeCoinTiming <= GameDataManager.GameData.CustomizeCoinElapsed)
|
|
||||||
{
|
|
||||||
if (withCount)
|
|
||||||
{
|
|
||||||
checkCount++;
|
|
||||||
}
|
|
||||||
if (targetCount <= checkCount)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static (int coin, int heart) CalcEarnings(PartTimerData partTimerData, int elapsed)
|
public static (int coin, int heart) CalcEarnings(PartTimerData partTimerData, int elapsed)
|
||||||
{
|
{
|
||||||
|
|
|
@ -181,6 +181,16 @@ public enum ScrollGameDifficulty
|
||||||
Extra = 4
|
Extra = 4
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum ItemCondition
|
||||||
|
{
|
||||||
|
TotalHeart = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum RewardActionType
|
||||||
|
{
|
||||||
|
CustomizeCoin = 1
|
||||||
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
public sealed class MissionData
|
public sealed class MissionData
|
||||||
{
|
{
|
||||||
|
@ -677,4 +687,37 @@ public sealed class PartTimerData
|
||||||
public int maxSales;
|
public int maxSales;
|
||||||
public int maxHeart;
|
public int maxHeart;
|
||||||
public string prefabName;
|
public string prefabName;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public sealed class CityShopLevelData
|
||||||
|
{
|
||||||
|
public int id;
|
||||||
|
public int cityId;
|
||||||
|
public int shopLevel;
|
||||||
|
public int heart;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public sealed class ItemConditionData
|
||||||
|
{
|
||||||
|
public int id;
|
||||||
|
public int cityId;
|
||||||
|
public int condition;
|
||||||
|
public int needValue;
|
||||||
|
public int action;
|
||||||
|
public int value;
|
||||||
|
public ItemCondition Condition => (ItemCondition) condition;
|
||||||
|
public RewardActionType RewardActionType => (RewardActionType) action;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public sealed class ScriptConditionData
|
||||||
|
{
|
||||||
|
public int id;
|
||||||
|
public int cityId;
|
||||||
|
public int condition;
|
||||||
|
public int needValue;
|
||||||
|
public int scriptId;
|
||||||
|
public ItemCondition Condition => (ItemCondition) condition;
|
||||||
}
|
}
|
Loading…
Reference in New Issue