106 lines
3.4 KiB
C#
106 lines
3.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using asap.core;
|
|
using game;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Script.RuntimeScript.model.Data
|
|
{
|
|
public class DinggingSceneData
|
|
{
|
|
public string AllBroadJson;
|
|
public string AllPropJson;
|
|
public string AllCubeJson;
|
|
public string AllTempJson;
|
|
public string FirstTempJson;
|
|
|
|
private BroadData[] _allBroadData;
|
|
private GridData[] _allGridData;
|
|
private PropData[] _allPropData;
|
|
private List<List<PropTempData>> _allPropTempData;
|
|
private List<PropTempData> _firstTempData;
|
|
|
|
public void AnalysisData(List<ServerGridData> serverGrid)
|
|
{
|
|
_allBroadData = JsonConvert.DeserializeObject<BroadData[]>(AllBroadJson);
|
|
_allGridData = JsonConvert.DeserializeObject<GridData[]>(AllCubeJson);
|
|
_allPropData = JsonConvert.DeserializeObject<PropData[]>(AllPropJson);
|
|
_allPropTempData = JsonConvert.DeserializeObject<List<List<PropTempData>>>(AllTempJson);
|
|
if (!string.IsNullOrEmpty(FirstTempJson))
|
|
{
|
|
_firstTempData = JsonConvert.DeserializeObject<List<PropTempData>>(FirstTempJson);
|
|
if (_firstTempData.Count > 0)
|
|
{
|
|
_allPropTempData.Insert(0, _firstTempData);
|
|
}
|
|
}
|
|
GridData gData;
|
|
for (int i = 0; i < _allGridData.Length; i++)
|
|
{
|
|
gData = _allGridData[i];
|
|
gData.Init();
|
|
for (int j = 0; j < serverGrid.Count; j++)
|
|
{
|
|
if (serverGrid[j].Row == gData.Row && serverGrid[j].Col == gData.Col)
|
|
{
|
|
gData.IsOpen = serverGrid[j].IsOpen == 1;
|
|
gData.hasClickCount = serverGrid[j].hasClickCount;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
public void Reset()
|
|
{
|
|
_allGridData = new GridData[0];
|
|
_allPropData = new PropData[0];
|
|
}
|
|
public GridData GetGridData(int row, int col)
|
|
{
|
|
GridData gData;
|
|
for (int i = 0; i < _allGridData.Length; i++)
|
|
{
|
|
gData = _allGridData[i];
|
|
if (gData.Row == row && gData.Col == col)
|
|
{
|
|
return gData;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public BroadData[] GetAllBroadData()
|
|
{
|
|
return _allBroadData;
|
|
}
|
|
public GridData[] GetAllGridData()
|
|
{
|
|
return _allGridData;
|
|
}
|
|
|
|
public PropData[] GetAllPropData()
|
|
{
|
|
return _allPropData;
|
|
}
|
|
|
|
public List<PropTempData> GetAllPropTempData(int index)
|
|
{
|
|
if (_allPropTempData == null || _allPropTempData.Count == 0)
|
|
{
|
|
return null;
|
|
}
|
|
if (index > 0)
|
|
{
|
|
IUserService userService = GContext.container.Resolve<IUserService>();
|
|
System.Random random = new System.Random((int)Convert.ToUInt64(userService.UserId, 16));
|
|
int count = _allPropTempData.Count;
|
|
index += random.Next(0, count - 1);
|
|
if (index >= count)
|
|
{
|
|
index %= count;
|
|
}
|
|
}
|
|
return _allPropTempData[index];
|
|
}
|
|
}
|
|
|
|
} |