《火柴人战争1》PC端-兵种数据
以下是我通过挖掘《火柴人战争1》的代码丶总结出来的兵种信息,不能说保证100%正确吧,但能保证基本正确。
难度系数:
normal:this.difficultyMultiplier = 1;
hard:this.difficultyMultiplier = 1.2;
insane:this.difficultyMultiplier = 1.35;
var BASE_HEALTH = 100;
var BASE_ATTACK = TechnologyManager.prototype.BASE_HEALTH / 10;
function compound(base, rate, level)
{return Math.pow(1 + rate,level) * base;}
矿工,生命值:
function getMinerHealth()
{return this.difficultyMultiplier * this.BASE_HEALTH / 2;}
生命值=难度系数*50
我方矿工,生命值:恒定50
敌方矿工,生命值:50*难度系数
//normal:50 hard:60 insane:67.5
矿工,采矿速率:
this.GOLD_HIT_INC = this.compound(10,0.2,squad.getTechnology().getMinerPickaxe() - 1);
采矿速率=10*[1.2的(采矿铲等级-1)次方]
我方矿工,采矿速率:
采矿铲等级1:10 //10*1
采矿铲等级2:12 //10*1.2
采矿铲等级3:14.4 //10*1.2*1.2
采矿铲等级4:17.28 //10*1.2*1.2*1.2
敌方矿工和我方矿工,采矿速率参考相同。
矿工,采矿袋容量:
this.MAX_GOLD = this.compound(100,0.2,squad.getTechnology().getMinerBag() - 1);
采矿袋容量=100*[1.2的(采矿袋等级-1)次方]
我方矿工,采矿袋容量:
采矿袋等级1:100 //10*1
采矿袋等级2:120 //10*1.2
采矿袋等级3:144 //10*1.2*1.2
采矿袋等级4:172.8 //10*1.2*1.2*1.2
敌方矿工和我方矿工,采矿袋容量参考相同。
剑士,生命值:
function getSwordmanHealth()
{return this.difficultyMultiplier * this.BASE_HEALTH / 2;}
生命值=难度系数*50
我方剑士,生命值:恒定50
敌方剑士,生命值:50*难度系数
//normal:50 hard:60 insane:67.5
剑士,攻击力:
function getSwordmanAttack()
{return this.difficultyMultiplier * this.compound(this.BASE_ATTACK,0.2,this.swordmanSword - 1);}
攻击力=难度系数*10*[1.2的(剑等级-1)次方]
我方剑士,攻击力:
剑等级1:10 //10*1
剑等级2:12 //10*1.2
剑等级3:14.4 //10*1.2*1.2
剑等级4:17.28 //10*1.2*1.2*1.2
敌方剑士,攻击力:
剑等级1:10*难度系数
//normal:10 hard:12 insane:13.5
剑等级2:12*难度系数
//normal:12 hard:14.4 insane:16.2
剑等级3:14.4*难度系数
//normal:14.4 hard:17.28 insane:19.44
剑等级4:17.28*难度系数
//normal:17.28 hard:20.74 insane:23.33
剑士,速度:
function getSwordmanSpeed()
{return this.swordmanSpeed;}
this.MAX_VELOCITY = this.compound(3,0.2,squad.getTechnology().getSwordmanSpeed() - 1);
速度=3*[1.2的(速度等级-1)次方]
我方剑士,速度:
速度等级1:3 //3*1
速度等级2:3.6 //3*1.2
速度等级3:4.3 //3*1.2*1.2
速度等级4:5.18 //3*1.2*1.2*1.2
敌方剑士和我方剑士,速度参考相同。
巫师战仆,生命值:
function setAsMinion()
{
this.baseScale *= 1.25;
this.MAX_HEALTH /= 1.5;
this.isMinion = true;
}
从代码可以看出,开发者是想让“巫师战仆”的生命值等于“剑士”的三分之二,但是程序员只写了this.MAX_HEALTH /= 1.5,忘了写this.health /= 1.5,所以导致实际上,“巫师战仆”的生命值与“剑士”的生命值相同。
巫师战仆,攻击力:
if(this.isMinion)
{_loc4_[_loc5_].damage(this.controlMultiply() * this.squad.getTechnology().getSwordmanAttack() / 1.5,this.currentDirection,"sword");}
从代码可以看出,“巫师战仆”的攻击力与“剑士”的攻击力相同,但打出来的伤害只有“剑士”的三分之二。
巫师战仆,速度:
if(this.isMinion)
{
this.clip.weapon = 5;
this.MAX_VELOCITY = 3;
}
从代码可以看出,“巫师战仆”的速度恒定为3。
弓箭手,箭矢伤害:
//游戏里好像没有使用弓箭手的攻击力
我没找到箭矢伤害相关的代码
以下是游戏中实际获得的数据:
我方弓箭手,箭矢伤害:
弓箭等级1:5
弓箭等级2:6
弓箭等级3:7
弓箭等级4:9
敌方弓箭手和我方弓箭手,箭矢伤害参考相同。
弓箭手,生命值:
function getArcherHealth()
{return this.difficultyMultiplier * this.compound(this.BASE_HEALTH * 0.1,0.2,this.archerAccuracy);}
生命值=难度系数*10*[1.2的(生命等级)次方]
我方弓箭手,生命值:
生命等级1:12 //10*1.2
生命等级2:14.4 //10*1.2*1.2
生命等级3:17.28 //10*1.2*1.2*1.2
生命等级4:20.74 //10*1.2*1.2*1.2*1.2
敌方弓箭手,生命值:
生命等级1:12*难度系数
//normal:12 hard:14.4 insane:16.2
生命等级2:14.4*难度系数
//normal:14.4 hard:17.28 insane:19.44
生命等级3:17.28*难度系数
//normal:17.28 hard:20.74 insane:23.33
生命等级4:20.74*难度系数
//normal:20.74 hard:24.88 insane:28
斯巴达,生命值:
function getSpartanHealth()
{
if(this.isNotSpartan)
{return this.difficultyMultiplier * this.BASE_HEALTH / 1.5;}
return this.difficultyMultiplier * this.compound(this.BASE_HEALTH / 2,0.2,this.spartanHelmet + this.spartanShield / 2);
}
茅士生命值=难度系数*50*[1.2的(头盔等级+(盾牌等级的二分之一))次方]
伏兵生命值=难度系数*66.67
我方茅士,生命值:
头盔和盾牌都是1级的情况下:65.73
头盔4级,盾牌5级的情况下:163.55
敌方茅士,生命值:
头盔和盾牌都是1级的情况下:65.726*难度系数
//normal:65.73 hard:78.87 insane:88.73
头盔4级,盾牌5级的情况下:163.549*难度系数
//normal:163.55 hard:196.26 insane:220.79
我方没有伏兵。
敌方伏兵,生命值:66.67*难度系数
//normal:66.67 hard:80 insane:90
斯巴达,攻击力:
function getSpartanAttack()
{
if(this.isNotSpartan)
{return this.difficultyMultiplier * this.BASE_ATTACK;}
return this.difficultyMultiplier * this.compound(this.BASE_ATTACK,0.2,this.spartanSpear);
}
茅士攻击力=难度系数*10*[1.2的(矛武器等级)次方]
伏兵攻击力=难度系数*10
我方茅士,攻击力:
矛等级1:12 //10*1.2
矛等级2:14.4 //10*1.2*1.2
矛等级3:17.28 //10*1.2*1.2*1.2
敌方茅士,攻击力:
矛等级1:12*难度系数
//normal:12 hard:14.4 insane:16.2
矛等级2:14.4*难度系数
//normal:14.4 hard:17.28 insane:19.44
矛等级3:17.28*难度系数
//normal:17.28 hard:20.74 insane:23.33
我方没有伏兵。
敌方伏兵,攻击力:10*难度系数
//normal:10 hard:12 insane:13.5
斯巴达,格挡失败的概率:
function getSpartanBlockChance()
{return this.compound(0.4,-0.1,this.spartanShield);}
格挡失败的概率=0.4*[0.9的(盾牌等级)次方]
我方斯巴达,格挡失败的概率:
盾牌等级1:0.36 //0.4*0.9
盾牌等级2:0.32 //0.4*0.9*0.9
盾牌等级3:0.29 //0.4*0.9*0.9*0.9
盾牌等级4:0.26 //0.4*0.9*0.9*0.9*0.9
盾牌等级5:0.24 //0.4*0.9*0.9*0.9*0.9*0.9
敌方斯巴达和我方斯巴达,概率参考相同。
巫师,生命值:
function getWizardHealth()
{return this.difficultyMultiplier * this.BASE_HEALTH;}
生命值=难度系数*100
我方巫师,生命值:恒定100
敌方巫师,生命值:100*难度系数
//normal:100 hard:120 insane:135
巫师,攻击力:
function getWizardAttackPower()
{return this.difficultyMultiplier * this.compound(this.BASE_ATTACK / 2,0.2,this.wizardAttack);}
攻击力=难度系数*5*[1.2的(法杖武器等级)次方]
我方巫师,攻击力:
法杖等级1:6 //5*1.2
法杖等级2:7.2 //5*1.2*1.2
法杖等级3:8.64 //5*1.2*1.2*1.2
法杖等级4:10.37 //5*1.2*1.2*1.2*1.2
敌方巫师,攻击力:
法杖等级1:6*难度系数
//normal:6 hard:7.2 insane:8.1
法杖等级2:7.2*难度系数
//normal:7.2 hard:8.64 insane:9.72
法杖等级3:8.64*难度系数
//normal:8.64 hard:10.37 insane:11.66
法杖等级4:10.37*难度系数
//normal:10.37 hard:12.44 insane:14
巫师,技能眩晕时间:
function getWizardStunTime()
{return this.compound(1500,0.4,this.wizardAttack - 1);}
眩晕时间=1.5秒*[1.4的(法杖等级-1)次方]
从代码可以看出,巫师每升一级丶眩晕时间增加40%,但游戏军械库中的升级文本说明却显示为15%。
我方巫师,技能眩晕时间:
法杖等级1:1.5秒 //1.5*1
法杖等级2:2.1秒 //1.5*1.4
法杖等级3:2.94秒 //1.5*1.4*1.4
法杖等级4:4.12秒 //1.5*1.4*1.4*1.4
敌方巫师和我方巫师,技能眩晕时间参考相同。
巨人,生命值:
function getGiantHealth()
{return this.difficultyMultiplier * this.compound(this.BASE_HEALTH * 12,0.2,this.giantStrength);}
生命值=难度系数*1200*[1.2的(生命等级)次方]
我方巨人,生命值:
生命等级1:1440 //1200*1.2
生命等级2:1728 //1200*1.2*1.2
生命等级3:2073.6 //1200*1.2*1.2*1.2
生命等级4:2488.32 //1200*1.2*1.2*1.2*1.2
敌方巨人,生命值:
生命等级1:1440*难度系数
//normal:1440 hard:1728 insane:1944
生命等级2:1728*难度系数
//normal:1728 hard:2073.6 insane:2332.8
生命等级3:2073.6*难度系数
//normal:2073.6 hard:2488.32 insane:2799.36
生命等级4:2488.32*难度系数
//normal:2488.32 hard:2985.98 insane:3359.23
巨人,攻击力:
function getGiantAttack()
{return this.difficultyMultiplier * this.compound(this.BASE_ATTACK,0.2,this.giantClub);}
攻击力=难度系数*10*[1.2的(武器等级)次方]
我方巨人,攻击力:
武器等级1:12 //10*1.2
武器等级2:14.4 //10*1.2*1.2
敌方巨人,攻击力:
武器等级1:12*难度系数
//normal:12 hard:14.4 insane:16.2
武器等级2:14.4*难度系数
//normal:14.4 hard:18 insane:19.44
武器等级3:17.28*难度系数
//normal:17.28 hard:20.74 insane:23.33
超级巨人:
function setAsSuperGiant()
{
this.isSuperGiant = true;
this.health *= 5;
this.MAX_HEALTH *= 5;
this.GIANT_RANGE *= 2.1;
this.baseScale /= 2.1;
}
敌方超级巨人,攻击距离和尺寸为普通1级巨人的2.1倍
敌方超级巨人,生命值=1440*难度系数*5
normal:7200
hard:8640
insane:9720
敌方超级巨人,攻击力=12*难度系数
normal:12
hard:14.4
insane:16.2
补充:
巨人受到巨人的伤害为40倍,巨人受到剑士和斯巴达的伤害为2倍。
剑士格挡失败的概率为40%。
弓箭手和斯巴达的移动速度为3.5。
伏兵无法投掷长矛。
兵种购置时间:
矿工:4秒
剑士:3秒
弓箭手:8秒
茅士:10秒
巫师:20秒
巨人:20秒
如有错误,欢迎指出。
如有补充,欢迎评论。