欢迎光临散文网 会员登陆 & 注册

《火柴人战争1》PC端-兵种数据

2023-07-06 15:39 作者:凛时雨heaven  | 我要投稿

以下是我通过挖掘《火柴人战争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秒



如有错误,欢迎指出。

如有补充,欢迎评论。

《火柴人战争1》PC端-兵种数据的评论 (共 条)

分享到微博请遵守国家法律