军团战物理攻击插件设计
/warattack 攻击次数(人数) ab 伤害 攻击方全回合次数 ac 被攻击方单位满血hp dr 描述
算法:
总伤害=0;
tag=0; //标记当前bab减值
for(全回合次数)
{
for(攻击次数)
{
roll d20;
damage = 0;
if(d20=20 || (ab-tag+d20>=AC && d20!=1))
{
投damage;
damage -= DR;
if(damage < 0)
damage=0;
if(damage>被攻击方单位满血hp)
damage=被攻击方单位满血hp;
}
总伤害+=伤害;
}
tag+=5;
}
return 总伤害
举例:
英雄攻击:
假设银全回合40下,其中主手20下,副手20下,主手最高ab+15, 伤害1d6+10,副手最高ab+14,伤害1d6+7,攻击对方步兵(AC15, hp7)那么需要使用两次插件
/warattack 10 15 1d6+10 2 15 7 0 攻击步兵团1
/warattack 10 14 1d6+7 2 15 7 0 攻击步兵团1
部队攻击:
假设上述属性的步兵团100人攻击对方步兵团,使用插件如下。
/warattack 100 3 1d8+1 1 15 7 0 攻击步兵团1
备注:
我觉得投命中的时候暂不考虑武器重击吧,因为对方可能不吃重击,每种武器重击范围还不一样,这样搞下去的话参数太多...