--获取对应技能的基础等级和命符额外等级 function HeroInfo:getSkillLevel(pos) -- body local skillid = self:getMysterySkillID(pos) local amulet_table = self:getEquipAmuletList() local basicLevel = self["m_iCardSkill" .. pos .. "Level"] local extraLevel = basicLevel == 0 and 0 or InitDLSConfigBase.AmuletConfig:getAmuletSkillAddition(amulet_table, skillid) return basicLevel,extraLevel end翻译成TS
时间: 2024-01-13 10:03:03 浏览: 103
LOL-front:英雄联盟唱片网站的前端。 二手React
以下是将 Lua 代码翻译为 TypeScript 的代码:
```typescript
interface InitDLSConfigBase {
AmuletConfig: {
getAmuletSkillAddition(amuletTable: any[], skillId: number): number;
};
}
interface HeroInfo {
m_iCardSkill1Level: number;
m_iCardSkill2Level: number;
getMysterySkillID(pos: number): number;
getEquipAmuletList(): any[];
getSkillLevel(pos: number): [number, number];
}
class HeroInfoImpl implements HeroInfo {
m_iCardSkill1Level: number = 0;
m_iCardSkill2Level: number = 0;
getMysterySkillID(pos: number): number {
// 实现具体方法
return 0;
}
getEquipAmuletList(): any[] {
// 实现具体方法
return [];
}
getSkillLevel(pos: number): [number, number] {
const skillId = this.getMysterySkillID(pos);
const amuletTable = this.getEquipAmuletList();
const basicLevel = this["m_iCardSkill" + pos + "Level"];
const extraLevel =
basicLevel === 0
? 0
: InitDLSConfigBase.AmuletConfig.getAmuletSkillAddition(
amuletTable,
skillId
);
return [basicLevel, extraLevel];
}
}
```
该代码定义了 InitDLSConfigBase 接口和 HeroInfo 接口,分别用于定义 AmuletConfig 对象和 HeroInfo 对象的结构,并规定了 HeroInfo 对象的方法。
接着,定义了 HeroInfoImpl 类,并实现了 HeroInfo 接口中的方法。在 getSkillLevel 方法中,调用了 HeroInfo 对象的其他方法,计算出了技能的基础等级和命符额外等级,并以数组的形式返回。
需要注意的是,由于 Lua 中的变量可以动态创建和访问,因此在 TypeScript 中需要在 HeroInfoImpl 类中显式定义 m_iCardSkill1Level 和 m_iCardSkill2Level 两个属性,以便在 getSkillLevel 方法中引用。
阅读全文