lite-ts-value
TypeScript icon, indicating that this package has built-in type declarations

11.78.19 • Public • Published

Version

代码

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 新手礼包

Readme

Keywords

Package Sidebar

Install

npm i lite-ts-value

Weekly Downloads

187

Version

11.78.19

License

GPL-3.0

Unpacked Size

126 kB

Total Files

91

Last publish

Collaborators

  • ahl5esoft