diff --git a/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_jbz.png.meta b/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_jbz.png.meta index 76c097136..597880e73 100644 --- a/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_jbz.png.meta +++ b/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_jbz.png.meta @@ -7,7 +7,7 @@ TextureImporter: mipmaps: mipMapMode: 0 enableMipMap: 0 - sRGBTexture: 0 + sRGBTexture: 1 linearTexture: 0 fadeOut: 0 borderMipMap: 0 diff --git a/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_jbz_1.png.meta b/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_jbz_1.png.meta index 81eab7f06..6cb5bd2a6 100644 --- a/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_jbz_1.png.meta +++ b/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_jbz_1.png.meta @@ -7,7 +7,7 @@ TextureImporter: mipmaps: mipMapMode: 0 enableMipMap: 0 - sRGBTexture: 0 + sRGBTexture: 1 linearTexture: 0 fadeOut: 0 borderMipMap: 0 diff --git a/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_jbz_2.png.meta b/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_jbz_2.png.meta index fd506c67e..b277da669 100644 --- a/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_jbz_2.png.meta +++ b/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_jbz_2.png.meta @@ -7,7 +7,7 @@ TextureImporter: mipmaps: mipMapMode: 0 enableMipMap: 0 - sRGBTexture: 0 + sRGBTexture: 1 linearTexture: 0 fadeOut: 0 borderMipMap: 0 diff --git a/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_ybz.png.meta b/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_ybz.png.meta index aac2d74c3..81ca0fabf 100644 --- a/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_ybz.png.meta +++ b/Assets/Art/XJMH/pw/pw_atals/goldcolumn/yxjm_ybz.png.meta @@ -7,7 +7,7 @@ TextureImporter: mipmaps: mipMapMode: 0 enableMipMap: 0 - sRGBTexture: 0 + sRGBTexture: 1 linearTexture: 0 fadeOut: 0 borderMipMap: 0 diff --git a/Assets/MyGame/Scripts/Net/APIRequestList_Supplement.cs b/Assets/MyGame/Scripts/Net/APIRequestList_Supplement.cs index 99bca2816..c05e37081 100644 --- a/Assets/MyGame/Scripts/Net/APIRequestList_Supplement.cs +++ b/Assets/MyGame/Scripts/Net/APIRequestList_Supplement.cs @@ -61,10 +61,10 @@ namespace Assets.MyGame.Scripts.Net // ---------------- Lottery ---------------- - /// 抽奖配置(GET /api/Lottery/Config) - public static void GetLotteryConfig(Action callback) + /// 抽奖配置(GET /api/Lottery/Config,响应为 LotteryConfigResponse:config + drawnPrizeIds) + public static void GetLotteryConfig(Action callback) { - APIManager.Response(APIType.Lottery_Config, callback); + APIManager.Response(APIType.Lottery_Config, callback); } /// 抽奖(GET /api/Lottery/Draw) diff --git a/Assets/MyGame/Scripts/Net/APIResponses/GameConfig.cs b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig.cs index fdfbeb041..05f116d38 100644 --- a/Assets/MyGame/Scripts/Net/APIResponses/GameConfig.cs +++ b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig.cs @@ -90,5 +90,30 @@ namespace Assets.MyGame.Scripts.Net.API /// 机器人AI配置(后端下发,useRemoteBotConfig 开关开启时使用) /// public BotConfig botConfig; + + /// + /// 鱼雷配置(本轮新增) + /// + public List torpedoConfigs; + + /// + /// 刮刮卡配置 + /// + public List scratchCardConfig; + + /// + /// Boss 配置(后端聚合配置,前端暂无消费;与 killConfig 一致用 object 兜底) + /// + public object bossConfigs; + + /// + /// Boss 掉落配置 + /// + public BossDropConfig bossDropConfig; + + /// + /// 机器人击杀播报配置 + /// + public RobotKillConfig robotKillConfig; } } \ No newline at end of file diff --git a/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/GameConfigExtra.cs b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/GameConfigExtra.cs new file mode 100644 index 000000000..f71be7fee --- /dev/null +++ b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/GameConfigExtra.cs @@ -0,0 +1,94 @@ +using Assets.MyGame.Scripts.Net.API.UserData_SubClass; +using System; +using System.Collections.Generic; + +namespace Assets.MyGame.Scripts.Net.API.GameConfig_SubClass +{ + /// + /// 刮刮卡配置(GameConfig.scratchCardConfig) + /// + [Serializable] + public class ScratchCardConfig + { + /// 奖励类型:1=金币,2=钻石,3=道具 + public int type; + /// 道具详情 + public BaseProduct baseProduct; + /// 奖励数量 + public int count; + /// 权重 + public int weight; + } + + /// + /// Boss 掉落配置(GameConfig.bossDropConfig) + /// + [Serializable] + public class BossDropConfig + { + /// 不掉落权重(概率 = noDropWeight / 总权重和) + public int noDropWeight; + /// 掉落道具列表 + public List dropItems; + } + + /// + /// Boss 掉落道具配置 + /// + [Serializable] + public class BossDropItemConfig + { + /// 道具编号 + public string propNumber; + /// 道具名称 + public string propName; + /// 掉落数量 + public int count; + /// 掉落权重(概率 = weight / 10000) + public int weight; + } + + /// + /// 机器人击杀播报配置(GameConfig.robotKillConfig) + /// + [Serializable] + public class RobotKillConfig + { + /// 总开关 + public bool isEnabled; + /// 播报间隔(秒),默认 5 + public int intervalSeconds; + /// 播报场景配置 + public List scenes; + } + + /// + /// 机器人击杀播报场景配置 + /// + [Serializable] + public class RobotKillScene + { + /// 场次名称(如:风雷之渊) + public string gameName; + /// 等级名称(如:初级场) + public string levelName; + /// 游戏类型 + public int gameType; + /// 房间等级 + public int roomLevel; + /// 出现权重 + public int weight; + /// 鱼种名称 + public string fishName; + /// 鱼种编号 + public string fishNumber; + /// 倍数最小值 + public int multiplierMin; + /// 倍数最大值 + public int multiplierMax; + /// 爆奖金额最小值 + public long jackpotMin; + /// 爆奖金额最大值 + public long jackpotMax; + } +} diff --git a/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/GameConfigExtra.cs.meta b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/GameConfigExtra.cs.meta new file mode 100644 index 000000000..67da6f71c --- /dev/null +++ b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/GameConfigExtra.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cea80cf2d728fed4ca31613ada9f1163 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/LotteryActivityConfig.cs b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/LotteryActivityConfig.cs index e7f640a66..f61474ee1 100644 --- a/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/LotteryActivityConfig.cs +++ b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/LotteryActivityConfig.cs @@ -11,7 +11,8 @@ namespace Assets.MyGame.Scripts.Net.API.GameConfig_SubClass public long startTime; public long endTime; public List pools; - public List costs; + /// 分奖池价格阶梯。Key:"1"=炮台,"2"=战神,"3"=翅膀;每个奖池独立计费,不再使用公共价格 + public Dictionary> costsByPool; public int userMaxDraw; } diff --git a/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/TorpedoConfig.cs b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/TorpedoConfig.cs new file mode 100644 index 000000000..26a301840 --- /dev/null +++ b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/TorpedoConfig.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; + +namespace Assets.MyGame.Scripts.Net.API.GameConfig_SubClass +{ + /// + /// 鱼雷道具配置(GameConfig.torpedoConfigs,本轮新增) + /// + [Serializable] + public class TorpedoItemConfig + { + /// 鱼雷编号 + public string number; + /// 鱼雷名称 + public string name; + /// 鱼雷颜色 + public string color; + /// 奖励范围列表(按权重随机取金币区间) + public List rewardRanges; + } + + /// + /// 鱼雷奖励范围配置 + /// + [Serializable] + public class TorpedoRewardConfig + { + /// 最小金币 + public int minGold; + /// 最大金币 + public int maxGold; + /// 权重 + public int weight; + } +} diff --git a/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/TorpedoConfig.cs.meta b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/TorpedoConfig.cs.meta new file mode 100644 index 000000000..6d1d2323a --- /dev/null +++ b/Assets/MyGame/Scripts/Net/APIResponses/GameConfig_SubClass/TorpedoConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 256fe00634345604995f7e0a61127998 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MyGame/Scripts/Net/APIResponses/SupplementResponses.cs b/Assets/MyGame/Scripts/Net/APIResponses/SupplementResponses.cs index a2a674c30..822506a5a 100644 --- a/Assets/MyGame/Scripts/Net/APIResponses/SupplementResponses.cs +++ b/Assets/MyGame/Scripts/Net/APIResponses/SupplementResponses.cs @@ -84,6 +84,25 @@ namespace Assets.MyGame.Scripts.Net.APIResponses public int totalDrawCount; /// 用户活动是否结束(已抽完所有奖项) public bool isFinished; + /// 当前抽奖活动周期标识。活动时间变化时自动开始新一期 + public string activityCycleKey; + /// 活动开始时间(Unix 秒) + public int activityStartTime; + /// 活动结束时间(Unix 秒) + public int activityEndTime; + /// 各奖池独立抽奖次数。Key:"1"=炮台,"2"=战神,"3"=翅膀。旧数据没有该字段时自动从空字典开始 + public Dictionary drawCountByPool; + } + + // ---------------- /api/Lottery/Config ---------------- + /// 抽奖配置响应(config + 用户已抽中奖项ID) + [Serializable] + public class LotteryConfigResponse + { + /// 抽奖活动配置 + public LotteryActivityConfig config; + /// 用户已抽中的奖项ID列表 + public List drawnPrizeIds; } // ---------------- /api/SummonCard/use ---------------- diff --git a/Assets/MyGame/Scripts/Turret/TurretData.cs b/Assets/MyGame/Scripts/Turret/TurretData.cs index 126454355..aaac63b90 100644 --- a/Assets/MyGame/Scripts/Turret/TurretData.cs +++ b/Assets/MyGame/Scripts/Turret/TurretData.cs @@ -1,6 +1,7 @@ using Spine.Unity; using System.Collections.Generic; using UnityEngine; +using UnityEngine.UI; public enum TurretAnimType { @@ -158,6 +159,37 @@ public class TurretData : MonoBehaviour private void OnEnable() { PlayState(TurretState.Idle); + BindAddDownButtons(); // ⭐ XJMH 加减炮倍:炮台上的 +/- 绑定点击(每次激活重绑,幂等) + } + + // ==================== XJMH 加减炮倍按钮绑定 ==================== + // 炮台上的 obj_Add / obj_Down(物体名 Up / Down)在预制体里没有 Button 组件、也没有任何代码绑定 + // → 点击无反应。这里在炮台激活时统一补 Button + 绑定: + // + → 座位 ChangeTurretAddConsumeNum(发 ChangeGunMultiple,等服务端确认后应用新炮倍) + // - → 座位 ChangeTurretMinusConsumeNum + // 未拖引用跳过(可要可不要);非本地座位由 SitPosData.HideTurretAddMinusUI 隐藏。 + private SitPosData ResolveSit() + { + return setPosData != null ? setPosData : GetComponentInParent(); + } + + private void OnClickTurretAdd() { ResolveSit()?.ChangeTurretAddConsumeNum(); } + private void OnClickTurretMinus() { ResolveSit()?.ChangeTurretMinusConsumeNum(); } + + private void BindAddDownButtons() + { + BindAddDownButton(obj_Add, OnClickTurretAdd); + BindAddDownButton(obj_Down, OnClickTurretMinus); + } + + private static void BindAddDownButton(GameObject go, UnityEngine.Events.UnityAction action) + { + if (go == null) return; // 未拖引用:跳过,不报错 + var btn = go.GetComponent