mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-06-26 11:24:46 +00:00
95 lines
1.9 KiB
TypeScript
95 lines
1.9 KiB
TypeScript
|
import GAttribute, { GAttributeType } from "./attribute/GAttribute";
|
||
|
import GAttributeBase from "./attribute/GAttributeBase";
|
||
|
|
||
|
//宠物攻击类
|
||
|
export enum GRoleAttackType{
|
||
|
NormalAttack,
|
||
|
}
|
||
|
|
||
|
//宠物数值 核心类
|
||
|
export default class GRoleValues {
|
||
|
|
||
|
//宠物属性
|
||
|
attribute:GAttribute;
|
||
|
|
||
|
get attributes(){
|
||
|
return this.attribute.info;
|
||
|
}
|
||
|
|
||
|
constructor(){
|
||
|
|
||
|
//初始化属性
|
||
|
this.attribute = new GAttribute();
|
||
|
this.update();
|
||
|
|
||
|
}
|
||
|
|
||
|
//重置
|
||
|
reset(){
|
||
|
//初始化属性
|
||
|
this.attribute = new GAttribute();
|
||
|
this.update();
|
||
|
}
|
||
|
|
||
|
//添加属性类
|
||
|
add(info:GAttributeBase){
|
||
|
this.attribute.add(info);
|
||
|
}
|
||
|
|
||
|
//刷新属性
|
||
|
update(){
|
||
|
//刷新属性
|
||
|
this.attribute.update();
|
||
|
}
|
||
|
|
||
|
//普通攻击
|
||
|
onNormalAttack(){
|
||
|
|
||
|
//普通攻击伤害 = 攻击
|
||
|
return this.attributes[GAttributeType.Attack];
|
||
|
|
||
|
}
|
||
|
|
||
|
//受到普通攻击
|
||
|
onUnderNormalAttack(under:number){
|
||
|
|
||
|
//受到普通攻击伤害 = 受到伤害 - 防御
|
||
|
return Math.max(0,under - this.attributes[GAttributeType.Defend]);
|
||
|
|
||
|
}
|
||
|
|
||
|
//受到攻击 统一方法
|
||
|
onUnderAttack(type:GRoleAttackType,under:number){
|
||
|
if(type == GRoleAttackType.NormalAttack){
|
||
|
//受到普通攻击
|
||
|
return this.onUnderNormalAttack(under);
|
||
|
}
|
||
|
return under;
|
||
|
}
|
||
|
|
||
|
//攻击 统一方法
|
||
|
onAttack(type:GRoleAttackType){
|
||
|
if(type == GRoleAttackType.NormalAttack){
|
||
|
//普通攻击
|
||
|
return this.onNormalAttack();
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
//普通攻击某个目标
|
||
|
onNormalAttackTarget(values:GRoleValues){
|
||
|
return values.onUnderNormalAttack(this.onNormalAttack());
|
||
|
}
|
||
|
|
||
|
//血量
|
||
|
onBlood(){
|
||
|
|
||
|
//总血量 = 血量
|
||
|
return this.attributes[GAttributeType.Blood];
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
|