|
楼主 |
发表于 2012-11-9 19:16:45
|
显示全部楼层
战争状态(WarState)
战争状态用来评估当前和对手的战争进度,有下面几个值:- WAR_STATE_NEARLY_DEFEATED,接近失败
- WAR_STATE_DEFENSIVE,守势
- WAR_STATE_STALEMATE,互角
- WAR_STATE_CALM,平静
- WAR_STATE_OFFENSIVE,攻势
- WAR_STATE_NEARLY_WON,接近胜利
复制代码 算法如下:
1. 分别评估我方和敌方的军事力量,分为在我方前线的在敌方前线的两部分,即包括
a) 我方在我方前线的总军力(记为A)
b) 我方在敌方前线的总军力(记为B)
c) 敌方在我方前线的总军力(记为C)
d) 敌方在敌方前线的总军力(记为D)
总军力的评估包括全部军事单位的军力和全部城市的军力之和,具体来说
a) 军事单位的军力:全部军事单位的力量之和
b) 城市的军力:城市的力量乘以当前血量百分比,这个当然只加到我方前线的军力上
注意这里面全部城市都是算进去的,所以多城在这里有十分显著的效果
2. 计算分别在我方前线和敌方前线,我方军力所占总兵力的比例,即
a) 我方前线我方军力比例:M = A / (A+C)
b) 敌方前线我方军力比例:N = B / (B+D)
3. 如果M小于25%并且N大于75%,即我方的军力大都在我方领土上并保持优势,战争状态为平静的。其它的情况,计算M和N的均值K = (M+N)/2,根据这个值判断:
a) 大于75%,接近胜利
b) 在57%到75%之间,攻势
c) 在42%到57%之间,互角
d) 在25%到42%之间,守势
e) 小于25%,接近失败
4. 最后再对一些特殊情况做一点调整
a) 如果战争状态为平静,并且对方很弱(目标价值高于有利的),将战争状态调整为攻势。因为这可能只是因为我们还没打过去。
b) 如果战争状态为守势,并且我们的军力高于敌人的全部军力(包括我方前线和敌方前线两部分之和),将战争状态调整为互角。因为这可能只是因为在我们大举进攻的时候敌人的主力到了我们的地盘。
全局战争状态(StateAllWar)
这个值代表当前己方全局的一个战争状态,有下面几个值- STATE_ALL_WARS_NEUTRAL,普通
- STATE_ALL_WARS_WINNING,胜利
- STATE_ALL_WARS_LOSING,失败
复制代码 这个值根据所有的战争状态统计得出:
1. 如果在战争状态为守势的时候首都受到攻击,或者有任何一场战争状态为接近失败,全局战争状态为失败
2. 其它的情况,根据所有的战争状态统计分数,接近胜利+2,攻势+1,守势-1。最终的分数大于0为胜利,小于0为失败,等于0为普通
[ 本帖最后由 landice 于 2012-11-9 20:16 编辑 ] |
|