Roulette/Assets/Scripts/BettingSpace.cs
2023-03-05 23:59:18 +05:30

86 lines
2.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class BettingSpace : MonoBehaviour
{
public float ratio = 1;
EventTrigger eventTrigger;
Image image;
Color defaultColor;
RectTransform rect;
public Vector3 curPosition;
public float distance;
public int Number;
void Start()
{
rect = GetComponent<RectTransform>();
image = GetComponent<Image>();
defaultColor = image.color;
eventTrigger = GetComponent<EventTrigger>();
EventTrigger.Entry OnEnter = new EventTrigger.Entry();
OnEnter.eventID = EventTriggerType.PointerEnter;
OnEnter.callback.AddListener(onEnter);
EventTrigger.Entry OnExit = new EventTrigger.Entry();
OnExit.eventID = EventTriggerType.PointerExit;
OnExit.callback.AddListener(onExit);
EventTrigger.Entry OnClick = new EventTrigger.Entry();
OnClick.eventID = EventTriggerType.PointerClick;
OnClick.callback.AddListener(onClick);
eventTrigger.triggers.Add(OnEnter);
eventTrigger.triggers.Add(OnExit);
eventTrigger.triggers.Add(OnClick);
curPosition = transform.position;
RouletteManager.RegisterBettingSpace(this);
}
Color changedColor {get { return new Color(defaultColor.r,defaultColor.g,defaultColor.b,defaultColor.a*0.5f);}}
void onEnter(BaseEventData e){
if(RouletteManager.spinning){return;}
RouletteManager.HighlightBettingSpace(new List<int>(){Number});
}
void onExit(BaseEventData e){
if(RouletteManager.spinning){return;}
RouletteManager.ClearHighlightedBettingSpaces();
}
void onClick(BaseEventData e){
if(RouletteManager.spinning){return;}
PointerEventData ped = (PointerEventData) e as PointerEventData;
if(ped.button == PointerEventData.InputButton.Left){
if(RouletteManager.MoneyAvailable < RouletteManager.SelectedChip){return;}
GameObject newChip = Instantiate(RouletteManager.SelectedChipItem.gameObject, transform);
newChip.GetComponent<RectTransform>().localPosition = Vector3.zero;
newChip.GetComponent<RectTransform>().sizeDelta = new Vector2(50,50);
RouletteManager.AddBet(RouletteManager.SelectedChip, CombinerType.Single, new List<int>(){Number}, newChip);
}else{
RouletteManager.ClearBets(new List<int>(){Number});
Debug.Log("Clearing bets on number " + Number);
}
}
public void SetHighlighted(bool value){
// image.color = value ? changedColor : defaultColor;
GetComponent<Outline>().effectColor = new Color(1,1,1, (value) ? 0.5f:0);
}
}