======战斗系统====== =====战场技能===== [[generated::skill_config]].type增加 6 战场技能 [[generated::stage_config]] 增加 stage_skill stage_skill_cd 字段 配置是否有战场技能呢 如果是公会战 且 战场技能的cd大于1个回合,会显示战场技能UI。 =====修正===== --- //[[shenmo@riceman.com.cn|沈默]] 2019/03/26 18:45// [[generated::STAGE_EXTRA]] 关卡特殊修正 [[generated::stage_config]] 新增了 extra 字段 控制 初始种子/combo修正/颜色数量等 相关指令 |PuzzleColor(4) | 设置最大颜色数|(3~5)| |PuzzleSeed(3) | 设置初始种子|0表示按时间随机| |PuzzleCombo(0.8) |每次消除有额外80%的几率可以产生 combo| 0~1,如果设置为必定combo,最多到20次| 颜色和combo修正,stage表格中的配置会覆盖debug的 =====站位===== [[generated:defender_formation_config]] 站位配置 =====道具===== [[generated:item_battle_config]] 战斗道具 属于[[generated:item_config]]子表 战斗道具系统主要沿用技能系统的框架, 由战斗道具表去引用[[generated:skill_config]]表 然后进行战斗技能的一系列使用逻辑。 ** 道具使用条件 ** 如果技能有使用条件限制,需要先判断使用条件 [[generated:item_battle_config]].condition 字段 ===相关战斗道具的数据走向=== [[generated:HeroTeamApply]] 设置战斗队伍的道具配置,采用(slot+道具原型)的字典 设置的时候服务器可以完全不关心道具的存量,直接保存到 [[generated:hero_team_info]].item_list 客户端也从这里读取到每个队伍最后的道具配置(数量根据 [[generated:item_battle_config]].limit 和 存量 比较最小值) 开始PVE战斗的时候,把[[generated:hero_team_info]].item_list 送入 [[generated:player_battle_info]].item_list 同时清空 [[generated:player_battle_info]].item_used 战斗如果使用道具,需要通知服务器 [[generated:BattleItemUse]] 战斗道具使用 返回成功以后才可以使用。 需要判断 道具已使用上限和道具存量,失败就返回。 使用情况保存在 [[generated:player_battle_info]].item_used **其他** [[generated:VipFlee]] 的时候,需要归还所有在[[generated:player_battle_info]].item_used的道具 [[generated:VipUndo]] 的时候,需要归同步道具当前的使用情况(校验难度大) =====原地复活===== [[generated:player_setting]] - battle_restart_cost=75; 重新战斗需要的钻石数量 - battle_restart_skill=500099; 重新复活战斗的技能 - battle_restart_times=1; 重新复活战斗的次数 在 DialogBattleLose界面中,如果钻石和次数都够,可以点击FIGHT进行原地复活 在战斗逻辑中,其实是使用了了一个slot==9的特殊道具, 这个道具指向500099这个技能 他不会消耗实际道具,但可以使玩家复活。 使用之前需要调用[[generated:BattleRestart]] 协议 向服务器确认,服务器会扣除钻石并增加次数。 回放也可以通过 [[generated:player_battle_info]].relive_count来判断是否合法进行了复活。 =====整体变灰笔记 ===== 单张图片变灰可以直接采用 亮度公式 对贴图的 rgb进行 加权求和 0.299*R + 0.587*G + 0.114*B=y 在shader forge里面还可以用 RGB->HSV 的方法,把V输出就是亮度 需要每个材质都替换成灰度材质。 如果对一整个卡片进行处理,则可以使用SceneColor + ScreenPos 但是需要注意的是,到了UI的Canvas里面,UV会反,需要 one_minues对v进行操作 然后多个黑白滤镜一起描绘的时候,遇到了裁减问题,没有完美解决,最后通过把所有的GrayMask层级调高来解决 整个方法的原理是GrabPass把FrameBuffer保存成一张贴图,然后进行处理 高斯模糊的方法也可以参考这里 https://blog.csdn.net/winchyy/article/details/71440896 遇到上下反转的问题,注意camera MSAA的勾