using Assets.Scripts; using Assets.Scripts.Apis.Models; using DG.Tweening; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class RaceItemScript : MonoBehaviour, IPointerExitHandler, IPointerEnterHandler, IPointerUpHandler { // Start is called before the first frame update public enum ItemType { big, small } private Transform parent; [SerializeField] ItemType myType; public MapCompetition mapCompetition { get; set; } void Start() { } // Update is called once per frame void Update() { } public void Initial(MapCompetition mapCompetition,Transform parent) { Utils.DisplayImage(transform.GetComponent(), mapCompetition.RouteCover, true); Utils.DisplayImage(transform.Find("InfoContainer/AltitudeCurve").GetComponent(), mapCompetition.AltitudeGraph, true); transform.Find("Text").GetComponent().SetTextWithEllipsis(mapCompetition.Title); transform.Find("GetReadyContainer").gameObject.SetActive(mapCompetition.Status == 2); //transform.Find("Text").GetComponent().text = mapCompetition.Title; //props.Find("DistanceText").GetComponent().text = $"{myMap.Distance.ToString(myMap.Distance > 1000 ? "#0" : "#0.00")}KM"; //props.Find("EleText").GetComponent().text = $"{(myMap.TotalClimb ?? 0.0).ToString(myMap.TotalClimb > 1000 ? "#0" : "#0.00")}M"; //props.Find("SlopeText").GetComponent().text = $"{myMap.AverageGrade.ToString("#0.00")}%"; transform.Find("InfoContainer/DataContainer/Distance/Text").GetComponent().text = $"{mapCompetition.Distance.ToString(mapCompetition.Distance > 1000 ? "#0" : "#0.00")}KM"; transform.Find("InfoContainer/DataContainer/Altitude/Text").GetComponent().text = $"{(mapCompetition.TotalClimb ?? 0.0).ToString(mapCompetition.TotalClimb > 1000 ? "#0" : "#0.00")}M"; transform.Find("InfoContainer/DataContainer/Slope/Text").GetComponent().text = $"{mapCompetition.AverageGrade.ToString("#0.00")}%"; transform.Find("InfoContainer/DataContainer/StartTime/Text").GetComponent().text = mapCompetition.StartTime.ToString(); SetStatus(mapCompetition); SetButtonGroup(mapCompetition); this.parent = parent; this.mapCompetition = mapCompetition; } private void SetButtonGroup(MapCompetition mapCompetition) { if (mapCompetition.Status == 1 || mapCompetition.Status == 3) { var game = Resources.Load("UI/Prefab/Race/ButtonGroup/BtnContainer-Enter"); var igame = Instantiate(game); igame.name = "BtnContainer"; igame.GetComponent().map = mapCompetition; igame.transform.SetParent(transform); igame.transform.localScale = Vector3.one; var loc = Vector3.zero; loc.y = myType == ItemType.big ? -252 : -257; igame.transform.localPosition = loc; } else if (mapCompetition.Status == 4) { var game = Resources.Load("UI/Prefab/Race/ButtonGroup/BtnContainer-Watch"); var igame = Instantiate(game); igame.name = "BtnContainer"; igame.GetComponent().map = mapCompetition; igame.transform.SetParent(transform); igame.transform.localScale = Vector3.one; var loc = Vector3.zero; loc.y = myType == ItemType.big ? -252 : -257; igame.transform.localPosition = loc; } else { if (myType == ItemType.big) { var game = Resources.Load("UI/Prefab/Race/ButtonGroup/BtnContainer-Double-H"); var igame = Instantiate(game); igame.name = "BtnContainer"; igame.GetComponent().map = mapCompetition; igame.transform.SetParent(transform); igame.transform.localScale = Vector3.one; var loc = Vector3.zero; loc.y = -252; igame.transform.localPosition = loc; } else { var game = Resources.Load("UI/Prefab/Race/ButtonGroup/BtnContainer-Double-V"); var igame = Instantiate(game); igame.name = "BtnContainer"; igame.GetComponent().map = mapCompetition; igame.transform.SetParent(transform); igame.transform.localScale = Vector3.one; var loc = Vector3.zero; loc.y = -209; igame.transform.localPosition = loc; } } } private Dictionary statusColorDict = new Dictionary { {2,"#F93086" },{3,"#41A6FE" },{4,"#6E6E7D" }, }; private void SetStatus(MapCompetition mapCompetition) { var status = transform.Find("Status"); if (mapCompetition.Status == 1) { status.gameObject.SetActive(false); } else { status.GetComponent().color = Utils.HexToColorHtml(statusColorDict[mapCompetition.Status]); status.Find("Text").GetComponent().text = mapCompetition.StatusVlaue; //status.gameObject.AddComponent(); //status.GetComponent().r.w = 20; //status.GetComponent().r.y = 20; } } public void OnPointerExit(PointerEventData eventData) { Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto); transform.Find("Masking").GetComponent().DOFade(0, 0.5f); transform.Find("Text").GetComponent().DOFade(0, 0.5f); transform.Find("BtnContainer").GetComponent().DOFade(0, 0.5f); transform.Find("CountContainer").GetComponent().DOFade(0, 0.5f); transform.Find("GetReadyContainer").GetComponent().DOFade(0, 0.5f); transform.Find("InfoContainer").GetComponent().DOFade(1, 0.5f); if (myType == ItemType.small) { transform.Find("InfoContainer").DOLocalMoveY(-225, 0.3f); } else { transform.Find("InfoContainer").DOLocalMoveY(-246, 0.3f); } if (this.parent != null) { this.parent.GetComponent().SetCurrentItem(null); //this.parent.SendMessage("SetCurrentItem", null, SendMessageOptions.RequireReceiver); } } public void OnPointerEnter(PointerEventData eventData) { Cursor.SetCursor(Resources.Load("Images/PointerButtonHover"), Vector2.zero, CursorMode.Auto); transform.Find("Masking").GetComponent().DOFade(1, 0.5f); transform.Find("Text").GetComponent().DOFade(1, 0.5f); transform.Find("BtnContainer").GetComponent().DOFade(1, 0.5f); transform.Find("CountContainer").GetComponent().DOFade(1, 0.5f); transform.Find("GetReadyContainer").GetComponent().DOFade(1, 0.5f); transform.Find("InfoContainer").GetComponent().DOFade(0, 0.5f); if (myType == ItemType.small) { transform.Find("InfoContainer").DOLocalMoveY(-139, 0.3f); } else { transform.Find("InfoContainer").DOLocalMoveY(-155, 0.3f); } if (this.parent != null) { this.parent.GetComponent().SetCurrentItem(transform); //this.parent.SendMessage("SetCurrentItem", transform); } } public void OnPointerUp(PointerEventData eventData) { Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto); } }