Compare commits
2 Commits
3b93ffdd7e
...
4a7d74f011
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4a7d74f011 | ||
|
|
fb3b9054dd |
@@ -14,10 +14,10 @@ export interface TalentInfo {
|
|||||||
desc: string;
|
desc: string;
|
||||||
/** 最大等级 */
|
/** 最大等级 */
|
||||||
maxLevel: number;
|
maxLevel: number;
|
||||||
/** 每级提升的数值 */
|
/** 每一级的加成数值,从第1级到最大级 */
|
||||||
valuePerLevel: number;
|
values: number[];
|
||||||
/** 获取指定等级下的实际加成数值 */
|
/** 升到每一级所需的消耗点数,从第1级到最大级 */
|
||||||
getValue: (level: number) => number;
|
costs: number[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TalentConfig = {
|
export const TalentConfig = {
|
||||||
@@ -28,80 +28,27 @@ export const TalentConfig = {
|
|||||||
{ maxLevel: 30, expPerLevel: 200 }
|
{ maxLevel: 30, expPerLevel: 200 }
|
||||||
],
|
],
|
||||||
|
|
||||||
// 天赋升级消耗点数 (第1级到第5级消耗)
|
|
||||||
costPerLevel: [1, 1, 2, 2, 3],
|
|
||||||
|
|
||||||
// 天赋列表
|
// 天赋列表
|
||||||
talents: [
|
talents: [
|
||||||
{
|
{ id: 1, name: "攻击强化", icon: "⚔️", desc: "所有英雄 ATK +{value}%",
|
||||||
id: 1, name: "攻击强化", icon: "⚔️",
|
maxLevel: 5, values: [3, 6, 9, 12, 15], costs: [1, 1, 2, 2, 3] },
|
||||||
desc: "所有英雄 ATK +{value}%",
|
{ id: 2, name: "生命强化", icon: "❤️", desc: "所有英雄 HP +{value}%",
|
||||||
maxLevel: 5,
|
maxLevel: 5, values: [5, 10, 15, 20, 25], costs: [1, 1, 2, 2, 3] },
|
||||||
valuePerLevel: 3,
|
{ id: 3, name: "暴击强化", icon: "🔥", desc: "所有英雄暴击率 +{value}%",
|
||||||
getValue: (level: number) => level * 3
|
maxLevel: 5, values: [2, 4, 6, 8, 10], costs: [1, 1, 2, 2, 3] },
|
||||||
},
|
{ id: 4, name: "风怒强化", icon: "⚡", desc: "所有英雄风怒率 +{value}%",
|
||||||
{
|
maxLevel: 5, values: [2, 4, 6, 8, 10], costs: [1, 1, 2, 2, 3] },
|
||||||
id: 2, name: "生命强化", icon: "❤️",
|
{ id: 5, name: "冰冻强化", icon: "❄️", desc: "所有英雄冰冻率 +{value}%",
|
||||||
desc: "所有英雄 HP +{value}%",
|
maxLevel: 5, values: [2, 4, 6, 8, 10], costs: [1, 1, 2, 2, 3] },
|
||||||
maxLevel: 5,
|
{ id: 6, name: "穿刺强化", icon: "🗡️", desc: "所有英雄穿刺 +{value}",
|
||||||
valuePerLevel: 5,
|
maxLevel: 5, values: [0.2, 0.4, 0.6, 0.8, 1.0], costs: [1, 1, 2, 2, 3] },
|
||||||
getValue: (level: number) => level * 5
|
{ id: 7, name: "护盾强化", icon: "🛡️", desc: "所有护盾效果 +{value}%",
|
||||||
},
|
maxLevel: 5, values: [5, 10, 15, 20, 25], costs: [1, 1, 2, 2, 3] },
|
||||||
{
|
{ id: 8, name: "采购优惠", icon: "🛒", desc: "购买英雄 -{value}金",
|
||||||
id: 3, name: "暴击强化", icon: "🔥",
|
maxLevel: 5, values: [1, 2, 3, 4, 5], costs: [1, 1, 2, 2, 3] },
|
||||||
desc: "所有英雄暴击率 +{value}%",
|
{ id: 9, name: "刷新优惠", icon: "🔄", desc: "刷新重抽 -{value}金",
|
||||||
maxLevel: 5,
|
maxLevel: 5, values: [0.5, 1.0, 1.5, 2.0, 2.5], costs: [1, 1, 2, 2, 3] },
|
||||||
valuePerLevel: 2,
|
{ id: 10, name: "出售补贴", icon: "💰", desc: "出售英雄返还 +{value}%金币",
|
||||||
getValue: (level: number) => level * 2
|
maxLevel: 5, values: [10, 20, 30, 40, 50], costs: [1, 1, 2, 2, 3] }
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 4, name: "风怒强化", icon: "⚡",
|
|
||||||
desc: "所有英雄风怒率 +{value}%",
|
|
||||||
maxLevel: 5,
|
|
||||||
valuePerLevel: 2,
|
|
||||||
getValue: (level: number) => level * 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 5, name: "冰冻强化", icon: "❄️",
|
|
||||||
desc: "所有英雄冰冻率 +{value}%",
|
|
||||||
maxLevel: 5,
|
|
||||||
valuePerLevel: 2,
|
|
||||||
getValue: (level: number) => level * 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 6, name: "穿刺强化", icon: "🗡️",
|
|
||||||
desc: "所有英雄穿刺 +{value}",
|
|
||||||
maxLevel: 5,
|
|
||||||
valuePerLevel: 0.2,
|
|
||||||
getValue: (level: number) => Number((level * 0.2).toFixed(1))
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 7, name: "护盾强化", icon: "🛡️",
|
|
||||||
desc: "所有护盾效果 +{value}%",
|
|
||||||
maxLevel: 5,
|
|
||||||
valuePerLevel: 5,
|
|
||||||
getValue: (level: number) => level * 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 8, name: "采购优惠", icon: "🛒",
|
|
||||||
desc: "购买英雄 -{value}金",
|
|
||||||
maxLevel: 5,
|
|
||||||
valuePerLevel: 1,
|
|
||||||
getValue: (level: number) => level * 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 9, name: "刷新优惠", icon: "🔄",
|
|
||||||
desc: "刷新重抽 -{value}金",
|
|
||||||
maxLevel: 5,
|
|
||||||
valuePerLevel: 0.5,
|
|
||||||
getValue: (level: number) => Number((level * 0.5).toFixed(1))
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 10, name: "出售补贴", icon: "💰",
|
|
||||||
desc: "出售英雄返还 +{value}%金币",
|
|
||||||
maxLevel: 5,
|
|
||||||
valuePerLevel: 10,
|
|
||||||
getValue: (level: number) => level * 10
|
|
||||||
}
|
|
||||||
] as TalentInfo[]
|
] as TalentInfo[]
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -172,14 +172,14 @@ export class TalentsComp extends CCComp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (lblDesc) {
|
if (lblDesc) {
|
||||||
let currentVal = talentInfo.getValue(currentLevel);
|
let currentVal = currentLevel === 0 ? 0 : talentInfo.values[currentLevel - 1];
|
||||||
lblDesc.string = talentInfo.desc.replace('{value}', currentVal.toString());
|
lblDesc.string = talentInfo.desc.replace('{value}', currentVal.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lblLevel) lblLevel.string = `Lv.${currentLevel}`;
|
if (lblLevel) lblLevel.string = `Lv.${currentLevel}`;
|
||||||
|
|
||||||
let isMax = currentLevel >= talentInfo.maxLevel;
|
let isMax = currentLevel >= talentInfo.maxLevel;
|
||||||
let cost = isMax ? 0 : TalentConfig.costPerLevel[currentLevel];
|
let cost = isMax ? 0 : talentInfo.costs[currentLevel];
|
||||||
let points = smc.collection.talent_points || 0;
|
let points = smc.collection.talent_points || 0;
|
||||||
|
|
||||||
if (lblCost) {
|
if (lblCost) {
|
||||||
@@ -229,8 +229,11 @@ export class TalentsComp extends CCComp {
|
|||||||
let refundedPoints = 0;
|
let refundedPoints = 0;
|
||||||
for (let id in collection.talents) {
|
for (let id in collection.talents) {
|
||||||
let level = collection.talents[id];
|
let level = collection.talents[id];
|
||||||
|
let talentInfo = TalentConfig.talents.find(t => t.id === Number(id));
|
||||||
|
if (talentInfo) {
|
||||||
for (let i = 0; i < level; i++) {
|
for (let i = 0; i < level; i++) {
|
||||||
refundedPoints += TalentConfig.costPerLevel[i];
|
refundedPoints += talentInfo.costs[i];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user