obsidian/笔记文件/白日梦游戏/白日梦游戏_2022年6月24日/【8.3版本】恐龙养成系统开发方案.md
2025-03-26 00:02:56 +08:00

17 KiB
Raw Permalink Blame History

【8.3版本】恐龙养成系统开发方案

一、设计变更历史

本号

修改人

修改日期

修改原因

修改内容

补充说明

1

阿牛

2022.02.13

模板

0_【X.XX版本】系统开发方案模板

2

文山

2022.06.10

初版

3

文山

2022.6.20

新增恐龙历程

二、需求文档

【8.3版本】恐龙养成UI需求

【8.3版本】恐龙养成开发需求

三、方案说明

  1. 协议

    1. 修改协议 HttpRequestJuraFeedPartner 31912 @瓜子 HttpRequestJuraUpgradePartner 31913

[MessageID(31912)][System.Serializable] //侏罗纪 给伙伴喂食
public class HttpRequestJuraFeedPartner : HttpRequestCommon<HttpResponseJuraActivityInfo>
{
    public int partnerId; //伙伴id
    public int foodId; //材料id
    public int foodNum; //材料数量
}
[System.Serializable] //侏罗纪 给伙伴喂食
public class HttpResponseJuraFeedPartner : HttpResponseBase
{
    public JuraActivityPartnerInfo partnerInfos; //喂食后的伙伴信息
    public ItemInfo foodInfo;  //喂食后的材料数量信息
    public ItemInfo sendBackItems;//卡级时返还的低等物品及个数@瓜子  新增
}

[MessageID(31913)][System.Serializable] //侏罗纪 给伙伴突破
public class HttpRequestJuraBreakPartner : HttpRequestCommon<HttpResponseJuraBreakPartner>
{
    public int partnerId; //伙伴id
    public int levelFrom;//当前等级@瓜子 改名
    public int[] breakId; //材料id @瓜子 改名
    public int[] upgradeNum; //材料数量@瓜子 删除
}
[System.Serializable] //侏罗纪 给伙伴突破
public class HttpResponseJuraBreakPartner : HttpResponseBase
{
    public JuraActivityPartnerInfo partnerInfos; //突破后的伙伴信息
    public ItemInfo[] breakItems;  //突破后的材料数量信息(只包含数据变化的项) @瓜子 改名
}

  1. 新增 协议 HttpRequestJuraRewardInfo 31914 @瓜子

奖励物品展示界面

对应界面截图

协议内容

放 修改前后 的协议内容

[System.Serializable]
public class JuraActivityPartnerInfo @西瓜 
{
    public uint ownerId; //所属的玩家id
    public int id; //伙伴id
    public int level; //伙伴等级
    public int showLevel; //伙伴显示的等级(用于切换不同的模型) @瓜子 
    public int exp; //伙伴经验值
    public string partnerName; //伙伴昵称
    public int power;//战斗力@瓜子 
    public bool isAtHome;//是否在自己家@瓜子 
    public int brithday;//生日事件戳@瓜子 
}


[MessageID(31914)] 
[System.Serializable] //侏罗纪 恐龙养成奖励展示界面
public class HttpRequestJuraRewardInfo : HttpRequestCommon<HttpResponseJuraRewardInfo>
{
    
}

[System.Serializable] //侏罗纪 恐龙养成奖励展示界面
public class HttpResponseJuraRewardInfo : HttpResponseBase
{
    public RewardsItem[] advanceItem;
    public RewardsItem[] cardSkin;
}

[System.Serializable] //领取状态
public class RewardsItem
{
    public int rewardId;//JuraPartnerUpgrade中的id和JuraPartnerPowerReward中的id
    public int rewardState; //奖励物品状态
}

修改对应表格1:JuraPartner.csv @西瓜 @小麻

伙伴类型ID

属性1天上飞2地上跑3水里游

专属蛋物品ID

itemId

"最小可移动等级

(达到什么等级可移动)"

伙伴不会移动时摆放位置0是随机3-6号位随机11号位、2号位随机

专属养成材料物品ID多个用“|”隔开

恐龙个性介绍图标

技能图标

技能描述

性别图标

爱好

Id

MoveType

AgeId

MinLevel

Position

PartnerFood

ExclusiveIcon

SkillIcon

SkillIntroduce

GenderIcon

Hobby

int

EJuraPartnerMoveType

int

int

int

int[]

string

string

string

string

string

  1. 新增 表格 JuraPartnerSkillTable.csv

技能展示界面

对应界面截图

协议内容

新增对应配表@玄羽

客户端 新增表 JuraCardGrowthTable 接配置每一级的属性值,用|竖线分隔开。允许 升级数据与恐龙有 N:1 的关系。最后的最大等级是用来做限制保护的。

序号

对应恐龙ID

对应养成的伙伴ID

升级属性

初始值(1级)

成长数值(从2级开始不成长留空)

最大等级

Id

CardId

PartnerId

Attribute

Start

Growth

MaxLevel

1

70010

1001001

MoveSpeed

1

1.1|1.2|1.5|1.6

10

2

70010

1001001

RotSpeed

1

1|1.2|1.5|1.6

10

3

70010

1001001

Damage

1

1|1.2|1.5|1.6

10

4

70010

1001001

Time

10

10

5

70011

1001002

MoveSpeed

1

1|1.2|1.5|1.6

10

6

70011

1001002

RotSpeed

1

1|1.2|1.5|1.6

10

  1. 新增 协议 HttpRequestJuraDiaryInfo 31915 HttpRequestJuraHadReadDiaryInfo 31916 @小麻 @瓜子

恐龙日记展示界面

对应界面截图

协议内容


[MessageID(31915)] 
[System.Serializable] //侏罗纪 恐龙日记展示界面
public class HttpRequestJuraDiaryInfo  : HttpRequestCommon<HttpResponseJuraDiaryInfo>
{
    
}

[System.Serializable] //侏罗纪 恐龙日记展示界面
public class HttpResponseJuraDiaryInfo : HttpResponseBase
{
    public JuraPartnerDiary[] allDiraryInfo;
}

[System.Serializable] //恐龙日志状态
public class JuraPartnerDiary
{
    public int partnerId; //伙伴id
    public int[] diaryIndex; //写过的日记索引
    public int[] diaryTime;//每篇日记的书写时间 @瓜子 @小麻 
    public int hadReadDiaryIndex;//已读的日记, diaryIndex的索引
}

[MessageID(31916)] @小麻 
[System.Serializable] //侏罗纪 恐龙已读日记展示界面
public class HttpRequestJuraHadReadDiaryInfo  : HttpRequestCommon< HttpResponseJuraHadReadDiaryInfo >
{
    public int[] partnerId;//已有的恐龙
    public int[] hadReadDiaryIndex;//关闭界面时,所有已有的恐龙 已读日记的最大索引透传
}

[System.Serializable] //无需返回
public class HttpResponseJuraHadReadDiaryInfo : HttpResponseBase
{
    
}

对应配表(新增表)

客户端 新增表 JuraDiaryTable @小麻 @瓜子

序号

恐龙id

日记内容

心情1开心2一般3不开心

解锁条件(等级)

等级下随机显示篇数

Id

PartnerId

Cotent

MoodIcon

UnlockLevel

DiaryNum

int

int

string

int

int

int

  1. HttpRequestJuraPreviewPartnerInfo 31916

用于展示恐龙成长历程界面,并展示现在选中物品的模型


[MessageID(31924)]
[System.Serializable] //恐龙模型展示
public class HttpRequestJuraPreviewPartnerInfo : HttpRequestCommon<HttpResponseJuraPreviewPartnerInfo> { }

[System.Serializable]
public class HttpResponseJuraPreviewPartnerInfo : HttpResponseBase
{
    public int partnerId;//伙伴id
    public int showLevel;//展示的等级
}
  1. 客戶端新增或改动脚本(以下功能做完,前面□打√)

    1. 新增 UIJuraRewardInfo

功能:用于奖励物品的展示逻辑、及界面交互逻辑

  • 大黄蜂展示状态交互:

  • 角色皮肤展示:

  • 涂鸦:无动画可拖拽旋转

  • ui交互

  • 控制3个物品的预览

  • 未获取点击出弹窗,弹窗支持获取跳转提示
  • 已获取未满级,支持跳转培养界面(第二界面),(默认选中指定的龙)
  • 已获取未领取,显示领取点击获得皮肤
  • 已领取不可交互,显示已拥有
  • 每种类型第一条龙出现,侏罗纪活动合集入口&功能入口&活动第一屏对应的恐龙图片上,有小红点提示@星旭 会抛出一个事件
  • 侏罗纪活动合集入口&功能入口&对应的奖励领取按钮上,有小红点提示
  1. 新增 UIJuraCultivateInfo

功能:恐龙培养界面逻辑,恐龙喂养及交互,技能展示,日记入口,奖励进度展示

  • 恐龙的状态交互,升级、突破特效和相机动画展示不做状态@灰子

  • 在已解锁的恐龙间切换支持循环1只恐龙不可见

  • 使用食物和看哪个了交互,可点击,可长按,可拖拽
  • 未满级,喂食后可加经验,经验满可升级,到达突破等级,食物屏蔽显示突破食物,进度条显示需进阶
  • 可突破时侏罗纪活动合集入口&功能入口&活动第一屏对应的恐龙图片上&【进阶】按钮上,有小红点提示

  • 食物下方添加增长的经验,图标处、显示数量(没有置灰)、爱心、品质、选中

  • 未满级升级不打断,突破时、满级时会打断

  • 突破、满级经验返回以最低等级食物返还

  • 视频可跳转显示视频

  • 奖励进度显示物品图标、品质、类型、等级或战斗力进度、可点击tip提示
  • 奖励已领取后,显示领取标注、无交互
  • 左侧图标为当前选中恐龙满级奖励皮肤,右侧为下一档战斗力要领取的物品(第一界面左侧)。

  • 可切换页签。到羁绊界面,不影响左侧功能

  1. 修改 UIJuraDiary @小麻

  • 满级后按钮可点,选中该恐龙要显示的模型

  • 生日为获取龙的时间、年龄计算、性别爱好配置,头像配置
  • 日记左右可翻页,只有翻页才显示对应按钮
  • 显示最新看过的日记关闭界面时通过协议31916透传给服务器没看过的需要红点提示。
  • 有新日记时 集入口&功能入口&活动第一屏对应的恐龙图片上&【恐龙羁绊】页签上&对应的羁绊信息按钮,有小红点提示
  1. 修改 UIJuraPreview

  • 三种龙的展示状态,文案需要添加配置

  • 详情展示及按钮状态:已解锁、显示文案、按钮状态

  • 未解锁:显示解锁条件(恐龙等级、及素材)能突破时,显示突破,满足条件点击可以播放突破动画
  • 点击等级图标已满足时TIP提示已满足不满足时关闭弹窗高亮品质最高的食物
  • 点击食物图标已满足时TIP提示已满足不满足时和养成界面食物不足逻辑一样。
  1. 细节补充

四、数据缓存方式

数据缓存单例:放到数据池中与合集保持一致

缓存哪些数据:

数据清理时机:

与合集保持一致

数据单例对象清理时机

LoginSuccess = 1, //重新登录

CrossDay = 2, //跨天

ReturnLobbyFromGame = 4, //从单局返回

BeforeEnterGame = 8, //进入单局