Добавлена система забрать сейчас или играть дальше (в процессе реализации)

This commit is contained in:
se_ga 2026-04-02 11:39:30 +03:00
parent 6e41616b12
commit 526e67dbab
8 changed files with 416 additions and 6 deletions

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b50887584083feb439a32c7d29b03a09
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,40 @@
using PrizeSystem;
using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class PrizeView : MonoBehaviour
{
[SerializeField] private Image _image;
[SerializeField] private TextMeshProUGUI _label;
[SerializeField] private List<PrizeImageMap> map;
[SerializeField] private Sprite defaultSprite;
public void SetPrize(Prize prize)
{
_image.sprite = GetImage(prize.PrizeType);
_label.text = GetText(prize);
}
private string GetText(Prize prize) => RulesPrizePanel.GetPrizeText(prize);
private Sprite GetImage(PrizeType prizeType)
{
foreach (var mapItem in map)
if (mapItem.prizeType == prizeType) return mapItem.sprite;
return defaultSprite;
}
[Serializable]
public struct PrizeImageMap
{
public PrizeType prizeType;
public Sprite sprite;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 006a8f6ee593bb94d96ebb190f38e418
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,282 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2875758851730211012
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4769901412115232176}
- component: {fileID: 1203032466002125781}
m_Layer: 5
m_Name: PrizeView
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4769901412115232176
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2875758851730211012}
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_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6664003626657907884}
- {fileID: 7069304449374954144}
m_Father: {fileID: 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: 0, y: 0}
m_SizeDelta: {x: 350, y: 350}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1203032466002125781
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2875758851730211012}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 006a8f6ee593bb94d96ebb190f38e418, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::PrizeView
_image: {fileID: 8597922984813688388}
_label: {fileID: 4166301179147098465}
map:
- prizeType: 0
sprite: {fileID: 21300000, guid: 6e622d073fff38b468edb48bec60df75, type: 3}
- prizeType: 1
sprite: {fileID: 21300000, guid: 6e622d073fff38b468edb48bec60df75, type: 3}
- prizeType: 2
sprite: {fileID: 21300000, guid: 6e622d073fff38b468edb48bec60df75, type: 3}
- prizeType: 3
sprite: {fileID: 21300000, guid: 6e622d073fff38b468edb48bec60df75, type: 3}
- prizeType: 4
sprite: {fileID: 21300000, guid: 6e622d073fff38b468edb48bec60df75, type: 3}
- prizeType: 5
sprite: {fileID: 21300000, guid: 6e622d073fff38b468edb48bec60df75, type: 3}
- prizeType: 6
sprite: {fileID: 21300000, guid: 6e622d073fff38b468edb48bec60df75, type: 3}
defaultSprite: {fileID: 21300000, guid: 6e622d073fff38b468edb48bec60df75, type: 3}
--- !u!1 &3995041484942668027
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6664003626657907884}
- component: {fileID: 755257399479335942}
- component: {fileID: 8597922984813688388}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6664003626657907884
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3995041484942668027}
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_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4769901412115232176}
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: 0, y: 39.1}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &755257399479335942
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3995041484942668027}
m_CullTransparentMesh: 1
--- !u!114 &8597922984813688388
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3995041484942668027}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
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}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
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!1 &8097554898773150209
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7069304449374954144}
- component: {fileID: 5826936457847553742}
- component: {fileID: 4166301179147098465}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7069304449374954144
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8097554898773150209}
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_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4769901412115232176}
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: 0, y: -58.1}
m_SizeDelta: {x: 200, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5826936457847553742
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8097554898773150209}
m_CullTransparentMesh: 1
--- !u!114 &4166301179147098465
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8097554898773150209}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
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}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: New Text
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 3f10bbcf486189d4f95b8de6dc2e2177, type: 2}
m_sharedMaterial: {fileID: 4262305343556741190, guid: 3f10bbcf486189d4f95b8de6dc2e2177, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 32
m_fontSizeBase: 32
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 16
m_fontSizeMax: 64
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f8172e74629723c4e993e8ac2f322bdf
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,52 @@
using Newtonsoft.Json.Linq;
using UnityEngine;
using UnityEngine.UI;
public class TakeOrRiskPanel : MonoBehaviour
{
[SerializeField] Image CurrentPrizeFrame;
[SerializeField] Image NextPrizeFrame;
[SerializeField] private Color DisabledColor;
[SerializeField] float HSV_speed = 2;
private Image activeFrame;
private Image inactiveFrame;
private int index = 0;
private void OnEnable()
{
activeFrame = CurrentPrizeFrame;
inactiveFrame = NextPrizeFrame;
index = 0;
}
void Update()
{
// добавить скалирование
//подсветку на кнопку принять
if (In.GetButtonAnyPlayer(PlayerAction.left)) index = 0;
if (In.GetButtonAnyPlayer(PlayerAction.right)) index = 1;
if (index == 0)
{
activeFrame = CurrentPrizeFrame;
inactiveFrame = NextPrizeFrame;
}
else
{
activeFrame = NextPrizeFrame;
inactiveFrame = CurrentPrizeFrame;
}
float hue = (Time.time * HSV_speed) % 1f;
activeFrame.color = Color.HSVToRGB(hue, 1, 1);
inactiveFrame.color = DisabledColor;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f3423d0840f02b047839066a58f04a66
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -3,7 +3,6 @@ using UnityEngine;
using UnityEngine.UI;
using TMPro;
using PrizeSystem;
using System.Linq;
public class RulesPrizePanel : MonoBehaviour
{
@ -318,7 +317,7 @@ public class RulesPrizePanel : MonoBehaviour
//заполняем призы которые надо проинструктировать
HashSet<CountablePrizeType> countableTypes = new();
bool hasQr = false;
bool hasVitrina =false;
bool hasVitrina = false;
foreach (var prize in prizes)
{
@ -360,7 +359,7 @@ public class RulesPrizePanel : MonoBehaviour
generatedObjects.Add(block.gameObject);
}
}
string[] countableToString(IEnumerable<CountablePrizeType> values)
@ -368,7 +367,7 @@ public class RulesPrizePanel : MonoBehaviour
List<string> result = new List<string>();
foreach (CountablePrizeType type in values)
{
if(type == CountablePrizeType.Hopper || type == CountablePrizeType.Hopper2)
if (type == CountablePrizeType.Hopper || type == CountablePrizeType.Hopper2)
{
result.Add("Маленький приз");
}
@ -389,7 +388,7 @@ public class RulesPrizePanel : MonoBehaviour
private string GetPrizeText(Prize prize)
public static string GetPrizeText(Prize prize)
{
if (prize == null || prize is EmptyPrize)
{
@ -408,7 +407,7 @@ public class RulesPrizePanel : MonoBehaviour
}
else if (prize is VitrinaPrize vp)
{
return $"Витрина ячейки: {string.Join(" | ",vp.Boxes)}";
return $"Витрина ячейки: {string.Join(" | ", vp.Boxes)}";
}
else if (prize is QrPrize qp)
{