更新日志
日期 | 内容 | 作者 |
---|---|---|
2023年3月4日 | 创建文档 | 朱兴韬 |
2023年3月10日 | 新增占领点HUD描述 | 朱兴韬 |
2023年4月17日 | 移除平局结算规则 | 朱兴韬 |
一、设计目的
引入新的战场玩法,以增加游戏的多样性,提高竞技趣味,并促进游戏长期玩家留存。
二、功能概述
占领模式的玩法规则规则、功能交互,明确定义占领模式的胜负规则以及玩家的体验流程。
三、功能规则
3.1 占领模式玩法规则
- 占领模式中,战场上散布着多个占领点,每个占领点每秒都会产生一定数量的胜利点数。胜利的关键在于,当任意一队的胜利点数首先达到设定值时,该队将获胜。游戏的核心目标是争夺这些占领点,需要不断争夺和保卫以保持领先地位。
3.2 占领点预制
占领点将采用触发器(Trigger)的预制体,用于在客户端检测触发器范围内的队伍数量,从而实现占领交互。占领区域的大小将由触发器预制体的碰撞范围决定。
占领状态将分为3个状态,一旦变为已占领状态,将无法再次变回中立状态,只能更改占领点的归属方:
- 中立状态(灰色):初始状态,不产生胜利点数。
- 我方状态(蓝色):已占领,产生胜利点数,计入我方队伍。
- 敌方状态(红色):已占领,产生胜利点数,计入敌方队伍。
占领规则包括以下情况:
中立状态下:
- 场景1:当占领区域内只有1个队伍时,开始占领。占领时间应从触发器的
captureTime
字段读取(单位:毫秒)。占领时间结束后,占领点的归属将变为触发占领时间的队伍(不属于该队伍的占领点才会触发captureTime
的计算)。 - 在占领过程中,如果占领点内的队伍之一离开该区域,则该队伍的
captureTime
将逐渐重置为0。 - 场景2:如果占领过程中,占领区域内有其他队伍进入,占领将暂停。占领时间会继续计算,但只有占领点内只有1个队伍时,占领时间才能继续计算。
- 场景3:如果A队伍占领一个点,B队伍进入该区域并驱逐A队伍,需要等待已经计算的
captureTime
逐渐重置为0,才能再次触发captureTime
。- 如果在此过程中,A队伍重新进入占领区域,清零过程将暂停。此时,A队伍将B队伍的玩家驱逐出占领点,清零的
captureTime
会逐渐回满。
- 如果在此过程中,A队伍重新进入占领区域,清零过程将暂停。此时,A队伍将B队伍的玩家驱逐出占领点,清零的
- 场景1:当占领区域内只有1个队伍时,开始占领。占领时间应从触发器的
已占领状态下:
- 场景1:当占领区域内没有我方玩家,敌对玩家进入占领区域,开始占领。占领时间将从触发器的
captureTime
字段读取(以毫秒为单位)。占领时间结束后,占领点的归属将变为触发占领时间的队伍(不属于该队伍的占领点才会触发captureTime
的计算)。 - 场景2:占领过程中,占领区域内有其他队伍进入,占领将暂停。只有在占领点内只有敌对队伍时,占领时间才会继续计算。
- 场景3:占领过程中,如果敌对队伍的玩家被驱逐出占领区域,已经计算的
captureTime
将逐渐重置为0。- 如果在清零期间,敌对队伍重新进入占领区域,清零进程将暂停。
- 场景1:当占领区域内没有我方玩家,敌对玩家进入占领区域,开始占领。占领时间将从触发器的
占领点会根据占领预制体的
getPointPerSecond
字段,每秒为占领点的归属方增加胜利点数。每秒都会计算每支队伍拥有的占领点,从而决定胜利点数。占领点的UI样式将包括以下元素:
- 占领点名称:通过
name#string
字段配置,用于在UI中显示,只允许填写大写英文字母A-Z。 - 占领点图标样式:在预制体内提供下拉选项,包括L/S/M,用于控制占领点图标的UI位置。
- 占领点名称:通过
3.3 胜负与结算规则
触发结算条件:
- 战场时间限制(
roundTime#float
)内,任何一方率先达到occupyWinPoint#int
的胜利点数,即可获胜。- 胜利方:达到胜利点数的一方将获胜。
- 失败方:结算时拥有的胜利点数较少的一方将失败。
- 如果在战场的时间限制(
roundTime#float
)内,没有任何一方达到胜利点数,比赛将在时间结束后进行结算。- 胜利方:在结算时拥有胜利点数更多的一方将获胜。
- 失败方:在结算时拥有胜利点数较少的一方将失败。
3.4 占领模式配置
占领点预制将包括以下字段以支持功能实现:
字段名 类型 描述 captureTime int 占领时间(毫秒) getPointPerSecond int 每秒获得的胜利点数 pic string 占领点图片路径(数组,每个状态有3张图) 客户端战局配置:
- 引入占领模式配置表:
capture_target_cfg
,用于配置占领模式的相关信息。 - 以下是新增字段:
字段名 类型 描述 备注 occupyWinPoint int 胜利点数 新增字段 occupyPointFx string 胜利点数增长特效,配置数组,大于等于该分数展示的特效 新增字段 roundTime float 比赛时长 复用 noticeSelfTeamScoreHalf int 通知-我方获胜进度已过半
我方拥有胜利点数大于等于occupyWinPoint/2时规则变更 noticeEnemyTeamSocreHalf int 通知-敌方获胜进度已过半
对方拥有胜利点数大于等于occupyWinPoint/2时规则变更 noticeWinRemain int 通知-再击败{0}名敌人即可获胜 –> 通知-再获得{0}分数即可获胜 规则变更 occupyWeaponDelTime int 占领模式武器掉落消失时间 新增字段 occupyResurgenceType int 占领模式死亡后复活方式 新增字段 occupyResurgenceTime int 占领模式复活等待时间 新增字段 occupyResurgenceBuff int 占领模式复活时添加buffId 新增字段 - 引入占领模式配置表:
战服与平台配置:
- 新增
gameId=5000
,表示占领玩法规则 - 新增
gameType=600
,表示占领游戏类型
- 新增
3.5 占领模式交互表现
不同状态的占领点样式
我方点位:蓝色:
敌方点位:红色:
中立点位:灰色:
点位进度条:根据不同队伍触发的
captureTime
,展示进度条,绕占领点底一周展示。
模式UI:需要展示以下内容。
A 分数情况:分别展示两队的当前分数,需展示进度条与具体数值。
B 占领点情况:地图内所有点位的占领情况(我方归属、敌方归属、中立)。
- 占领点图标根据占领点预制的pic字段展示。
C 胜利点增加情况:每秒有跳字效果,根据当前不同的加分值展示不同特效,根据模式配置表的
occupyPointFx
字段索引特效。占领过程:我方captureTime触发时,若角色在该占领区域内,则展示正在占领UI。
占领点HUD界面:占领点上方需根据预制内的Pic配置,展示对应的HUD界面,实现方式参照血条。
- 显示层级:该HUD在场景中穿透墙壁,但会被任意Caster遮挡。
3.5 占领模式交互表现
四、美术需求
4.1 美术需求清单
名称 | 需求类型 | 描述图片 |
---|---|---|
占领点模式UI:包含进度条、占领图标(我方归属、敌方归属、中立);图标大小需设计3个级别(使用边框区分),用于区分不同占领点的重要程度;当前点位的摆放方式也需要设计:小x2、中x1、大x1 占领点图标内部根据地图场景,设计贴合地图场景的剪影 |
UI | |
占领进程进度条UI | UI | |
占领点HUD | UI | |
占领点地板贴图 | 模型贴图 | |
归属权更换场景特效 | 特效 | 由占领点中心向占领点四周播放白色波纹 |
占领进度条特效:缓慢流动光效 | 特效 |