class GameValue {
testGoldValue() {
console.log("等级", "仓库", "过关奖励", "塔升级消耗")
for (let level = 1; level <= 90; level++) {
console.log(
level
,this.goldWarehouse(level)
,this.goldPassReward(level)
,this.goldTowerUpgrade(level)
)
}
for (let level of [500, 1000, 5000, 10000]) {
console.log(
level
,this.goldWarehouse(level)
,this.goldPassReward(level)
,this.goldTowerUpgrade(level)
)
}
}
goldBaseValue(level){
var cut = 10;
var x = parseInt(level/cut);
var value = ((((x+1)*5+level*5)+45)/500)*12*60;
return value;
}
goldWarehouse(level) {
return Math.ceil(this.goldBaseValue(level)*8);
}
goldPassReward(level) {
return Math.ceil(this.goldBaseValue(level));
}
goldTowerUpgrade(levelTotal) {
return Math.ceil(this.goldBaseValue(levelTotal/12)*8/6);
}
_Cycle = 200;
_IncreasePro = 0.05;
powerBaseValue(powerBase,level){
var c = Math.floor((level-1)/_Cycle);
var l0 = Math.floor((level-1)/_Cycle)*_Cycle + 1;
var p0 = powerBase * Math.pow(_Cycle*_IncreasePro+1, c);
var p = p0 + (level-l0)*_IncreasePro*p0;
return p;
}
_TowerAttack = [30,20,20,20];
towerAttack(towerId, level, stoneIncPro) {
var powerBase = _TowerAttack[towerId];
var p = powerBaseValue(powerBase,level)*(1+stoneIncPro);
return p;
}
_TowerSpeed = [3,1,1,1];
_IncreaseSpeedPro1 = 0.001;
_IncreaseSpeedPro2 = 0.0001;
_IncreaseSpeedPro3 = 0.00001;
towerSpeed(towerId, level) {
var s0 = _TowerSpeed[towerId];
var s = s0;
if(level<=201){
s = s0 + (_IncreaseSpeedPro1*(level-1))*s0;
}else if(level>201 && level<=2201){
s = s0 + (_IncreaseSpeedPro1*(201-1))*s0;
s = s + (_IncreaseSpeedPro2*(level-201))*s0;
}else{
s = s0 + (_IncreaseSpeedPro1*(201-1))*s0;
s = s + (_IncreaseSpeedPro2*(2201-201))*s0;
s = s + (_IncreaseSpeedPro3*(level-2201))*s0;
}
return s;
}
_TowerCrit = 750;
_IncreaseCritPro = 0.05;
towerCrit(towerId, level) {
var c = _TowerCrit + (level-1)*_IncreaseCritPro*_TowerCrit;
return c;
}
_EnemyHealth = [500,1000,300,800,2500,5000,1500,4000,500,1000,300,800,2500,5000,1500,4000];
enemyHealth(enemyId, level) {
var powerBase = _EnemyHealth[enemyId];
var p = powerBaseValue(powerBase,level);
return p;
}
_EnemyUnCrit = 5000;
enemyUnCrit(enemyId, level) {
var u = _EnemyUnCrit + (level-1)*_IncreaseCritPro*_EnemyUnCrit;
return u;
}
}
new GameValue().testGoldValue()
console