// 目标1,每年1-4月,“每回合”把AI军团行动加满。
// 目标2,AI武将每回合自动设置忠诚为100
// 目标3,AI部队每回合自动设置气力为100
// 目标4,AI据点每回合自动加100兵
var handle = {
// 每回合触发
OnNewTurn:OnNewTurnFunc,
};
RegGameHandler(handle); //注册回调函数
function OnNewTurnFunc(){
// 实现目标1
// 如果当前月份在1-4之间(包含)。
if (Story.month >= 1 && Story.month <=4){
// 获取所有势力
var groups = Story.GetGroups();
// 打印groups数组长度
console.log("groups.count="+groups.length);
// 循环依次处理每个势力
for (var i=0; i<groups.length; i++){
var group = groups[i];
//console.log("groupid="+group.id + " isplayer=" + group.isplayer);
// 如果当前势力不是玩家
if (group.isplayer == false){
var subgroups = group.subgroups;
// 循环处理当前势力下的每个军团
for (var j=0;j<subgroups.length; j++){
// 给当前军团的行动力增加255
var subgroup = subgroups[j];
subgroup.ap += 255;
}
}
}
}
// 实现目标2
// 获取所有武将
var heros = Story.GetHeros();
// 打印heros数组长度
console.log("heros.count="+heros.length);
// 循环依次处理每个武将
for (var i=0; i<heros.length; i++){
var hero = heros[i];
// 获取武将的势力
var group = Story.GetGroup(hero.groupid);
// 查询武将的势力
// 注意:这里查询出来的是游戏中所有武将,包含未发现,在野武将。这些武将没有对应势力。所以上行代码Story.GetGroup(hero.groupid);查询出来的结果可能是null。
if (group != null && group.isplayer == false){
//console.log("hero id=" + hero.id + "groupid="+group.id + " isplayer=" + group.isplayer);
// 如果这个武将的势力不是玩家
if (group.isplayer == false){
// 给AI武将的忠诚度设置成100
hero.loyalty = 100;
}
}
}
// 实现目标3
// 获取所有部队
var armies = Story.GetArmys();
console.log("armys.count="+armies.length);
// 循环处理所有部队
for (var i=0; i<armies.length; i++){
var army = armies[i];
// 获取部队的势力
var group = Story.GetGroup(army.groupid);
// 如果这个部队对应的势力不是玩家控制
// 思考题:这里为什么和上一个例子不同?为什么不用判断group是否为null?
if (group.isplayer == false){
// 给AI部队的气力加至100
army.mp = 100;
}
}
// 实现目标4
// 获取所有据点
var buildings = Story.GetBuildings();
console.log("buildings.count="+buildings.length);
// 循环处理所有据点
for (var i=0; i<buildings.length; i++){
var building = buildings[i];
// 获取部队的势力
// console.log("building id="+building.id + "groupid=" + building.groupid);
var group = Story.GetGroup(building.groupid);
// 如果这个据点对应的势力不是玩家控制
if (group != null && group.isplayer == false){
// 给据点增加士兵,增加时士兵数量等于当前据点的id
building.soldier += building.id;
}
}
}