跳转新规则

This commit is contained in:
xiaohui.wang 2022-08-19 18:07:36 +08:00
parent 86a8a4e4c0
commit 480e651cd1
10 changed files with 677 additions and 32 deletions

View File

@ -150,7 +150,7 @@ public class BulkOrder : MonoBehaviour
var countByVolume = bulkOrderData.count1 / data1.volume; var countByVolume = bulkOrderData.count1 / data1.volume;
var productData = new ProductData(data1, countByVolume); var productData = new ProductData(data1, countByVolume);
productData.volume *= countByVolume; productData.volume *= countByVolume;
itemView1.SetData(productData); itemView1.SetData(productData,1);
if (gameData.CompletedProductList.FirstOrDefault(data => data.Number == 1) is BulkOrderResultData resultData) if (gameData.CompletedProductList.FirstOrDefault(data => data.Number == 1) is BulkOrderResultData resultData)
{ {
itemView1.SetCooked(resultData.Rarity); itemView1.SetCooked(resultData.Rarity);
@ -177,7 +177,7 @@ public class BulkOrder : MonoBehaviour
var countByVolume = bulkOrderData.count2 / data2.volume; var countByVolume = bulkOrderData.count2 / data2.volume;
var productData = new ProductData(data2, countByVolume); var productData = new ProductData(data2, countByVolume);
productData.volume *= countByVolume; productData.volume *= countByVolume;
itemView2.SetData(productData); itemView2.SetData(productData,2);
if (gameData.CompletedProductList.FirstOrDefault(data => data.Number == 2) is BulkOrderResultData resultData) if (gameData.CompletedProductList.FirstOrDefault(data => data.Number == 2) is BulkOrderResultData resultData)
{ {
itemView2.SetCooked(resultData.Rarity); itemView2.SetCooked(resultData.Rarity);
@ -204,7 +204,7 @@ public class BulkOrder : MonoBehaviour
var countByVolume = bulkOrderData.count3 / data3.volume; var countByVolume = bulkOrderData.count3 / data3.volume;
var productData = new ProductData(data3, countByVolume); var productData = new ProductData(data3, countByVolume);
productData.volume *= countByVolume; productData.volume *= countByVolume;
itemView3.SetData(productData); itemView3.SetData(productData,3);
if (gameData.CompletedProductList.FirstOrDefault(data => data.Number == 3) is BulkOrderResultData resultData) if (gameData.CompletedProductList.FirstOrDefault(data => data.Number == 3) is BulkOrderResultData resultData)
{ {
itemView3.SetCooked(resultData.Rarity); itemView3.SetCooked(resultData.Rarity);

View File

@ -1,5 +1,6 @@
using System; using System;
using System.Linq; using System.Linq;
using MyGame.Scripts;
using UniRx; using UniRx;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
@ -25,13 +26,18 @@ public class BulkOrderItemView : MonoBehaviour
public IObservable<Unit> CookingButton => cookingButton.OnClickAsObservable().TakeUntilDestroy(this); public IObservable<Unit> CookingButton => cookingButton.OnClickAsObservable().TakeUntilDestroy(this);
private void Awake() private void Awake()
{ {
ColorUtility.TryParseHtmlString(Const.RedColorString, out redColor); ColorUtility.TryParseHtmlString(Const.RedColorString, out redColor);
} }
ProductData m_data;
public void SetData(ProductData data) int m_number;
public void SetData(ProductData data,int number)
{ {
m_data = data;
m_number = number;
stockText.text = data.volume.ToString(); stockText.text = data.volume.ToString();
nameText.text = data.Name; nameText.text = data.Name;
cornText.text = string.Format(amountFormat, data.MaterialList[0].amount); cornText.text = string.Format(amountFormat, data.MaterialList[0].amount);
@ -56,7 +62,7 @@ public class BulkOrderItemView : MonoBehaviour
material2Text.transform.parent.gameObject.SetActive(false); material2Text.transform.parent.gameObject.SetActive(false);
} }
disabledObject.OnClickAsObservable().Take(1).Subscribe(_ => disabledObject.OnClickAsObservable().Subscribe(_ =>
{ {
onClichJump(data); onClichJump(data);
@ -70,23 +76,130 @@ public class BulkOrderItemView : MonoBehaviour
var checkResult = CheckAmounts(productData); var checkResult = CheckAmounts(productData);
if (!checkResult.material1) if (!checkResult.material1)
{ {
GetRewardDialog.ShowCollectCornDialog(() =>
TransitionManager.Instance.LoadScene(GameScenes.CornField); {
TransitionManager.Instance.LoadScene(GameScenes.CornField);
}, null);
} }
if (!checkResult.material2) if (!checkResult.material2)
{ {
TransitionManager.Instance.JumpId = productData.MaterialList[1].id; TransitionManager.Instance.JumpId = productData.MaterialList[1].id;
TransitionManager.Instance.LoadScene(GameScenes.shopping);
} }
if (!checkResult.material3) if (!checkResult.material3)
{ {
TransitionManager.Instance.JumpId = productData.MaterialList[2].id; TransitionManager.Instance.JumpId2 = productData.MaterialList[2].id;
TransitionManager.Instance.LoadScene(GameScenes.shopping);
}
if (!checkResult.material2 || !checkResult.material3)
{
if (!checkResult.material1)
{
return;
}
if (!checkResult.material2 && !checkResult.material3)
{
Jump(TransitionManager.Instance.JumpId);
TransitionManager.Instance.JumpId = -1;
if (TransitionManager.Instance.JumpId2 != -1)
{
ShopItemPurchaseView.jumpPurchaseAction = Jump;
}
}
else if (!checkResult.material2)
{
Jump(TransitionManager.Instance.JumpId);
TransitionManager.Instance.JumpId = -1;
}
else if (!checkResult.material3)
{
Jump(TransitionManager.Instance.JumpId2);
TransitionManager.Instance.JumpId2 = -1;
}
} }
} }
ShopData GetShopData(int itemid)
{
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);
var filteredShopDataList = shopDataList
.Where(data => !data.IsHide)
.Where(data => data.Category != ItemCategory.Special);
foreach (var shopData in filteredShopDataList)
{
if (shopData.itemId == itemid)
{
return shopData;
}
}
return null;
}
void Jump(int itemid)
{
ShopData shopData = GetShopData(itemid);
var gameData = GameDataManager.GameData;
if (null == shopData)
{
Debug.Log("null== shopData");
}
else if (CoinManager.Instance.OwnCoin < shopData.price)
{
GetRewardDialog.ShowUnColdDialog(() =>
{
Debug.Log("金币不足");
}, null);
}
else if (!ShopItemPurchaseView.jumpPurchase)
{
ShopItemPurchaseView.ShowDialog((shopData, Shopping.GetItemAmount(shopData)), (amount, amount1) =>
{
// アイテムを増やす
Shopping.AddItem(shopData, amount);
if (amount1 != -1)
{
CoinManager.Instance.SubCoin(amount1 * amount);
}
else
{
CoinManager.Instance.SubCoin(shopData.price * amount);
}
gameData.Coin = CoinManager.Instance.OwnCoin;
GameDataManager.SaveGameData();
if (gameData.CompletedProductList.FirstOrDefault(data => data.Number == m_number) is BulkOrderResultData resultData)
{
SetCooked(resultData.Rarity);
}
else
{
SetButtonActive(CheckAmount(m_data));
}
});
}
}
public static (bool material1, bool material2, bool material3) CheckAmounts(ProductData productData) public static (bool material1, bool material2, bool material3) CheckAmounts(ProductData productData)
{ {
(bool a, bool b, bool c) flags = (true, true, true); (bool a, bool b, bool c) flags = (true, true, true);
@ -116,16 +229,28 @@ public class BulkOrderItemView : MonoBehaviour
flag = false; flag = false;
cornText.color = redColor; cornText.color = redColor;
} }
else
{
cornText.color = new Color(110 / 255f, 76 / 255f, 49 / 255f);
}
if ((gameData.Material.FirstOrDefault(data => data.Id == productData.MaterialList[1].id)?.Amount ?? 0) < productData.MaterialList[1].amount) if ((gameData.Material.FirstOrDefault(data => data.Id == productData.MaterialList[1].id)?.Amount ?? 0) < productData.MaterialList[1].amount)
{ {
flag = false; flag = false;
material1Text.color = redColor; material1Text.color = redColor;
} }
else
{
material1Text.color = new Color(110 / 255f, 76 / 255f, 49 / 255f);
}
if (productData.GetMaterialCount() == 3 && (gameData.Material.FirstOrDefault(data => data.Id == productData.MaterialList[2].id)?.Amount ?? 0) < productData.MaterialList[2].amount) if (productData.GetMaterialCount() == 3 && (gameData.Material.FirstOrDefault(data => data.Id == productData.MaterialList[2].id)?.Amount ?? 0) < productData.MaterialList[2].amount)
{ {
flag = false; flag = false;
material2Text.color = redColor; material2Text.color = redColor;
} }
else
{
material2Text.color = new Color(110 / 255f, 76 / 255f, 49 / 255f);
}
return flag; return flag;
} }

View File

@ -767,6 +767,142 @@ MonoBehaviour:
randomPlaySEFilenames: [] randomPlaySEFilenames: []
randomPlayVoiceFilenames: [] randomPlayVoiceFilenames: []
vibrationType: 0 vibrationType: 0
--- !u!1 &239688310
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 239688311}
- component: {fileID: 239688315}
- component: {fileID: 239688314}
- component: {fileID: 239688313}
- component: {fileID: 239688312}
m_Layer: 5
m_Name: Button_OK
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &239688311
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 239688310}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1474298701}
m_Father: {fileID: 361105480}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: 140, y: 61}
m_SizeDelta: {x: 250, y: 130}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &239688312
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 239688310}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5e732834936f04d48be0ff3fa358563d, type: 3}
m_Name:
m_EditorClassIdentifier:
onClickPlaySEFilename: se_ButtonTap
randomPlaySEFilenames: []
randomPlayVoiceFilenames: []
vibrationType: 0
--- !u!114 &239688313
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 239688310}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 239688314}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &239688314
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 239688310}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: aa7d3d5ac0992464fb8f1491617b73bd, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &239688315
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 239688310}
m_CullTransparentMesh: 0
--- !u!1 &251547152 --- !u!1 &251547152
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -908,6 +1044,7 @@ RectTransform:
m_Children: m_Children:
- {fileID: 4540745} - {fileID: 4540745}
- {fileID: 208413210} - {fileID: 208413210}
- {fileID: 239688311}
- {fileID: 504822411} - {fileID: 504822411}
- {fileID: 1718841269} - {fileID: 1718841269}
m_Father: {fileID: 1336838852} m_Father: {fileID: 1336838852}
@ -1066,6 +1203,19 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 371454779} m_GameObject: {fileID: 371454779}
m_CullTransparentMesh: 0 m_CullTransparentMesh: 0
--- !u!114 &407448970
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bedef2aeaac8da04faa9a07b7241d0ad, type: 3}
m_Name:
m_EditorClassIdentifier:
mTarget: {fileID: 1474298703}
--- !u!1 &422199534 --- !u!1 &422199534
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1264,7 +1414,7 @@ RectTransform:
- {fileID: 251547153} - {fileID: 251547153}
- {fileID: 1793920306} - {fileID: 1793920306}
m_Father: {fileID: 361105480} m_Father: {fileID: 361105480}
m_RootOrder: 2 m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
@ -1929,6 +2079,7 @@ MonoBehaviour:
backgroundAnimator: {fileID: 1298517019} backgroundAnimator: {fileID: 1298517019}
closeButton: {fileID: 4540746} closeButton: {fileID: 4540746}
okButton: {fileID: 208413211} okButton: {fileID: 208413211}
okCornButton: {fileID: 239688313}
messageText: {fileID: 1879265584} messageText: {fileID: 1879265584}
narrowCloseButton: {fileID: 371454782} narrowCloseButton: {fileID: 371454782}
narrowOkButton: {fileID: 1986250439} narrowOkButton: {fileID: 1986250439}
@ -2057,6 +2208,121 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1469609942} m_GameObject: {fileID: 1469609942}
m_CullTransparentMesh: 0 m_CullTransparentMesh: 0
--- !u!1 &1474298700
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1474298701}
- component: {fileID: 1474298704}
- component: {fileID: 1474298703}
- component: {fileID: 1474298702}
m_Layer: 5
m_Name: Image_text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1474298701
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1474298700}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.3, y: 1.3, z: 1.3}
m_Children: []
m_Father: {fileID: 239688311}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 2.9, y: 4}
m_SizeDelta: {x: 64, y: 42}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1474298702
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1474298700}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3}
m_Name:
m_EditorClassIdentifier:
mTerm: ui_button_icon_ok_logo_big
mTermSecondary:
PrimaryTermModifier: 0
SecondaryTermModifier: 0
TermPrefix:
TermSuffix:
LocalizeOnAwake: 1
IgnoreRTL: 0
MaxCharactersInRTL: 0
IgnoreNumbersInRTL: 1
CorrectAlignmentForRTL: 1
AddSpacesToJoinedLanguages: 0
AllowLocalizedParameters: 1
AllowParameters: 1
TranslatedObjects:
- {fileID: 21300000, guid: 4372cbbdff809454881ff362f84c540c, type: 3}
LocalizeEvent:
m_PersistentCalls:
m_Calls: []
AlwaysForceLocalize: 0
LocalizeCallBack:
Target: {fileID: 0}
MethodName:
mGUI_ShowReferences: 0
mGUI_ShowTems: 1
mGUI_ShowCallback: 0
mLocalizeTarget: {fileID: 407448970}
mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Image
--- !u!114 &1474298703
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1474298700}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 4372cbbdff809454881ff362f84c540c, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &1474298704
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1474298700}
m_CullTransparentMesh: 0
--- !u!1 &1664081616 --- !u!1 &1664081616
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2331,7 +2597,7 @@ RectTransform:
m_Children: m_Children:
- {fileID: 1879265583} - {fileID: 1879265583}
m_Father: {fileID: 361105480} m_Father: {fileID: 361105480}
m_RootOrder: 3 m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}

View File

@ -36,8 +36,11 @@ public class RecipeDetailView : MonoBehaviour
private Color redColor; private Color redColor;
private void Start() private void Start()
{ {
ShopItemPurchaseView.refashStart = Start;
ColorUtility.TryParseHtmlString(Const.RedColorString, out redColor); ColorUtility.TryParseHtmlString(Const.RedColorString, out redColor);
var viewType = LocalCacheManager.Load(Const.ProductViewTypeTag, ProductViewType.Default); var viewType = LocalCacheManager.Load(Const.ProductViewTypeTag, ProductViewType.Default);
var data = LocalCacheManager.Load<ProductData>(PopcornGameManager.CookingDataTag); var data = LocalCacheManager.Load<ProductData>(PopcornGameManager.CookingDataTag);
@ -100,7 +103,7 @@ public class RecipeDetailView : MonoBehaviour
throw new ArgumentOutOfRangeException(); throw new ArgumentOutOfRangeException();
} }
disabledNextButton.OnClickAsObservable().Take(1).Subscribe(_ => disabledNextButton.OnClickAsObservable().Subscribe(_ =>
{ {
onClichJump(data); onClichJump(data);
@ -112,22 +115,125 @@ public class RecipeDetailView : MonoBehaviour
var checkResult = CheckAmount(productData); var checkResult = CheckAmount(productData);
if (!checkResult.material1) if (!checkResult.material1)
{ {
GetRewardDialog.ShowCollectCornDialog(() =>
TransitionManager.Instance.LoadScene(GameScenes.CornField); {
TransitionManager.Instance.LoadScene(GameScenes.CornField);
}, null);
} }
if (!checkResult.material2) if (!checkResult.material2)
{ {
TransitionManager.Instance.JumpId = productData.MaterialList[1].id; TransitionManager.Instance.JumpId = productData.MaterialList[1].id;
TransitionManager.Instance.LoadScene(GameScenes.shopping);
} }
if (!checkResult.material3) if (!checkResult.material3)
{ {
TransitionManager.Instance.JumpId = productData.MaterialList[2].id; TransitionManager.Instance.JumpId2 = productData.MaterialList[2].id;
TransitionManager.Instance.LoadScene(GameScenes.shopping);
}
if (!checkResult.material2|| !checkResult.material3)
{
if (!checkResult.material1)
{
return;
}
if (!checkResult.material2 && !checkResult.material3)
{
Jump(TransitionManager.Instance.JumpId);
TransitionManager.Instance.JumpId = -1;
if (TransitionManager.Instance.JumpId2 != -1)
{
ShopItemPurchaseView.jumpPurchaseAction = Jump;
}
}
else if(!checkResult.material2)
{
Jump(TransitionManager.Instance.JumpId);
TransitionManager.Instance.JumpId = -1;
}
else if (!checkResult.material3)
{
Jump(TransitionManager.Instance.JumpId2);
TransitionManager.Instance.JumpId2 = -1;
}
} }
} }
ShopData GetShopData(int itemid)
{
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);
var filteredShopDataList = shopDataList
.Where(data => !data.IsHide)
.Where(data => data.Category != ItemCategory.Special);
foreach (var shopData in filteredShopDataList)
{
if (shopData.itemId==itemid)
{
return shopData;
}
}
return null;
}
void Jump(int itemid)
{
ShopData shopData = GetShopData(itemid);
var gameData = GameDataManager.GameData;
if (null== shopData)
{
Debug.Log("null== shopData");
}
else if (CoinManager.Instance.OwnCoin < shopData.price)
{
GetRewardDialog.ShowUnColdDialog(()=>
{
Debug.Log("金币不足");
}, null);
}
else if (!ShopItemPurchaseView.jumpPurchase)
{
ShopItemPurchaseView.ShowDialog((shopData, Shopping.GetItemAmount(shopData)), (amount, amount1) =>
{
// アイテムを増やす
Shopping.AddItem(shopData, amount);
if (amount1 != -1)
{
CoinManager.Instance.SubCoin(amount1 * amount);
}
else
{
CoinManager.Instance.SubCoin(shopData.price * amount);
}
gameData.Coin = CoinManager.Instance.OwnCoin;
GameDataManager.SaveGameData();
});
}
}
public static void ConsumeMaterial(ProductData productData) public static void ConsumeMaterial(ProductData productData)
{ {
var gameData = GameDataManager.GameData; var gameData = GameDataManager.GameData;
@ -201,14 +307,26 @@ public class RecipeDetailView : MonoBehaviour
{ {
cornAmountText.color = redColor; cornAmountText.color = redColor;
} }
else
{
cornAmountText.color = new Color(110 / 255f, 76 / 255f, 49 / 255f);
}
if (!checkResult.material2) if (!checkResult.material2)
{ {
flavor1AmountText.color = redColor; flavor1AmountText.color = redColor;
} }
else
{
flavor1AmountText.color = new Color(110 / 255f, 76 / 255f, 49 / 255f);
}
if (!checkResult.material3) if (!checkResult.material3)
{ {
flavor2AmountText.color = redColor; flavor2AmountText.color = redColor;
} }
else
{
flavor2AmountText.color = new Color(110 / 255f, 76 / 255f, 49 / 255f);
}
return checkResult.material1 && checkResult.material2 && checkResult.material3; return checkResult.material1 && checkResult.material2 && checkResult.material3;
} }

View File

@ -36,6 +36,13 @@ public class ShopItemPurchaseView : MonoBehaviour
private Color defaultColor; private Color defaultColor;
private readonly IntReactiveProperty currentCount = new IntReactiveProperty(); private readonly IntReactiveProperty currentCount = new IntReactiveProperty();
int nowprice = -1; int nowprice = -1;
public static bool jumpPurchase=false;
public static Action<int> jumpPurchaseAction ;
public static Action refashStart;
private void Start() private void Start()
{ {
currentCount.AddTo(this); currentCount.AddTo(this);
@ -126,9 +133,25 @@ public class ShopItemPurchaseView : MonoBehaviour
purchaseOnButton.gameObject.SetActive(active); purchaseOnButton.gameObject.SetActive(active);
purchaseOffButton.SetActive(!active); purchaseOffButton.SetActive(!active);
} }
private void OnDestroy()
{
jumpPurchase = false;
if (null!= jumpPurchaseAction&& TransitionManager.Instance.JumpId2!=-1)
{
jumpPurchaseAction(TransitionManager.Instance.JumpId2);
jumpPurchaseAction = null;
TransitionManager.Instance.JumpId2 = -1;
}
if (null!= refashStart)
{
refashStart();
}
}
public static void ShowDialog((ShopData shopData, int stockCount) data, Action<int,int> onPurchase, Action onClose = null) public static void ShowDialog((ShopData shopData, int stockCount) data, Action<int,int> onPurchase, Action onClose = null)
{ {
jumpPurchase = true;
LocalCacheManager.Save(ItemPurchaseTag, data); LocalCacheManager.Save(ItemPurchaseTag, data);
LocalCacheManager.Save(PurchaseCallbackTag, onPurchase); LocalCacheManager.Save(PurchaseCallbackTag, onPurchase);
LocalCacheManager.Save(CloseCallbackTag, onClose); LocalCacheManager.Save(CloseCallbackTag, onClose);

View File

@ -138,15 +138,42 @@ public class ShopItemView : MonoBehaviour
soldOutObject.SetActive(true); soldOutObject.SetActive(true);
} }
SetItemActive(shopData.price <= CoinManager.Instance.OwnCoin); SetItemActive(shopData.price <= CoinManager.Instance.OwnCoin);
var gameData = GameDataManager.GameData; //var gameData = GameDataManager.GameData;
if (shopData.price <= gameData.Coin&& TransitionManager.Instance.JumpId!=-1) //if (shopData.price <= gameData.Coin&& (TransitionManager.Instance.JumpId!=-1|| TransitionManager.Instance.JumpId2 != -1))
{ //{
if (null!= jumpPurchase&& TransitionManager.Instance.JumpId== shopData.itemId) // if (null!= jumpPurchase)
{ // {
jumpPurchase(); // if (TransitionManager.Instance.JumpId == shopData.itemId)
TransitionManager.Instance.JumpId = -1; // {
} // TransitionManager.Instance.JumpId = -1;
} // if (ShopItemPurchaseView.jumpPurchase)
// {
// ShopItemPurchaseView.jumpPurchaseAction = jumpPurchase;
// }
// else
// {
// jumpPurchase();
// }
// }
// if (TransitionManager.Instance.JumpId2 == shopData.itemId)
// {
// TransitionManager.Instance.JumpId2 = -1;
// if (ShopItemPurchaseView.jumpPurchase)
// {
// ShopItemPurchaseView.jumpPurchaseAction = jumpPurchase;
// }
// else
// {
// jumpPurchase();
// }
// }
// }
//}
} }
private void OnDestroy() private void OnDestroy()

View File

@ -235,7 +235,7 @@ public class Shopping : MonoBehaviour
} }
} }
private static int GetItemAmount(ShopData shopData) public static int GetItemAmount(ShopData shopData)
{ {
var gameData = GameDataManager.GameData; var gameData = GameDataManager.GameData;
switch (shopData.Category) switch (shopData.Category)

View File

@ -19,7 +19,9 @@ namespace MyGame.Scripts
Butter, Butter,
StrawBerry, StrawBerry,
Sale, Sale,
Cold Cold,
UnCoin,
CollectCorn
} }
private static readonly string OkCallbackTag = "GetRewardDialogOkCallbackTag"; private static readonly string OkCallbackTag = "GetRewardDialogOkCallbackTag";
@ -33,6 +35,9 @@ namespace MyGame.Scripts
[SerializeField] private Animator backgroundAnimator; [SerializeField] private Animator backgroundAnimator;
[SerializeField] private Button closeButton; [SerializeField] private Button closeButton;
[SerializeField] private Button okButton; [SerializeField] private Button okButton;
[SerializeField] private Button okCornButton;
[SerializeField] private Text messageText; [SerializeField] private Text messageText;
[SerializeField] private Button narrowCloseButton; [SerializeField] private Button narrowCloseButton;
[SerializeField] private Button narrowOkButton; [SerializeField] private Button narrowOkButton;
@ -157,12 +162,36 @@ namespace MyGame.Scripts
//JoypacAnalyticsManager.DesignEvent(StaticStringsEvent.Ad, StaticStringsEvent.Impression, position); //JoypacAnalyticsManager.DesignEvent(StaticStringsEvent.Ad, StaticStringsEvent.Impression, position);
SetButtonAction(closeButton, okButton, "","","","","","");// AdManager.AD_PLACEMENT_VIP); SetButtonAction(closeButton, okButton, "","","","","","");// AdManager.AD_PLACEMENT_VIP);
break; break;
case RewardType.UnCoin:
okButton.gameObject.SetActive(false);
normalWindow.SetActive(true);
movieObject.SetActive(false);
closeButton.transform.localPosition = new Vector3(0, closeButton.transform.localPosition.y, 0);
messageText.text = I2.Loc.LocalizationManager.GetTranslation("Joypac/UnCoin");
//position = StaticStringsEvent.Sale;
//JoypacAnalyticsManager.DesignEvent(StaticStringsEvent.Ad, StaticStringsEvent.Impression, position);
SetButtonAction(closeButton, okButton, "", "", "", "", "", "");// AdManager.AD_PLACEMENT_VIP);
break;
case RewardType.CollectCorn:
okButton.gameObject.SetActive(false);
okCornButton.gameObject.SetActive(true);
normalWindow.SetActive(true);
movieObject.SetActive(false);
// closeButton.transform.localPosition = new Vector3(0, closeButton.transform.localPosition.y, 0);
messageText.text = I2.Loc.LocalizationManager.GetTranslation("Joypac/CollectCorn");
cornCollect = true;
//position = StaticStringsEvent.Sale;
//JoypacAnalyticsManager.DesignEvent(StaticStringsEvent.Ad, StaticStringsEvent.Impression, position);
SetButtonAction(closeButton, okCornButton, "", "", "", "", "", "");// AdManager.AD_PLACEMENT_VIP);
break;
default: default:
throw new ArgumentOutOfRangeException(); throw new ArgumentOutOfRangeException();
} }
} }
bool cornCollect = false;
private void SetButtonAction(Button closeButton, Button okButton, string Placement, string name, string extras, string from, string AdsShowCome, string AdsShowAdType) private void SetButtonAction(Button closeButton, Button okButton, string Placement, string name, string extras, string from, string AdsShowCome, string AdsShowAdType)
{ {
closeButton.OnClickAsObservable().Take(1).Subscribe(_ => closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
@ -178,6 +207,12 @@ namespace MyGame.Scripts
}).AddTo(this); }).AddTo(this);
okButton.OnClickAsObservable().Take(1).Subscribe(_ => okButton.OnClickAsObservable().Take(1).Subscribe(_ =>
{ {
if (cornCollect)
{
LocalCacheManager.Load<Action>(OkCallbackTag, null)?.Invoke();
LocalCacheManager.Remove(OkCallbackTag);
return;
}
if (!String.IsNullOrEmpty(Placement)) if (!String.IsNullOrEmpty(Placement))
{ {
JoypacAnalyticsManager.Instance.AdEvent(name, extras, from, AdsShowCome, AdsShowAdType); JoypacAnalyticsManager.Instance.AdEvent(name, extras, from, AdsShowCome, AdsShowAdType);
@ -283,5 +318,15 @@ namespace MyGame.Scripts
{ {
ShowDialog(RewardType.Cold, okCallback, closeCallback); ShowDialog(RewardType.Cold, okCallback, closeCallback);
} }
public static void ShowUnColdDialog(Action okCallback = null, Action closeCallback = null)
{
ShowDialog(RewardType.UnCoin, okCallback, closeCallback);
}
public static void ShowCollectCornDialog(Action okCallback = null, Action closeCallback = null)
{
ShowDialog(RewardType.CollectCorn, okCallback, closeCallback);
}
} }
} }

View File

@ -68,6 +68,8 @@ public sealed class TransitionManager : SingletonMonoBehaviour<TransitionManager
private int jumpId=-1; private int jumpId=-1;
private int jumpId2 = -1;
public int JumpId public int JumpId
{ {
get get
@ -83,6 +85,21 @@ public sealed class TransitionManager : SingletonMonoBehaviour<TransitionManager
} }
} }
public int JumpId2
{
get
{
return jumpId2;
}
set
{
if (value != jumpId2)
{
jumpId2 = value;
}
}
}
// void Awake(){ // void Awake(){
// #if UNITY_EDITOR // #if UNITY_EDITOR

View File

@ -9064,6 +9064,30 @@ MonoBehaviour:
- Watch Ads - Watch Ads
Flags: 0000000000 Flags: 0000000000
Languages_Touch: [] Languages_Touch: []
- Term: Joypac/UnCoin
TermType: 0
Description:
Languages:
- Insufficient gold coins, unable to buy materials quickly
- "\u91D1\u5E01\u4E0D\u8DB3\uFF0C\u65E0\u6CD5\u5FEB\u901F\u8D2D\u4E70\u6750\u6599..."
- "\u91D1\u5E01\u4E0D\u8DB3\uFF0C\u65E0\u6CD5\u5FEB\u901F\u8D2D\u4E70\u6750\u6599..."
- "\uAE08\uD654\uAC00 \uBD80\uC871\uD574 \uC7AC\uB8CC\uB97C \uBE68\uB9AC \uAD6C\uC785\uD560
\uC218 \uC5C6\uC2B5\uB2C8\uB2E4..."
- Insufficient gold coins, unable to buy materials quickly
Flags: 0000000000
Languages_Touch: []
- Term: Joypac/CollectCorn
TermType: 0
Description:
Languages:
- There is not enough corn. Do you collect corn?
- "\u7389\u7C73\u4E0D\u8DB3\uFF0C\u662F\u5426\u6536\u96C6\u7389\u7C73?"
- "\u7389\u7C73\u4E0D\u8DB3\uFF0C\u662F\u5426\u6536\u96C6\u7389\u7C73?"
- "\uC625\uC218\uC218\uAC00 \uBD80\uC871\uD558\uB2C8 \uC625\uC218\uC218\uB97C
\uBAA8\uC73C\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?"
- There is not enough corn. Do you collect corn?
Flags: 0000000000
Languages_Touch: []
- Term: Item/BulkOrderRequestText0001 - Term: Item/BulkOrderRequestText0001
TermType: 0 TermType: 0
Description: Description:
@ -13694,7 +13718,7 @@ MonoBehaviour:
Google_WebServiceURL: https://script.google.com/macros/s/AKfycbxAg2bNhBHxnqGjGTVIIFlEsKD2wXypCvIkfmB3/exec Google_WebServiceURL: https://script.google.com/macros/s/AKfycbxAg2bNhBHxnqGjGTVIIFlEsKD2wXypCvIkfmB3/exec
Google_SpreadsheetKey: 1nes_cxyWMST2V_p3717sbtV0kNEPDx0x6mMjJFd9GU4 Google_SpreadsheetKey: 1nes_cxyWMST2V_p3717sbtV0kNEPDx0x6mMjJFd9GU4
Google_SpreadsheetName: I2Loc Joypac Popcorn Localization Google_SpreadsheetName: I2Loc Joypac Popcorn Localization
Google_LastUpdatedVersion: 1657269818811 Google_LastUpdatedVersion: 1660894656935
Google_Password: change_this Google_Password: change_this
GoogleUpdateFrequency: 1 GoogleUpdateFrequency: 1
GoogleInEditorCheckFrequency: 1 GoogleInEditorCheckFrequency: 1