This commit is contained in:
2026-07-21 04:36:52 +08:00
parent a8b4691d1e
commit a5e9edcf6e
17 changed files with 704 additions and 29 deletions
@@ -629,10 +629,10 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
return;
//foreach (var item in bossList)
//{
// if (item.fishNumber == "13037")
// if (item.fishNumber == "11030")
// item.isCreate = 2;
// if (item.fishNumber == "11035")
// if (item.fishNumber == "11027")
// item.isCreate = 2;
// // if (item.fishNumber == "11030")
// // item.isCreate = 2;
+15
View File
@@ -178,6 +178,21 @@ namespace Assets.MyGame.Scripts.Net
dic_API[APIType.Customer_Status] = "/customerapi/Customer/status";
dic_API[APIType.Customer_ChatLog] = "/customerapi/Customer/chatlog/{conversationId}";
dic_API[APIType.Customer_MyConversations] = "/customerapi/Customer/my-conversations";
// ---------------- 补充:暂未使用但已注册,方便后续接入 ----------------
dic_API[APIType.Login_LoginByPassword] = "/api/Login/LoginByPassword";
dic_API[APIType.User_GetUserAssets] = "/api/User/GetUserAssets";
dic_API[APIType.User_GetFishingReturnInfo] = "/api/User/GetFishingReturnInfo";
dic_API[APIType.User_ClaimFishingReturn] = "/api/User/ClaimFishingReturn";
dic_API[APIType.ActivityConfig_LotteryConfig] = "/api/ActivityConfig/lotteryConfig";
dic_API[APIType.Lottery_Config] = "/api/Lottery/Config";
dic_API[APIType.Lottery_Draw] = "/api/Lottery/Draw";
dic_API[APIType.Lottery_UserStatus] = "/api/Lottery/UserStatus";
dic_API[APIType.Lottery_DrawnPrizes] = "/api/Lottery/DrawnPrizes";
dic_API[APIType.SummonCard_Use] = "/api/SummonCard/use";
dic_API[APIType.Dict_GetByCode] = "/api/Dict/GetByCode";
dic_API[APIType.Dict_GetListByCode] = "/api/Dict/GetListByCode";
dic_API[APIType.Hall_GetBattleOrderLevelStatus] = "/api/Hall/GetBattleOrderLevelStatus";
}
// ---------------- GET ----------------
@@ -0,0 +1,71 @@
using System;
namespace Assets.MyGame.Scripts.Net.APIRequest.Params
{
// ============================================================
// 补充参数类:以下接口暂未接入业务,但已注册到 APIManager,
// 方便后续快速接入。按 swagger 路径分组放置。
// ============================================================
// ---------------- /api/Login/LoginByPassword(POST) ----------------
/// <summary>密码登录请求体</summary>
[Serializable]
public class LoginByPasswordParam : RequestParamBase
{
/// <summary>账号(手机号/用户名)</summary>
public string account;
/// <summary>密码</summary>
public string password;
}
// ---------------- /api/User/GetFishingReturnInfo(GET) ----------------
/// <summary>获取捕鱼返利信息参数</summary>
[Serializable]
public class GetFishingReturnInfoParam : RequestParamBase
{
// 后端文档未明确字段,预留 userId;按需补充
public string userId;
}
// ---------------- /api/User/ClaimFishingReturn(GET) ----------------
/// <summary>领取捕鱼返利参数</summary>
[Serializable]
public class ClaimFishingReturnParam : RequestParamBase
{
public string userId;
}
// ---------------- /api/Lottery/Draw(GET) ----------------
/// <summary>抽奖参数</summary>
[Serializable]
public class LotteryDrawParam : RequestParamBase
{
/// <summary>抽奖活动 ID(按后端定义补充)</summary>
public int lotteryId;
}
// ---------------- /api/SummonCard/use(GET) ----------------
/// <summary>使用召唤卡参数</summary>
[Serializable]
public class SummonCardUseParam : RequestParamBase
{
/// <summary>召唤卡编号</summary>
public string cardNumber;
}
// ---------------- /api/Dict/GetByCode(GET) ----------------
/// <summary>字典查询参数(按 code 取单条)</summary>
[Serializable]
public class DictGetByCodeParam : RequestParamBase
{
public string code;
}
// ---------------- /api/Dict/GetListByCode(GET) ----------------
/// <summary>字典列表查询参数(按 code 取列表)</summary>
[Serializable]
public class DictGetListByCodeParam : RequestParamBase
{
public string code;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 0ba31229aeeedc2459e34f8417b52a88
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,117 @@
using Assets.MyGame.Scripts.Net.API;
using Assets.MyGame.Scripts.Net.APIRequest.Params;
using Assets.MyGame.Scripts.Net.APIResponses;
using System;
using System.Collections.Generic;
namespace Assets.MyGame.Scripts.Net
{
/// <summary>
/// 补充请求方法:以下接口暂未接入业务,仅注册调用入口。
/// 字段类型为推测,接入业务前请按后端实际返回再调整。
/// </summary>
public static partial class APIRequestList
{
// ---------------- Login ----------------
/// <summary>
/// 密码登录(POST /api/Login/LoginByPassword)
/// 当前用 LoginPhone 已够用,暂不接入。
/// </summary>
public static void LoginByPassword(LoginByPasswordParam req, Action<UserToken> callback)
{
APIManager.Response<UserToken>(APIType.Login_LoginByPassword, req, obj =>
{
GameManager.Instance.user = obj;
callback?.Invoke(obj);
});
}
// ---------------- User ----------------
/// <summary>
/// 获取当前用户资产 + 背包(GET /api/User/GetUserAssets)
/// 当前直接用 GetUser 已够用,暂不接入。
/// </summary>
public static void GetUserAssets(Action<UserAssetsResponse> callback)
{
APIManager.Response<UserAssetsResponse>(APIType.User_GetUserAssets, callback);
}
/// <summary>获取捕鱼返利信息(GET /api/User/GetFishingReturnInfo)</summary>
public static void GetFishingReturnInfo(Action<FishingReturnInfoResponse> callback)
{
APIManager.Response<FishingReturnInfoResponse>(APIType.User_GetFishingReturnInfo, callback);
}
/// <summary>领取捕鱼返利金币(GET /api/User/ClaimFishingReturn)</summary>
public static void ClaimFishingReturn(Action<ClaimFishingReturnResponse> callback)
{
APIManager.Response<ClaimFishingReturnResponse>(APIType.User_ClaimFishingReturn, callback);
}
// ---------------- ActivityConfig ----------------
/// <summary>奖池抽奖活动配置(GET /api/ActivityConfig/lotteryConfig)</summary>
public static void GetLotteryActivityConfig(Action<LotteryConfigResponse> callback)
{
APIManager.Response<LotteryConfigResponse>(APIType.ActivityConfig_LotteryConfig, callback);
}
// ---------------- Lottery ----------------
/// <summary>抽奖配置(GET /api/Lottery/Config)</summary>
public static void GetLotteryConfig(Action<LotteryConfigResponse> callback)
{
APIManager.Response<LotteryConfigResponse>(APIType.Lottery_Config, callback);
}
/// <summary>抽奖(GET /api/Lottery/Draw)</summary>
public static void LotteryDraw(LotteryDrawParam req, Action<LotteryDrawResponse> callback)
{
APIManager.Response<LotteryDrawResponse>(APIType.Lottery_Draw, req, callback);
}
/// <summary>用户抽奖状态(GET /api/Lottery/UserStatus)</summary>
public static void GetLotteryUserStatus(Action<LotteryUserStatusResponse> callback)
{
APIManager.Response<LotteryUserStatusResponse>(APIType.Lottery_UserStatus, callback);
}
/// <summary>已抽奖项(GET /api/Lottery/DrawnPrizes)</summary>
public static void GetLotteryDrawnPrizes(Action<List<LotteryDrawnPrizeItem>> callback)
{
APIManager.Response<List<LotteryDrawnPrizeItem>>(APIType.Lottery_DrawnPrizes, callback);
}
// ---------------- SummonCard ----------------
/// <summary>使用召唤卡(GET /api/SummonCard/use)</summary>
public static void UseSummonCard(SummonCardUseParam req, Action<SummonCardUseResponse> callback)
{
APIManager.Response<SummonCardUseResponse>(APIType.SummonCard_Use, req, callback);
}
// ---------------- Dict ----------------
/// <summary>字典单条查询(GET /api/Dict/GetByCode)</summary>
public static void GetDictByCode(DictGetByCodeParam req, Action<DictItem> callback)
{
APIManager.Response<DictItem>(APIType.Dict_GetByCode, req, callback);
}
/// <summary>字典列表查询(GET /api/Dict/GetListByCode)</summary>
public static void GetDictListByCode(DictGetListByCodeParam req, Action<List<DictItem>> callback)
{
APIManager.Response<List<DictItem>>(APIType.Dict_GetListByCode, req, callback);
}
// ---------------- Hall ----------------
/// <summary>获取战令各等级奖励领取状态(GET /api/Hall/GetBattleOrderLevelStatus)</summary>
public static void GetBattleOrderLevelStatus(Action<BattleOrderLevelStatusResponse> callback)
{
APIManager.Response<BattleOrderLevelStatusResponse>(APIType.Hall_GetBattleOrderLevelStatus, callback);
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 143eabfa275ff2d48bf4ca896d6d9d34
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,142 @@
using System;
using System.Collections.Generic;
namespace Assets.MyGame.Scripts.Net.APIResponses
{
// ============================================================
// 补充响应类:以下接口暂未接入业务,但已注册到 APIManager,
// 方便后续快速接入。按 swagger 路径分组放置。
// 字段类型为推测,接入业务前请按后端实际返回再调整。
// ============================================================
// ---------------- /api/User/GetUserAssets ----------------
/// <summary>用户资产 + 背包统一响应</summary>
[Serializable]
public class UserAssetsResponse
{
public string userId;
public long gold;
public int diamond;
public long safeBoxGold;
public int level;
public long exp;
public int vipLevel;
public List<PropInfo> props;
}
// ---------------- /api/User/GetFishingReturnInfo ----------------
/// <summary>捕鱼返利信息</summary>
[Serializable]
public class FishingReturnInfoResponse
{
/// <summary>待领取返利金币</summary>
public long pendingGold;
/// <summary>累计返利金币</summary>
public long totalGold;
/// <summary>上次结算时间</summary>
public long lastSettleTime;
/// <summary>是否可领取</summary>
public bool canClaim;
}
// ---------------- /api/User/ClaimFishingReturn ----------------
/// <summary>领取捕鱼返利响应</summary>
[Serializable]
public class ClaimFishingReturnResponse
{
/// <summary>本次领取金币</summary>
public long claimedGold;
/// <summary>领取时间</summary>
public long claimTime;
}
// ---------------- /api/ActivityConfig/lotteryConfig & /api/Lottery/Config ----------------
/// <summary>抽奖活动配置</summary>
[Serializable]
public class LotteryConfigResponse
{
public int lotteryId;
public string name;
public long startTime;
public long endTime;
public List<LotteryPrizeInfo> prizes;
}
[Serializable]
public class LotteryPrizeInfo
{
public int prizeId;
public string prizeName;
public int prizeType; // 1=金币 2=钻石 3=道具
public int count;
public int weight; // 权重
public string icon;
}
// ---------------- /api/Lottery/Draw ----------------
/// <summary>抽奖结果</summary>
[Serializable]
public class LotteryDrawResponse
{
public int prizeId;
public string prizeName;
public int prizeType;
public int count;
public long drawTime;
}
// ---------------- /api/Lottery/UserStatus ----------------
/// <summary>用户抽奖状态</summary>
[Serializable]
public class LotteryUserStatusResponse
{
public int lotteryId;
public int freeCount; // 剩余免费次数
public int paidCount; // 剩余付费次数
public long lastDrawTime;
}
// ---------------- /api/Lottery/DrawnPrizes ----------------
/// <summary>已抽奖项记录</summary>
[Serializable]
public class LotteryDrawnPrizeItem
{
public int prizeId;
public string prizeName;
public int prizeType;
public int count;
public long drawTime;
}
// ---------------- /api/SummonCard/use ----------------
/// <summary>使用召唤卡响应</summary>
[Serializable]
public class SummonCardUseResponse
{
public bool success;
public string message;
public List<PropInfo> drops; // 掉落道具列表
}
// ---------------- /api/Dict/GetByCode ----------------
/// <summary>字典单条</summary>
[Serializable]
public class DictItem
{
public string code;
public string name;
public string value;
public string remark;
}
// ---------------- /api/Hall/GetBattleOrderLevelStatus ----------------
/// <summary>战令各等级奖励领取状态</summary>
[Serializable]
public class BattleOrderLevelStatusResponse
{
public int currentLevel;
public List<int> normalReceivedLevels; // 普通奖励已领取等级
public List<int> luxuryReceivedLevels; // 豪华奖励已领取等级
public List<int> supremeReceivedLevels; // 至尊奖励已领取等级
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1fcbfa8b86b09c347b35eb726285010c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+41
View File
@@ -376,5 +376,46 @@ namespace Assets.MyGame.Scripts.Net
/// <summary>获取我的会话列表(含消息)GET</summary>
Customer_MyConversations,
// ---------------- 补充:暂未使用但已注册,方便后续接入 ----------------
/// <summary>密码登录(POST /api/Login/LoginByPassword)</summary>
Login_LoginByPassword,
/// <summary>获取当前用户资产和背包(GET /api/User/GetUserAssets)</summary>
User_GetUserAssets,
/// <summary>获取捕鱼返利信息(GET /api/User/GetFishingReturnInfo)</summary>
User_GetFishingReturnInfo,
/// <summary>领取捕鱼返利金币(GET /api/User/ClaimFishingReturn)</summary>
User_ClaimFishingReturn,
/// <summary>奖池抽奖活动配置(GET /api/ActivityConfig/lotteryConfig)</summary>
ActivityConfig_LotteryConfig,
/// <summary>抽奖配置(GET /api/Lottery/Config)</summary>
Lottery_Config,
/// <summary>抽奖(GET /api/Lottery/Draw)</summary>
Lottery_Draw,
/// <summary>用户抽奖状态(GET /api/Lottery/UserStatus)</summary>
Lottery_UserStatus,
/// <summary>已抽奖项(GET /api/Lottery/DrawnPrizes)</summary>
Lottery_DrawnPrizes,
/// <summary>使用召唤卡(GET /api/SummonCard/use)</summary>
SummonCard_Use,
/// <summary>字典查询(GET /api/Dict/GetByCode)</summary>
Dict_GetByCode,
/// <summary>字典列表查询(GET /api/Dict/GetListByCode)</summary>
Dict_GetListByCode,
/// <summary>获取战令各等级奖励领取状态(GET /api/Hall/GetBattleOrderLevelStatus)</summary>
Hall_GetBattleOrderLevelStatus,
}
}
@@ -394,6 +394,9 @@ namespace Assets.MyGame.Scripts.Net
case "KillAnnouncement":
WebSocketReponseList.KillAnnouncement(msg);
break;
case "LevelChangedNEW":
WebSocketReponseList.LevelChanged(msg);
break;
default:
break;
}
@@ -609,6 +612,50 @@ namespace Assets.MyGame.Scripts.Net
}
break;
// ======== FishGameHub / FishRoomHub 补充事件 ========
case "BotLeaveRoomNoticeNEW":
{
// 机器人退出房间,数据 { userId }
var data = JsonConvert.DeserializeObject<WebSocketResponseBase<Dictionary<string, object>>>(msg).arguments[0];
string botUserId = data != null && data.TryGetValue("userId", out var buid) ? buid?.ToString() : "";
Debug.Log($"[FishGameHub] 机器人退出: {botUserId}");
WebSocketReponseList.BotLeaveRoom(botUserId);
}
break;
case "HostDisconnectNEW":
{
// 房主断线,其他玩家可接受机器人控制权
Debug.Log("[FishGameHub] 房主断线,可接受机器人控制权");
WebSocketReponseList.HostDisconnect();
}
break;
case "OnSeatChange":
{
// 座位变更 { type, userId, position, showWaiting? }
var data = JsonConvert.DeserializeObject<WebSocketResponseBase<Dictionary<string, object>>>(msg).arguments[0];
if (data != null)
{
int seatType = data.TryGetValue("type", out var t) ? Convert.ToInt32(t) : 0;
string userId = data.TryGetValue("userId", out var u) ? u?.ToString() : "";
int position = data.TryGetValue("position", out var p) ? Convert.ToInt32(p) : -1;
bool showWaiting = data.TryGetValue("showWaiting", out var sw) && Convert.ToBoolean(sw);
Debug.Log($"[FishGameHub] 座位变更: type={seatType}, userId={userId}, position={position}, showWaiting={showWaiting}");
WebSocketReponseList.SeatChange(seatType, userId, position, showWaiting);
}
}
break;
case "RoomChange":
{
// FishRoomHub 房间变化通知(人数/状态变更),更新房间列表
Debug.Log("[FishRoomHub] 房间变化通知");
WebSocketReponseList.RoomChangeNotice(msg);
}
break;
default:
break;
}
@@ -449,6 +449,156 @@ namespace Assets.MyGame.Scripts.Net
UIManager.Instance.ShowBoardGongGao(data.text);
}
/// <summary>
/// LoginHub LevelChangedNEW — 后台修改玩家等级
/// 直接调用 GetUser 刷新用户数据,触发 OnUserDataChanged 同步 UI
/// </summary>
public static void LevelChanged(string msg)
{
var data = JsonConvert.DeserializeObject<WebSocketResponseBase<LevelChangedData>>(msg).arguments[0];
var userId = GameManager.Instance?.user?.id;
if (!string.IsNullOrEmpty(userId))
APIRequestList.GetUser(userId, a => GameManager.Instance.UpdataUserData(a));
}
// ---------------- FishGameHub 补充 ----------------
/// <summary>
/// FishGameHub BotLeaveRoomNoticeNEW — 机器人退出房间
/// 仅触发对应座位显示等待,不影响本地玩家(自己退出走 LeaveRoomResult)
/// </summary>
public static void BotLeaveRoom(string botUserId)
{
if (string.IsNullOrEmpty(botUserId)) return;
switch (GameManager.Instance.gameData.currGameType)
{
case GameType.FLZY:
ReleaseBotSit(UIPanel.MainGamePanelFLZY, botUserId);
break;
case GameType.YYSC:
ReleaseBotSit(UIPanel.MainGamePanelYYSC, botUserId);
break;
case GameType.XJMH:
ReleaseBotSit(UIPanel.MainGamePanelXJMH, botUserId);
break;
case GameType.HHWK:
ReleaseBotSit(UIPanel.MainGamePanelHHWK, botUserId);
break;
default:
break;
}
}
/// <summary>释放机器人座位(显示等待界面,标记为 bot)</summary>
private static void ReleaseBotSit(UIPanel panelName, string botUserId)
{
var panel = UIManager.Instance.Get<GameMainPanel_FishBase>(panelName);
if (panel == null) return;
foreach (var sit in panel.list_Sits)
{
if (sit.user == botUserId)
{
sit.isBot = true;
sit.ShowWaiting();
break;
}
}
}
/// <summary>
/// FishGameHub HostDisconnectNEW — 房主断线
/// 其他玩家可接受机器人控制权。本地房主引用若已断线则转移给本地首个非人机玩家。
/// </summary>
public static void HostDisconnect()
{
// 房主断线 → 触发房主转移(SitPosData 已封装好转移逻辑)
SitPosData.TransferRoomOwner();
}
/// <summary>
/// FishGameHub OnSeatChange — 座位变更
/// { type, userId, position, showWaiting? }
/// type 字段后端未明确定义,先按 showWaiting 决定显示状态
/// </summary>
public static void SeatChange(int seatType, string userId, int position, bool showWaiting)
{
if (string.IsNullOrEmpty(userId) || position < 0) return;
GameMainPanel_FishBase panel = null;
switch (GameManager.Instance.gameData.currGameType)
{
case GameType.FLZY:
panel = UIManager.Instance.Get<GameMainPanel_FishBase>(UIPanel.MainGamePanelFLZY);
break;
case GameType.YYSC:
panel = UIManager.Instance.Get<GameMainPanel_FishBase>(UIPanel.MainGamePanelYYSC);
break;
case GameType.XJMH:
panel = UIManager.Instance.Get<GameMainPanel_FishBase>(UIPanel.MainGamePanelXJMH);
break;
case GameType.HHWK:
panel = UIManager.Instance.Get<GameMainPanel_FishBase>(UIPanel.MainGamePanelHHWK);
break;
default:
break;
}
if (panel == null) return;
var targetSit = panel.list_Sits.Find(s => s.posID == position);
if (targetSit == null) return;
if (showWaiting)
{
// 显示等待界面(玩家离开该座位)
targetSit.ShowWaiting();
}
else
{
// 玩家进入该座位
targetSit.isBot = !string.IsNullOrEmpty(userId) && userId.StartsWith("bot_");
}
}
/// <summary>
/// FishRoomHub RoomChange — 房间变化通知
/// 房间列表界面收到时刷新显示。当前仅在房间列表 UI 开启时更新数据,
/// 具体刷新逻辑由 UIHome_BY_SelectRoomLevelPanel / 手动选座面板按需实现。
/// </summary>
public static void RoomChangeNotice(string msg)
{
try
{
var roomData = JsonConvert.DeserializeObject<WebSocketResponseBase<RoomChangeResponse>>(msg).arguments[0];
if (roomData == null) return;
// 通知手动选座面板刷新(若开启)
var homeMain = UIManager.Instance.Get<UIHomeMain>(UIPanel.HomeMainPanel);
if (homeMain == null) return;
var selectRoomPanel = homeMain.subUIManager.Get<UIHome_BY_SelectRoomLevelPanel>(UIPanel.SelectRoomLeavePenel);
if (selectRoomPanel != null && selectRoomPanel.isMySelectRoom)
{
selectRoomPanel.panel_UIHome_BY_MySelectRoomPenel?.OnRoomChange(roomData);
}
}
catch (Exception e)
{
Debug.LogWarning("[RoomChangeNotice] 解析失败: " + e.Message);
}
}
/// <summary>
/// LoginHub LevelChangedNEW 数据
/// </summary>
[Serializable]
public class LevelChangedData
{
public int newLevel;
public long newExp;
public long newGold;
public int newDiamond;
public string source;
public string remark;
}
// ---------------- Customer ----------------
/// <summary>
@@ -157,6 +157,26 @@ public partial class WebSocketSendList
var sendObj = new WebSocketSendList("Bind", userId);
WebSocketManager.Instance.Send(SocketType.login, JsonConvert.SerializeObject(sendObj));
}
/// <summary>
/// 断线重连(必须先调用,重新加入房间前调用)
/// 对应服务端 FishGameHub.Reconnect(string userId)
/// </summary>
public static void Reconnect(string userId)
{
var sendObj = new WebSocketSendList("Reconnect", userId);
WebSocketManager.Instance.Send(SocketType.game, JsonConvert.SerializeObject(sendObj));
}
/// <summary>
/// 获取玩家信息(结果通过 SendPlayerInfoResult 事件返回)
/// 对应服务端 FishGameHub.GetPlayerInfo(string roomId, string userId)
/// </summary>
public static void GetPlayerInfo(string roomId, string userId)
{
var sendObj = new WebSocketSendList("GetPlayerInfo", roomId, userId);
WebSocketManager.Instance.Send(SocketType.game, JsonConvert.SerializeObject(sendObj));
}
/// <summary>
/// 加入房间
/// </summary>
@@ -59,7 +59,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c8709d7f880a24c4b8e963ff8497bc8b, type: 3}
m_Name:
m_EditorClassIdentifier:
bjEndUI: {fileID: 0}
bjEndUI: {fileID: 4300126860111980404, guid: ee64541cedf5f2b409b6c5846977aa06, type: 3}
useScorePanel: 0
tMP_Score: {fileID: 1728322933195366793}
scorePanelPrefab: {fileID: 0}
@@ -78,6 +78,7 @@ MonoBehaviour:
coinFlyDuration: 0.5
coinArrivalInterval: 0.1
isSelf: 0
autoFinishOnScoreFull: 1
totalBJCount: 0
currBJCount: 0
isEffEnd: 0
@@ -82,6 +82,8 @@ public class JinLongEvent : BJEventBase
}
bool isAddScore=false;
float a = 1f;
float elapsed = 0f;
private void Update()
{
if (!isAddScore) return;
@@ -90,7 +92,9 @@ public class JinLongEvent : BJEventBase
// 第三阶段:currScore 增加到 maxScore
if (currScore < maxScore)
{
currScore += Random.Range(paoBei , paoBei*2);
elapsed += Time.deltaTime;
float t = elapsed / a;
currScore = (int)Mathf.Lerp(0, maxScore, t);
if (currScore > maxScore)
currScore = maxScore;
@@ -33343,8 +33343,9 @@ MonoBehaviour:
m_Calls: []
m_text:
m_isRightToLeft: 0
m_fontAsset: {fileID: 0}
m_sharedMaterial: {fileID: 0}
m_fontAsset: {fileID: 11400000, guid: 5d4a713fdd931db4c9ce49f068b54e0a, type: 2}
m_sharedMaterial: {fileID: 3593458263369068374, guid: 5d4a713fdd931db4c9ce49f068b54e0a,
type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@@ -33363,17 +33364,17 @@ MonoBehaviour:
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: 0
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: -99
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 0
m_fontSizeMax: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
@@ -33389,12 +33390,12 @@ MonoBehaviour:
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 0
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
@@ -132361,7 +132362,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: e4f5dd9a6b3cca14b960a02a2a8ab3a4, type: 3}
m_Name:
m_EditorClassIdentifier:
bjEndUI: {fileID: 0}
bjEndUI: {fileID: 1790254316978060978, guid: 24c31eadc42c2a84782806970ca46b14, type: 3}
useScorePanel: 1
tMP_Score: {fileID: 6528776512666913368}
scorePanelPrefab: {fileID: 0}
@@ -83,13 +83,20 @@ public class LeiLongEvent : BJEventBase
tMP_longzhu1.text = longzhu1.ToString();
}
bool isAddScore=false;
float a = 1f;
float a = 3f;
float elapsed = 0f;
private void Update()
{
if (isAddScore) {
if (currScore < maxScore - paoBei)
{
currScore += Random.Range(paoBei, paoBei*2);
elapsed += Time.deltaTime;
float t = elapsed / a;
currScore = (int)Mathf.Lerp(0, maxScore, t);
//currScore += Random.Range(paoBei, paoBei*2);
tMP_Score.text = currScore.ToString();
}
else
@@ -104,7 +111,15 @@ public class LeiLongEvent : BJEventBase
}
public override void die()
{
base.die();
StartCoroutine(i());
}
public IEnumerator i()
{
yield return new WaitForSeconds(1f);
transform.DOScale(Vector3.zero, 0.5f).OnComplete(() =>
{
Destroy(gameObject);
});
}
}
@@ -178,19 +178,7 @@ public class UIHome_BY_MySelectRoomPanel : SubUIBase
tran.name = item.roomId;
itemListDic[item.roomId] = tran;
var slider = tran.transform.GetChild(0).GetComponent<Slider>();
int allPlayerCount = item.currentOnlinePlayerCount + item.robotCount;
if (slider != null)
{
slider.value = (float)allPlayerCount / (float)item.maxPlayerCount;
if (allPlayerCount >= item.maxPlayerCount && slider.fillRect != null && slider.fillRect.childCount > 0)
slider.fillRect.GetChild(0).gameObject.SetActive(true);
}
if (tran.transform.GetChild(0).childCount > 3 && tran.transform.GetChild(0).GetChild(3) != null)
tran.transform.GetChild(0).GetChild(3).GetComponent<TextMeshProUGUI>().text = allPlayerCount + "/" + item.maxPlayerCount;
if (tran.transform.childCount > 1 && tran.transform.GetChild(1) != null)
tran.transform.GetChild(1).GetComponent<TextMeshProUGUI>().text = item.roomNumber.ToString();
UpdateRoomItemUI(tran, item.currentOnlinePlayerCount, item.robotCount, item.maxPlayerCount, item.roomNumber);
i++;
}
@@ -198,4 +186,34 @@ public class UIHome_BY_MySelectRoomPanel : SubUIBase
scroll.horizontalNormalizedPosition = 0;
pageNum = 1;
}
/// <summary>
/// FishRoomHub RoomChange 通知:更新单个房间项的人数显示
/// </summary>
public void OnRoomChange(RoomChangeResponse room)
{
if (room == null || string.IsNullOrEmpty(room.roomId)) return;
if (!itemListDic.TryGetValue(room.roomId, out var tran) || tran == null) return;
UpdateRoomItemUI(tran, room.currentOnlinePlayerCount, room.robotCount, room.maxPlayerCount, room.roomNumber);
}
/// <summary>更新单个房间项的 UI(slider + 人数文本 + 房间号)</summary>
private void UpdateRoomItemUI(Transform tran, int currentOnline, int robot, int maxPlayer, int roomNumber)
{
var slider = tran.transform.GetChild(0).GetComponent<Slider>();
int allPlayerCount = currentOnline + robot;
if (slider != null)
{
slider.value = (float)allPlayerCount / (float)maxPlayer;
if (allPlayerCount >= maxPlayer && slider.fillRect != null && slider.fillRect.childCount > 0)
slider.fillRect.GetChild(0).gameObject.SetActive(true);
else if (allPlayerCount < maxPlayer && slider.fillRect != null && slider.fillRect.childCount > 0)
slider.fillRect.GetChild(0).gameObject.SetActive(false);
}
if (tran.transform.GetChild(0).childCount > 3 && tran.transform.GetChild(0).GetChild(3) != null)
tran.transform.GetChild(0).GetChild(3).GetComponent<TextMeshProUGUI>().text = allPlayerCount + "/" + maxPlayer;
if (tran.transform.childCount > 1 && tran.transform.GetChild(1) != null)
tran.transform.GetChild(1).GetComponent<TextMeshProUGUI>().text = roomNumber.ToString();
}
}