Files
MinFt/Client/Assets/Scripts/DataCenter/FishingBoxData.cs
Liubing\LB 3d8d4d18f3 first commit
先修复一下,错误的场景

删除不必要的钓场资产

修复into场景

update:更新meta文件,修复报错

update:修复资源

修复第一章节建造

修复建造第三章

update:删除多余内容

update:更新README.md

update:还原图标

update:更新README

update:更新配置
2026-04-28 02:17:22 +08:00

157 lines
4.3 KiB
C#

using asap.core;
using cfg;
using game;
using GameCore;
using LitJson;
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
[Serializable]
public class FishingBoxData
{
public Dictionary<int, int> FishingNewBoxs = new();
public Dictionary<int, int> FishingBoxOpenNum = new();
public void InitData(string data)
{
if (string.IsNullOrEmpty(data) == false)
{
var boxData = Newtonsoft.Json.JsonConvert.DeserializeObject<FishingBoxData>(data);
//FishingNewBoxs = boxData.FishingNewBoxs;
FishingBoxOpenNum = boxData.FishingBoxOpenNum;
//var firstItemID = FishingBoxDataProvier.firstFishingBoxID;
//for (int i = 0; i < FishingBoxDataProvier.QualityCount; i++)
//{
// if (!FishingNewBoxs.ContainsKey(firstItemID + i))
// {
// FishingNewBoxs.Add(firstItemID + i, 0);
// }
//}
}
}
public void InitDataNew(string data)
{
if (string.IsNullOrEmpty(data) == false)
{
var boxData = data.Split(';');
FishingBoxOpenNum = new Dictionary<int, int>();
for (int i = 0; i < boxData.Length; i++)
{
var itemData = boxData[i].Split(',');
if (itemData.Length == 2)
{
int itemID = int.Parse(itemData[0]);
int openNum = int.Parse(itemData[1]);
FishingBoxOpenNum.Add(itemID, openNum);
}
}
}
}
public void SetFishingBoxCount(int itemID, int value)
{
if (value < 0)
GContext.Publish(new ConditionTypeEvent { type = ConditionType.OpenFishBoxCount, count = -value });
if (FishingNewBoxs.ContainsKey(itemID))
{
FishingNewBoxs[itemID] += value;
}
else
{
FishingNewBoxs.Add(itemID, value);
}
}
public string GetString()
{
string fishingBoxOpenNum = "";
foreach (var box in FishingBoxOpenNum)
{
fishingBoxOpenNum += box.Key + "," + box.Value + ";";
}
return fishingBoxOpenNum.TrimEnd(';');
}
public int GetFishingBoxCount(int itemID)
{
if (FishingNewBoxs.ContainsKey(itemID))
{
return FishingNewBoxs[itemID];
}
return 0;
}
public void AddBoxOpenCount(int itemID, int count)
{
if (FishingBoxOpenNum.ContainsKey(itemID))
{
FishingBoxOpenNum[itemID] += count;
}
else
FishingBoxOpenNum.Add(itemID, count);
GContext.container.Resolve<PlayerData>().SavePlayerData();
}
public int GetFishingBoxOpenCount(int itemID)
{
if (FishingBoxOpenNum.ContainsKey(itemID))
{
return FishingBoxOpenNum[itemID];
}
return 1;
}
}
public class FishingBoxDataProvier
{
public static int QualityCount;
public static int firstFishingBoxID;
public bool IsUnclocked;
public FishingBoxData Data;
public FishingBoxDataProvier(Tables table)
{
firstFishingBoxID = table.TbBox.DataList[0].ID;
QualityCount = table.TbBox.DataList.Count;
_itemDropPackages = table.TbItemDropPackage.DataMap;
_boxInits = table.TbBoxInit.DataMap;
Data = GContext.container.Resolve<FishingBoxData>();
}
#region TablesData
private Dictionary<int, ItemDropPackage> _itemDropPackages;
private Dictionary<int, BoxInit> _boxInits;
#endregion
#region Get Function
public List<int> GetFishingBoxDropID(int itemID)
{
Data.AddBoxOpenCount(itemID, 1);
if (_boxInits.ContainsKey(itemID))
{
var boxInit = _boxInits[itemID];
var openCout = Data.GetFishingBoxOpenCount(itemID);
if (openCout <= boxInit.DropChange.Count && openCout != 0)
{
return _itemDropPackages[boxInit.DropChange[openCout - 1]].DropList;
}
}
return _itemDropPackages[itemID].DropList;
}
public int GetIDByQuality(int quality)
{
return firstFishingBoxID + quality;
}
public int GetBoxCount(int itemID)
{
return Data.GetFishingBoxCount(itemID);
}
#endregion
}