素材不足時の赤色対応をレシピに追加/ 指定色 fb6346 に対応

This commit is contained in:
kimura 2021-10-12 13:15:35 +09:00
parent 669ed4350e
commit db6da0f6eb
5 changed files with 44 additions and 9 deletions

View File

@ -20,9 +20,16 @@ public class BulkOrderItemView : MonoBehaviour
[SerializeField] private Transform material1IconTarget;
[SerializeField] private Transform material2IconTarget;
[SerializeField] private Transform packageIconTarget;
private Color redColor;
public IObservable<Unit> CookingButton => cookingButton.OnClickAsObservable().TakeUntilDestroy(this);
private void Awake()
{
ColorUtility.TryParseHtmlString(Const.RedColorString, out redColor);
}
public void SetData(ProductData data)
{
stockText.text = data.volume.ToString();
@ -57,17 +64,17 @@ public class BulkOrderItemView : MonoBehaviour
if (gameData.CornSeed < productData.MaterialList[0].amount)
{
flag = false;
cornText.color = Color.red;
cornText.color = redColor;
}
if ((gameData.Material.FirstOrDefault(data => data.Id == productData.MaterialList[1].id)?.Amount ?? 0) < productData.MaterialList[1].amount)
{
flag = false;
material1Text.color = Color.red;
material1Text.color = redColor;
}
if (productData.GetMaterialCount() == 3 && (gameData.Material.FirstOrDefault(data => data.Id == productData.MaterialList[2].id)?.Amount ?? 0) < productData.MaterialList[2].amount)
{
flag = false;
material2Text.color = Color.red;
material2Text.color = redColor;
}
return flag;
}

View File

@ -31,9 +31,12 @@ public class RecipeDetailView : MonoBehaviour
[SerializeField] private Transform flavor1IconTarget;
[SerializeField] private Transform flavor2IconTarget;
[SerializeField] private GameObject flavor2View;
private Color redColor;
private void Start()
{
ColorUtility.TryParseHtmlString(Const.RedColorString, out redColor);
var viewType = LocalCacheManager.Load(Const.ProductViewTypeTag, ProductViewType.Default);
var data = LocalCacheManager.Load<ProductData>(PopcornGameManager.CookingDataTag);
@ -146,17 +149,17 @@ public class RecipeDetailView : MonoBehaviour
if (gameData.CornSeed < productData.MaterialList[0].amount)
{
flag = false;
cornAmountText.color = Color.red;
cornAmountText.color = redColor;
}
if ((gameData.Material.FirstOrDefault(data => data.Id == productData.MaterialList[1].id)?.Amount ?? 0) < productData.MaterialList[1].amount)
{
flag = false;
flavor1AmountText.color = Color.red;
flavor1AmountText.color = redColor;
}
if (productData.GetMaterialCount() == 3 && (gameData.Material.FirstOrDefault(data => data.Id == productData.MaterialList[2].id)?.Amount ?? 0) < productData.MaterialList[2].amount)
{
flag = false;
flavor2AmountText.color = Color.red;
flavor2AmountText.color = redColor;
}
return flag;
}

View File

@ -21,10 +21,12 @@ public class RecipeView : MonoBehaviour
private static readonly string amountFormat = "x{0}";
private static readonly string lockPanelTextFormat = "店舗レベル{0}で開放";
private static readonly string lockPanelTextShopFormat = "仕入れから購入可能";
private Color redColor;
public IObservable<Unit> RecipeClickObservable => detailButton.OnClickAsObservable().TakeUntilDestroy(this);
private void Start()
private void Awake()
{
ColorUtility.TryParseHtmlString(Const.RedColorString, out redColor);
}
public void SetRecipe(ProductData data)
@ -55,6 +57,7 @@ public class RecipeView : MonoBehaviour
{
flavor2View.SetActive(false);
}
CheckAmount(data);
if (data.shopLevel == Const.SpecialShopLevel)
{
@ -65,6 +68,28 @@ public class RecipeView : MonoBehaviour
lockPanelText.text = string.Format(lockPanelTextFormat, data.shopLevel);
}
}
private bool CheckAmount(ProductData productData)
{
var flag = true;
var gameData = GameDataManager.GameData;
if (gameData.CornSeed < productData.MaterialList[0].amount)
{
flag = false;
cornAmountText.color = redColor;
}
if ((gameData.Material.FirstOrDefault(data => data.Id == productData.MaterialList[1].id)?.Amount ?? 0) < productData.MaterialList[1].amount)
{
flag = false;
flavor1AmountText.color = redColor;
}
if (productData.GetMaterialCount() == 3 && (gameData.Material.FirstOrDefault(data => data.Id == productData.MaterialList[2].id)?.Amount ?? 0) < productData.MaterialList[2].amount)
{
flag = false;
flavor2AmountText.color = redColor;
}
return flag;
}
public void SetLockPanel(bool hasRecipe)
{

View File

@ -6,7 +6,6 @@ using UnityEngine.UI;
public class ShopItemPurchaseView : MonoBehaviour
{
public static readonly string ItemPurchaseTag = "ItemPurcahse";
private static readonly string redColorString= "#fb6346";
private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger");
private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger");
private static readonly int MaxPurchaseCount = 999;
@ -36,7 +35,7 @@ public class ShopItemPurchaseView : MonoBehaviour
{
currentCount.AddTo(this);
defaultColor = totalPrice.color;
ColorUtility.TryParseHtmlString(redColorString, out redColor);
ColorUtility.TryParseHtmlString(Const.RedColorString, out redColor);
// 表示データを受け取る
var data = LocalCacheManager.Load<(ShopData shopData, int stockCount, Action<int> callback)>(ItemPurchaseTag);
LocalCacheManager.Remove(ItemPurchaseTag);

View File

@ -12,6 +12,7 @@ public static class Const {
public static readonly int DefaultPanId = 1;
public static readonly int SpecialShopLevel = 9999;
public static readonly int NotSetMaterialId = 0;
public static readonly string RedColorString = "#fb6346";
// tag
public static readonly string GameDataTag = "GameData";