using Assets.Scripts.Apis.Models; using PolyAndCode.UI; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; using Assets.Scripts; public class GameRoomCell : MonoBehaviour, ICell, IBeginDragHandler, IDragHandler, IEndDragHandler,IScrollHandler { public Text IdTxt; public Text RouteNameTxt; public Text RouteNameLightTxt; public Text RoomNameTxt; public Text DistanceTxt; public Text AltitudeGraphTxt; public Text GradeTxt; public Text DistanceLightTxt; public Text AltitudeGraphLightTxt; public Text GradeLightTxt; public Text MembersTxt; public Image HoverBgImg; public Image IconDitanceImg; public Image IconElevationImg; public Image IconGradeImg; public Image IconDistanceLightImg; public Image IconElevationLightImg; public Image IconGradeLightImg; public RawImage AltitudeGraphImg; public RawImage Owner; public RawImage Head1; public RawImage Head2; public RawImage Head3; public RawImage Head4; public RawImage Head5; public GameObject IconOwnerLight; public GameObject JoinBtn; public GameObject Lock; public GameObject LockL; private ScrollRect Scroll; private bool IsLock; private int Id; private string FileName; private GameRoomListController manager; private GameRoomModel gameRoom; private void Start() { manager = FindObjectOfType(); Scroll = GetComponentInParent(); UIManager.AddEvent(gameObject, EventTriggerType.PointerEnter, (e) => { LockL.SetActive(IsLock); Lock.SetActive(false); }); UIManager.AddEvent(gameObject, EventTriggerType.PointerExit, (e) => { LockL.SetActive(false); Lock.SetActive(IsLock); }); UIManager.AddEvent(JoinBtn, EventTriggerType.PointerClick, (e) => { manager.SelectRoom(gameRoom); if (IsLock) { manager.ShowPwdConfirm(); } else { manager.ShowDownLoadConfirm(); } }); } private float timer = 1f; private void Update() { timer -= Time.deltaTime; while (timer < 0) { timer += 1f; } } //This is called from the SetCell method in DataSource public void ConfigureCell(GameRoomModel cell, int cellIndex) { gameRoom = cell; RoomNameTxt.text = cell.Name; FileName = cell.FileName; var gradeText = $"{Math.Round(cell.AverageGrade,2)}%"; GradeLightTxt.text = gradeText; GradeTxt.text = gradeText; var distanceText = $"{Math.Round(cell.Distance,1)}KM"; DistanceTxt.text = distanceText; DistanceLightTxt.text = distanceText; var totalClimbText = $"{Math.Round(cell.TotalClimb)}M"; AltitudeGraphTxt.text = totalClimbText; AltitudeGraphLightTxt.text = totalClimbText; RouteNameTxt.text = cell.MapRouteName; RouteNameLightTxt.text = cell.MapRouteName; IdTxt.text = cell.Id.ToString().PadLeft(7,'0'); IsLock = cell.IsLock; Id = cell.Id; Lock.SetActive(IsLock); LockL.SetActive(false); Utils.DisplayImage(AltitudeGraphImg, cell.AltitudeGraph); Utils.DisplayImage(Owner, cell.WxHeadImg); } public void UpdateItem(string name, string gender, string id) { } public void OnBeginDrag(PointerEventData eventData) { Scroll.OnBeginDrag(eventData); } public void OnDrag(PointerEventData eventData) { Scroll.OnDrag(eventData); } public void OnEndDrag(PointerEventData eventData) { Scroll.OnEndDrag(eventData); } public void OnScroll(PointerEventData eventData) { Scroll.OnScroll(eventData); } }