lite-ts-value v11.78.16
代码
IDbValueService - 数值服务(工作单元)
const valueService: IDbValueService;
// 验证条件
const opt: ValueServiceCheckConditionsOption;
const res = await valueService.checkConditions(opt);
// res is bool
// 获取数量
const opt: ValueServiceGetCountOption;
const res = await valueService.getCount(opt);
// res = 数量
// 更新
const opt: ValueServiceUpdateOption;
await valueService.update(opt);
- DbValueService
const nowTime: NowTimeBase;
const buildGetCountHandlerFunc: () => ValueHandlerBase;
const buildUpdateHandlerFunc: () => ValueHandlerBase;
const getOwnValueFunc: () => Promise<OwnValue>;
const valueService = new DbValueService(
项目编号,
buildGetCountHandlerFunc,
buildUpdateHandlerFunc,
nowTime,
getOwnValueFunc,
);
IRewardService - 奖励服务
const rewardService: IRewardService;
// 获取结果
const opt: RewardServiceFindResultsOption;
const res = await rewardService.findResults(opt);
// 预览
const opt: RewardServicePreviewOption;
const res = await rewardService.preview(opt);
IValueService - 数值服务
const valueService: IValueService;
// 验证条件
const res = await valueService.checkConditions(数值条件二维数组);
// res is bool
// 是否满足
const res = await valueService.checkEnough(数值数组);
// res is bool
// 获取数量
const res = await valueService.getCount(数值类型);
// res = 数量
// 获取当前时间戳
const res = await valueService.getNow();
// 更新
await valueService.update(数值数组);
- ValueService - 数值服务
const getNowFunc: () => Promise<number>;
const getOwnValueFunc: () => Promise<OwnValue>;
const valueService: IValueService = new ValueService(getNowFunc, getOwnValueFunc);
ValueHandlerBase - 数值处理器(责任链)
const handler: ValueHandlerBase;
// 处理
const value: Value;
const valueService: ValueService;
const uow: UnitOfWorkBase;
await handler.handle({
project: 项目编号,
value,
valueService,
uow,
});
CheckNegativableValueHandler - 检测负值数值处理器
道具示例 - ValueTypeData
value:number | text:string | negativable:bool |
---|---|---|
编号 | 道具名 | 是否可负数 |
1 | 怪物出生纵坐标 | true |
const enumFactory: EnumFactoryBase;
const valueHandler: ValueHandlerBase = new CheckNegativableValueHandler(enumFactory);
FilterReplaceableValueHandler - 过滤可替换数值处理器
道具示例 - ValueTypeData
value:number | text:string | replaceable:bool |
---|---|---|
编号 | 道具名 | 是否替换 |
1 | 上次登录时间 | true |
const enumFactory: EnumFactoryBase;
const valueHandler: ValueHandlerBase = new FilterReplaceableValueHandler(enumFactory);
GetExpireOnValueHandler - 获取过期时间数值处理器
道具示例 - ValueTypeData
value:number | text:string | expireOnValueType:number |
---|---|---|
编号 | 道具名 | 过期时间 |
1 | xx过期时间 | |
2 | xx | xx过期时间 |
const enumFactory: EnumFactoryBase;
const valueHandler: ValueHandlerBase = new GetExpireOnValueHandler(enumFactory);
GetRecoveryValueHandler - 获取恢复数值处理器
道具示例 - ValueTypeData
value:number | text:string | recovery.countdownOnValueType:enum:config.ValueTypeData.text | recovery.interval:number | recovery.maxValueType:enum:config.ValueTypeData.text |
---|---|---|---|---|
编号 | 道具名 | 上次恢复时间 | 恢复间隔(单位: s) | 恢复上限 |
1 | 上次恢复体力时间 | |||
2 | 体力上限 | |||
3 | 体力 | 上次恢复体力时间 | 6 | 体力上限 |
const enumFactory: EnumFactoryBase;
const valueHandler: ValueHandlerBase = new GetRecoveryValueHandler(enumFactory);
GetResetValueHandler - 获取重置数值处理器
道具示例 - ValueTypeData
value:number | text:string | reset.timeValueType:enum:config.ValueTypeData.text | reset.granularity:string | reset.countValueType:enum:config.ValueTypeData.text |
---|---|---|---|---|
编号 | 道具名 | 对照时间 | 时间粒度 | 重置数量数值类型 |
1 | 排位赛挑战重置时间 | |||
2 | 排位赛最大挑战次数 | |||
3 | 今日排位赛挑战次数 | 排位赛挑战重置时间 | day | 排位赛最大挑战次数 |
const enumFactory: EnumFactoryBase;
const time: TimeBase;
const valueHandler: ValueHandlerBase = new GetResetValueHandler(time, enumFactory);
SubjectValueHandler - 主题数值处理器
与IValueObserver配合使用
道具示例 - ValueTypeData
value:number | text:string |
---|---|
编号 | 道具名 |
1 | 金币 |
@ccclass('ModalPropValue')
export class ModalPropValue extends MvvmView<void> implements IValueObserver {
@ioc.Inject(SubjectValueHandler)
public valueSubjectHandler: SubjectValueHandler;
public async predicate(valueTypeData: ValueTypeData) {
return valueTypeData.value == 1;
}
public async notify() {
// 当金币变更时 该函数会被调用
}
protected async onActive() {
this.valueSubjectHandler.addObserver(this);
}
protected onDestroy() {
this.valueSubjectHandler.removeObserver(this);
}
}
UpdateCountValueHandler - 更新数量数值处理器
const valueHandler: ValueHandlerBase = new UpdateCountValueHandler();
UpdateDbValueHandler - 更新数据库数值服务
const dbFactory: DbFactoryBase;
const getEntryFunc: () => Promise<T>;
const dbOptions: DbOption[];
const valueHandler: ValueHandlerBase = new UpdateDbValueHandler(dbFactory, getEntryFunc, dbOptions);
UpdateExpValueHandler - 更新表达式数值处理器
道具示例 - ValueTypeData
value:number | text:string | exp.valueTypes:array:config.enum.ValueTypeData.text | exp.formula:string |
---|---|---|---|
编号 | 道具名 | 表达式数值 | 表达式公式 |
1 | 总攻击力 | 基础攻击力*(等级+1) | |
2 | 基础攻击力 | 总攻击力 | (等级-1)*(等级+1) |
3 | 等级 | 基础攻击力 |
const enumFactory: EnumFactoryBase;
const valueHandler: ValueHandlerBase = new UpdateExpValueHandler(enumFactory);
UpdateExpireOnValueHandler - 更新过期时间数值处理器
道具示例 - ValueTypeData
value:number | text:string | expireOnValueType:enum:config.ValueTypeData.text |
---|---|---|
编号 | 道具名 | 过期时间 |
1 | xx过期时间 | |
2 | xx | xx过期时间 |
const enumFactory: EnumFactoryBase;
const valueHandler: ValueHandlerBase = new UpdateExpireOnValueHandler(enumFactory);
UpdateLogValueHandler - 更新日志数值处理器
const dbFactory: DbFactoryBase;
const stringGenerator: StringGeneratorBase;
const createEntryFunc: () => Partial<ValueLog>;
const dbOptions: DbOption[];
const valueHandler: ValueHandlerBase = new UpdateLogValueHandler(dbFactory, stringGenerator, createEntryFunc, dbOptions);
UpdateNowValueHandler - 更新当前时间数值处理器
道具示例 - ValueTypeData
value:number | text:string | now:granularity |
---|---|---|
编号 | 道具名 | 当前时间粒度 |
1 | 登录时间 | s |
修改数值示例
数量 | 值 |
---|---|
0 | 无效 |
1 | 当前时间 |
-1 | 0 |
<= 946656000 | 当前时间 - 其他值 |
>946656000 | 数量 |
const enumFactory: EnumFactoryBase;
const nowTime: NowTimeBase;
const time: TimeBase;
const valueHandler: ValueHandlerBase = new UpdateNowValueHandler(nowTime, time, enumFactory);
UpdateOpenValueHandler - 更新打开数值处理器
道具示例 - ValueTypeData
value:number | text:string | open:Reward |
---|---|---|
编号 | 道具名 | 打开奖励 |
1 | 新手礼包 | 支付余额*1*11支付余额*2*22支付余额*3*33 |
const rewardService: RewardService;
const enumFactory: EnumFactoryBase;
const valueHandler: ValueHandlerBase = new UpdateOpenValueHandler(rewardService, '场景', enumFactory);
UpdateRecoveryValueHandler - 更新自动恢复数值处理器
道具示例 - ValueTypeData
value:number | text:string | recovery.countdownOnValueType:enum:config.ValueTypeData.text | recovery.interval:number | recovery.maxValueType:enum:config.ValueTypeData.text |
---|---|---|---|---|
编号 | 道具名 | 上次恢复时间 | 恢复间隔(单位: s) | 恢复上限 |
1 | 上次恢复体力时间 | |||
2 | 体力上限 | |||
3 | 体力 | 上次恢复体力时间 | 6 | 体力上限 |
const enumFactory: EnumFactoryBase;
const valueHandler: ValueHandlerBase = new UpdateRecoveryValueHandler(enumFactory);
UpdateRemoteValueHandler - 远程更新数值处理器
道具示例 - ValueTypeData
value:number | text:string | remote.route:string |
---|---|---|
编号 | 道具名 | 路由 |
1 | 装备攻击力 | /growth/update-values |
const enumFactory: EnumFactoryBase;
const rpc: RpcBase;
const rpcBody: { [key: string]: any };
const valueHandler: ValueHandlerBase = new UpdateRemoteValueHandler(rpc, rpcBody, enumFactory);
UpdateReplaceableValueHandler - 更新可替换数值处理器
道具示例 - ValueTypeData
value:number | text:string | replaceable:bool |
---|---|---|
编号 | 道具名 | 是否替换 |
1 | 第五赛季头像过期时间 |
const ownValue = {
1: 100
};
const enumFactory: EnumFactoryBase;
const valueHandler: ValueHandlerBase = new UpdateReplaceableValueHandler(enumFactory);
UpdateResetValueHandler - 更新重置数值处理器
道具示例 - ValueTypeData
value:number | text:string | reset.timeValueType:enum:config.ValueTypeData.text | reset.granularity:string | reset.fixedCount:number | reset.countValueType:enum:config.ValueTypeData.text |
---|---|---|---|---|---|
编号 | 道具名 | 对照时间 | 时间粒度 | 重置数量 | 重置数量(数值类型) |
1 | 排位赛挑战重置时间 | ||||
3 | 今日排位赛挑战次数 | 排位赛挑战重置时间 | day | 4 | 排位赛挑战最大次数 |
const enumFactory: EnumFactoryBase;
const time: TimeBase;
const valueHandler: ValueHandlerBase = new UpdateResetValueHandler(time, enumFactory);
UpdateRpcValueHandler - 更新数值服务(rpc)
const rpc: RpcBase;
const callOption: RpcCallOption<void>;
const valueHandler: ValueHandlerBase = new UpdateRpcValueHandler(rpc, callOption);
UpdateSyncValueHandler - 更新同步数值处理器
value:number | text:string | sync.valueTypes:array:enum.config.ValueTypeData.text | sync.negativeValueTypes:json | sync.positiveValueTypes:json |
---|---|---|---|---|
编号 | 道具名 | 同步类型 | 负数同步类型 | 正数同步类型 |
1 | 商店充值 | 总充值 | ||
2 | 总充值 | |||
3 | 金币 | 消耗金币 | [5] | |
4 | 消耗金币 | |||
5 | 获得金币 |
const enumFactory: EnumFactoryBase;
const valueHandler: ValueHandlerBase = new UpdateSyncValueHandler(enumFactory);
ValueType - 数值(道具)
修改需要同步到lite-ts-value
编号 | 说明 |
---|---|
1 | 当前时间 |
2 | 语言 |
3 | 货币 |
4 | 支付余额 |
5 | 注冊时间 |
6 | 登录时间 |
7 | 新手礼包领取时间 |
8 | 等级 |
9 | 登录天数 |
10 | 每日登录次数更新时间 |
11 | 每日登录次数 |
12 | 上次同步时间 |
13 | 每日在线时长 |
14 | 项目编号 |
15 | 区服 |
16 | 封禁时间 |
17 | 引导编号 |
18 | 头像 |
19 | 头像框 |
20 | 账号留存时间 |
21 | 渠道 |
22 | 总支付余额 |
23 | 游戏版本 |
24 | 省份 |
25 | 城市 |
26 | 新手礼包 |
14 days ago
13 days ago
16 days ago
16 days ago
20 days ago
21 days ago
24 days ago
28 days ago
1 month ago
1 month ago
1 month ago
1 month ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
5 months ago
8 months ago
10 months ago
10 months ago
11 months ago
10 months ago
9 months ago
10 months ago
9 months ago
9 months ago
12 months ago
9 months ago
12 months ago
10 months ago
10 months ago
10 months ago
11 months ago
10 months ago
9 months ago
10 months ago
9 months ago
9 months ago
12 months ago
9 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago