lite-ts-value v11.93.21
代码
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);
ValueConditionOp - 运算符号
运算符 | 示例 | 说明 |
---|---|---|
= | 金币=5 | 金币数量等于5 |
>= | 金币>=5 | 金币数量大于等于5 |
> | 金币>5 | 金币数量大于5 |
<= | 金币<=5 | 金币数量小于等于5 |
< | 金币<5 | 金币数量小于5 |
%= | 登录次数%=503 | 登录次数对100取余后等于3 |
%>= | 登录次数%>=503 | 登录次数对100取余后大于等于3 |
%> | 登录次数%>503 | 登录次数对100取余后大于3 |
%<= | 登录次数%<=503 | 登录次数对100取余后小于等于3 |
%< | 登录次数%<503 | 登录次数对100取余后小于3 |
now-diff= | 注册时间now-diff=86400 | 注册时间等于1天 |
now-diff>= | 注册时间now-diff>=86400 | 注册时间大于等于1天 |
now-diff> | 注册时间now-diff>86400 | 注册时间大于1天 |
now-diff<= | 注册时间now-diff<=86400 | 注册时间小于等于1天 |
now-diff< | 注册时间now-diff<86400 | 注册时间小于1天 |
own= | 等级own=999 | 999为最大等级 等级等于最大等级 |
own>= | 等级own>=999 | 999为最大等级 等级大于等于最大等级 |
own> | 等级own>999 | 999为最大等级 等级大于最大等级 |
own<= | 等级own<=999 | 999为最大等级 等级小于等于最大等级 |
own< | 等级own<999 | 999为最大等级 等级小于最大等级 |
ValueType - 数值(道具)
编号 | 说明 |
---|---|
1 | 当前时间 |
2 | 语言 |
3 | 货币 |
4 | 支付余额 |
5 | 注冊时间 |
6 | 登录时间 |
7 | 新手礼包领取时间 |
8 | 等级 |
9 | 登录天数 |
10 | 每日登录次数更新时间 |
11 | 每日登录次数 |
12 | 上次同步时间 |
13 | 每日在线时长 |
14 | 项目编号 |
15 | 区服编号 |
17 | 引导编号 |
18 | 头像 |
19 | 头像框 |
20 | 账号留存时间 |
21 | 渠道 |
22 | 总支付余额 |
23 | 游戏版本 |
24 | 省份 |
25 | 城市 |
26 | 新手礼包 |
27 | 联盟编号 |
28 | 会员等级 |
11 months ago
11 months ago
12 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
10 months ago
10 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
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago