先修复一下,错误的场景 删除不必要的钓场资产 修复into场景 update:更新meta文件,修复报错 update:修复资源 修复第一章节建造 修复建造第三章 update:删除多余内容 update:更新README.md update:还原图标 update:更新README update:更新配置
262 lines
7.9 KiB
C#
262 lines
7.9 KiB
C#
using System.Collections.Generic;
|
||
using System;
|
||
using System.Linq;
|
||
|
||
public class AquariumSlotData
|
||
{
|
||
public int index { get; set; }
|
||
public int eggId { set; get; }
|
||
public int fishItemID { set; get; }
|
||
public int aquariumFishID { set; get; }
|
||
/// <summary>
|
||
/// 是否变异
|
||
/// </summary>
|
||
public int mutants { set; get; }
|
||
|
||
/// <summary>
|
||
/// maximum quantity 孵化的数量
|
||
/// </summary>
|
||
public int fishMQ { set; get; }
|
||
|
||
/// <summary>
|
||
/// 鱼卵开始孵化
|
||
/// </summary>
|
||
public DateTime startTime { set; get; }
|
||
|
||
/// <summary>
|
||
/// 孵化时间
|
||
/// </summary>
|
||
public float hatchTime { set; get; }
|
||
/// <summary>
|
||
/// 成长时间
|
||
/// </summary>
|
||
public float growthTime { set; get; }
|
||
|
||
/// <summary>
|
||
/// 孵化加速时间 每次加量不会超出当前剩余时间
|
||
/// </summary>
|
||
public float accelerationHatch { set; get; }
|
||
|
||
/// <summary>
|
||
/// 成长加速时间
|
||
/// </summary>
|
||
public float accelerationGrowth { set; get; }
|
||
|
||
|
||
/// <summary>
|
||
/// 多次受伤的恢复时间
|
||
/// </summary>
|
||
public float allRecoveryTime { set; get; }
|
||
public float recoveryTime { set; get; }
|
||
|
||
/// <summary>
|
||
/// 发现受伤时的成长时间 自然时间+加速成长 - 当时全部恢复时间
|
||
/// </summary>
|
||
public float injuryGrowthTime { set; get; }
|
||
|
||
/// <summary>
|
||
/// 全部结算的钱
|
||
/// </summary>
|
||
public float allCash { get; set; }
|
||
|
||
/// <summary>
|
||
/// 结算的钱
|
||
/// </summary>
|
||
public int cash { get; set; }
|
||
|
||
/// <summary>
|
||
/// 鱼从孵化到成熟的时间 孵化间+成长时间-加速孵化-加速成长+恢复时间
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public DateTime FishGrowthTime()
|
||
{
|
||
return startTime.AddHours(hatchTime + growthTime - accelerationHatch - accelerationGrowth + allRecoveryTime);
|
||
}
|
||
public DateTime FishHatchTime()
|
||
{
|
||
return startTime.AddHours(hatchTime - accelerationHatch);
|
||
}
|
||
|
||
public bool IsResult()
|
||
{
|
||
return cash > 0;
|
||
}
|
||
public string Serialize()
|
||
{
|
||
return $"{index}:{eggId}:{fishItemID}:{aquariumFishID}:{mutants}:{fishMQ}:{startTime.ToBinary()}:{hatchTime}:{growthTime}:{accelerationHatch}:{accelerationGrowth}:{allRecoveryTime}:{recoveryTime}:{injuryGrowthTime}:{allCash}:{cash}";
|
||
}
|
||
public static AquariumSlotData Deserialize(string s)
|
||
{
|
||
var parts = s.Split(':');
|
||
return new AquariumSlotData
|
||
{
|
||
index = int.Parse(parts[0]),
|
||
eggId = int.Parse(parts[1]),
|
||
fishItemID = int.Parse(parts[2]),
|
||
aquariumFishID = int.Parse(parts[3]),
|
||
mutants = int.Parse(parts[4]),
|
||
fishMQ = int.Parse(parts[5]),
|
||
startTime = DateTime.FromBinary(long.Parse(parts[6])),
|
||
hatchTime = float.Parse(parts[7]),
|
||
growthTime = float.Parse(parts[8]),
|
||
accelerationHatch = float.Parse(parts[9]),
|
||
accelerationGrowth = float.Parse(parts[10]),
|
||
allRecoveryTime = float.Parse(parts[11]),
|
||
recoveryTime = float.Parse(parts[12]),
|
||
injuryGrowthTime = float.Parse(parts[13]),
|
||
allCash = float.Parse(parts[14]),
|
||
cash = int.Parse(parts[15]),
|
||
};
|
||
}
|
||
}
|
||
|
||
public class AquariumHurtData
|
||
{
|
||
/// <summary>
|
||
/// lost quantity 被刺数量服务器修改
|
||
/// </summary>
|
||
public int fishLQ { set; get; }
|
||
/// <summary>
|
||
/// 服务器标记受伤 injuryTime > slotData.allRecoveryTime 受新伤
|
||
/// </summary>
|
||
public float injuryTime { set; get; }
|
||
}
|
||
|
||
public class AquariumResultData
|
||
{
|
||
/// <summary>
|
||
/// 如果鱼被刺走
|
||
/// </summary>
|
||
public string playerID { set; get; }
|
||
public string displayName { get; set; }
|
||
public bool IsResult()
|
||
{
|
||
return !string.IsNullOrEmpty(playerID);
|
||
}
|
||
}
|
||
|
||
|
||
public class AquariumManagerData
|
||
{
|
||
/// <summary>
|
||
/// 客户端维护数据
|
||
/// </summary>
|
||
//CCCCCCCCCCCCCC客户端维护数据CCCCCCCCCCCCCC
|
||
public DateTime startTime { set; get; }
|
||
public int mapId { set; get; } = 101;
|
||
public int slot { set; get; }
|
||
|
||
public List<AquariumSlotData> slotDatas { set; get; }
|
||
//CCCCCCCCCCCCCC客户端维护数据CCCCCCCCCCCCCC
|
||
|
||
//SSSSSSSSSSSSSS结算,服务器刺鱼刺走SSSSSSSSSSSSSS
|
||
public List<AquariumResultData> aquariumResultDatas { set; get; }
|
||
|
||
public List<AquariumHurtData> aquariumHurtDatas { set; get; }
|
||
//SSSSSSSSSSSSSS被刺鱼受伤SSSSSSSSSSSSSS
|
||
|
||
public int adCount { set; get; }
|
||
public bool isHome { set; get; }
|
||
public int startCount { set; get; }
|
||
public int refreshCount { set; get; }
|
||
public int refreshDay { set; get; }
|
||
|
||
public string Serialize()
|
||
{
|
||
string slotDataStr = string.Join(',', slotDatas.Select(s => s.Serialize()));
|
||
|
||
string resultDatas = string.Join(',', aquariumResultDatas.Select(s => $"{s.playerID}:{s.displayName}"));
|
||
string hurtDatas = string.Join(',', aquariumHurtDatas.Select(s => $"{s.fishLQ}:{s.injuryTime}"));
|
||
return $"{startTime.ToBinary()}|{mapId}|{slot}|{slotDataStr}|{resultDatas}|{hurtDatas}|{adCount}|{isHome}|{startCount}|{refreshCount}|{refreshDay}";
|
||
}
|
||
public static AquariumManagerData Deserialize(string s)
|
||
{
|
||
var parts = s.Split('|');
|
||
var slotDataStrs = parts[3].Split(new char[] { ',' });
|
||
var resultDataStrs = parts[4].Split(new char[] { ',' });
|
||
var hurtDataStrs = parts[5].Split(new char[] { ',' });
|
||
return new AquariumManagerData
|
||
{
|
||
startTime = DateTime.FromBinary(long.Parse(parts[0])),
|
||
mapId = int.Parse(parts[1]),
|
||
slot = int.Parse(parts[2]),
|
||
slotDatas = slotDataStrs.Select(s => AquariumSlotData.Deserialize(s)).ToList(),
|
||
aquariumResultDatas = resultDataStrs.Select(s =>
|
||
{
|
||
var rParts = s.Split(':');
|
||
return new AquariumResultData
|
||
{
|
||
playerID = rParts[0],
|
||
displayName = rParts.Length > 1 ? rParts[1] : ""
|
||
};
|
||
}).ToList(),
|
||
aquariumHurtDatas = hurtDataStrs.Select(s =>
|
||
{
|
||
var hParts = s.Split(':');
|
||
return new AquariumHurtData
|
||
{
|
||
fishLQ = int.Parse(hParts[0]),
|
||
injuryTime = float.Parse(hParts[1])
|
||
};
|
||
}).ToList(),
|
||
adCount = int.Parse(parts[6]),
|
||
isHome = bool.Parse(parts[7]),
|
||
startCount = int.Parse(parts[8]),
|
||
refreshCount = int.Parse(parts[9]),
|
||
refreshDay = int.Parse(parts[10]),
|
||
};
|
||
|
||
}
|
||
}
|
||
|
||
public class AquariumServerData
|
||
{
|
||
public DateTime startTime { set; get; }
|
||
public int mapId { set; get; }
|
||
public int slot { set; get; }
|
||
public List<AquariumSlotData> slotDatas { set; get; }
|
||
public string cardLv { set; get; }
|
||
|
||
public List<AquariumResultData> aquariumResultDatas { set; get; }
|
||
|
||
public List<AquariumHurtData> aquariumHurtDatas { set; get; }
|
||
}
|
||
public class UpdateAquariumAllDataRequest
|
||
{
|
||
public string playFabId { set; get; }
|
||
public AquariumServerData data { get; set; }
|
||
}
|
||
public class GetAquariumDataRequest
|
||
{
|
||
public string playFabId { set; get; }
|
||
}
|
||
public class GetAquariumDataResp
|
||
{
|
||
public int code { set; get; }
|
||
public string playFabId { set; get; }
|
||
public AquariumServerData data { get; set; }
|
||
}
|
||
|
||
public class UpdateSlotDatasRequest
|
||
{
|
||
public string playFabId { set; get; }
|
||
public List<AquariumSlotData> slotDatas { set; get; }
|
||
public string cardLv { set; get; }
|
||
}
|
||
|
||
public class RobFishRequest
|
||
{
|
||
public string playerId { set; get; }
|
||
/// <summary>
|
||
/// 被抢的人
|
||
/// </summary>
|
||
public string playFabId { set; get; }
|
||
/// <summary>
|
||
/// 被抢的槽位
|
||
/// </summary>
|
||
public int slotIndex { set; get; }
|
||
/// <summary>
|
||
/// 是否抢走
|
||
/// </summary>
|
||
public bool isRob { set; get; }
|
||
} |