Files
oops-framework/assets/script/game/role/model/RoleModelLevelComp.ts

59 lines
1.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* @Author: dgflash
* @Date: 2021-11-18 15:56:01
* @LastEditors: dgflash
* @LastEditTime: 2022-03-10 11:38:31
*/
import { ecs } from "../../../core/libs/ecs/ECS";
import { VM } from "../../../core/libs/model-view/ViewModel";
import { TableRoleLevelUp } from "../../common/table/TableRoleLevelUp";
/**
* 角色等级数据
*
* 实现功能
* 1、角色等级变化时、获取升级配置表中的生命附加值叠加到角色属性上
*
* 技术分析
* 1、等级模块直接通过数据访问层的API获取到本地等级配置表数据通过当前等级匹配到配置表中的等级配置数据
* 2、获取到的等级配置数据中的生命附加值叠加到角色战斗属性的等级模块附加值上
*/
@ecs.register('RoleModelLevel')
export class RoleModelLevelComp extends ecs.Comp {
/** 下个等级配置 */
rtluNext: TableRoleLevelUp = new TableRoleLevelUp();
/** 当前等级配置 */
rtluCurrent: TableRoleLevelUp = new TableRoleLevelUp();
/** 提供 VM 组件使用的数据 */
vm: RoleLevelVM = new RoleLevelVM();
vmAdd() {
VM.add(this.vm, "RoleLevel");
}
vmRemove() {
this.vm.reset();
VM.remove("RoleLevel");
}
reset() {
this.vmRemove();
}
}
class RoleLevelVM {
/** 当前等级 */
lv: number = 0;
/** 当前经验 */
exp: number = 0;
/** 下级经验 */
expNext: number = 0;
reset() {
this.lv = 0;
this.exp = 0;
this.expNext = 0;
}
}