commit
c2c18b2913
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -18,7 +18,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
clan_zhongyan:['female','jin',3,['clanguangu','clanxiaoyong','clanbaozu'],['clan:颍川钟氏']],
|
||||
clan_wangyun:['male','qun',3,['clanjiexuan','clanmingjie','clanzhongliu'],['clan:太原王氏']],
|
||||
clan_wanghun:['male','jin',3,['clanfuxun','clanchenya','clanzhongliu'],['clan:太原王氏']],
|
||||
clan_zhonghui:['male','wei',4,['clanyuzhi','clanxieshu','clanbaozu'],['clan:颍川钟氏']],
|
||||
clan_zhonghui:['male','wei','3/4',['clanyuzhi','clanxieshu','clanbaozu'],['clan:颍川钟氏']],
|
||||
clan_zhongyu:['male','wei',3,['clanjiejian','clanhuanghan','clanbaozu'],['clan:颍川钟氏']],
|
||||
clan_wanglun:['male','wei',3,['clanqiuxin','clanjianyuan','clanzhongliu'],['clan:太原王氏']],
|
||||
clan_xunyou:['male','wei',3,['clanbaichu','clandaojie'],['clan:颍川荀氏']],
|
||||
|
|
|
@ -7273,63 +7273,50 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
olhongyuan:{
|
||||
audio:'hongyuan',
|
||||
trigger:{
|
||||
player:'gainAfter',
|
||||
global:'loseAsyncAfter',
|
||||
trigger:{player:'gainAfter',global:'loseAsyncAfter'},
|
||||
filter(event,player){
|
||||
if(!player.countCards('he')||player.hasSkill('olhongyuan_blocker',null,null,false)) return false;
|
||||
return event.getg(player).length>=2;
|
||||
},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
var cards=event.getg(player);
|
||||
return cards.length>=2&&!player.hasSkill('olhongyuan_blocker',null,null,false);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var max=Math.min(2,game.countPlayer()-1,player.countCards('he'));
|
||||
player.chooseCardTarget({
|
||||
prompt:get.prompt('olhongyuan'),
|
||||
prompt2:'操作提示:按顺序选择任意张要交出的牌,并按任意顺序选择等量的获得牌的角色',
|
||||
filterCard:true,
|
||||
selectCard:[1,max],
|
||||
position:'he',
|
||||
filterTarget:lib.filter.notMe,
|
||||
selectTarget:[1,max],
|
||||
filterOk:function(){
|
||||
return ui.selected.cards.length==ui.selected.targets.length;
|
||||
},
|
||||
ai1:function(card){
|
||||
var player=_status.event.player;
|
||||
var num=game.countPlayer(function(current){
|
||||
return current!=player&&get.attitude(player,current)>0&&!current.hasSkillTag('nogain');
|
||||
});
|
||||
if(num<=ui.selected.cards.length) return -get.value(card);
|
||||
if(!player.hasSkill('olmingzhe')) return 4-Math.max(player.getUseValue(card),get.value(card,player));
|
||||
if(ui.selected.cards.length&&get.color(card)=='red') return 6-get.value(card);
|
||||
return 4-Math.max(player.getUseValue(card),get.value(card,player));
|
||||
},
|
||||
ai2:function(target){
|
||||
var player=_status.event.player,att=get.attitude(player,target);
|
||||
var card=ui.selected.cards[ui.selected.targets.length];
|
||||
if(!card) return att;
|
||||
var val=get.value(card,target);
|
||||
if(val<0) return -att*Math.sqrt(-val);
|
||||
return att*Math.sqrt(val+2);
|
||||
},
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('olhongyuan',result.targets);
|
||||
player.addTempSkill('olhongyuan_blocker',['phaseZhunbeiBefore','phaseJudgeBefore','phaseDrawBefore','phaseUseBefore','phaseDiscardBefore','phaseJieshuBefore','phaseBefore']);
|
||||
var map=[];
|
||||
for(var i=0;i<result.cards.length;i++){
|
||||
map.push([result.targets[i],[result.cards[i]]]);
|
||||
async content(event,trigger,player){
|
||||
player.addTempSkill('olhongyuan_blocker',['phaseZhunbeiBefore','phaseJudgeBefore','phaseDrawBefore','phaseUseBefore','phaseDiscardBefore','phaseJieshuBefore','phaseBefore']);
|
||||
let selectedTargets=[];
|
||||
while(selectedTargets.length<2&&player.countCards('he')&&game.hasPlayer(target=>{
|
||||
return target!=player&&!selectedTargets.includes(target);
|
||||
})){
|
||||
const {result:{bool,targets,cards}}=await player.chooseCardTarget({
|
||||
prompt:'弘援:将一张牌交给一名其他角色',
|
||||
filterCard:true,
|
||||
position:'he',
|
||||
filterTarget(card,player,target){
|
||||
return target!=player&&!get.event('selectedTargets').includes(target);
|
||||
},
|
||||
complexCard:true,
|
||||
complexTarget:true,
|
||||
complexSelect:true,
|
||||
ai1(card){
|
||||
const player=get.event('player');
|
||||
if(!game.hasPlayer(current=>{
|
||||
if(get.event('selectedTargets').includes(current)) return false;
|
||||
return current!=player&&get.attitude(player,current)>0&&!current.hasSkillTag('nogain');
|
||||
})) return -get.value(card);
|
||||
return 4+((player.hasSkill('olmingzhe')&&get.color(card)=='red')?2:0)-Math.max(player.getUseValue(card),get.value(card,player));
|
||||
},
|
||||
ai2(target){
|
||||
const player=_status.event.player,att=get.attitude(player,target);
|
||||
if(!ui.selected.cards.length) return att;
|
||||
const card=ui.selected.cards[0],val=get.value(card,target);
|
||||
if(val<0) return -att*Math.sqrt(-val);
|
||||
return att*Math.sqrt(val+2);
|
||||
},
|
||||
}).set('selectedTargets',selectedTargets);
|
||||
if(bool){
|
||||
const target=targets[0];
|
||||
selectedTargets.push(target);
|
||||
player.line(target);
|
||||
await player.give(cards,target);
|
||||
}
|
||||
game.loseAsync({
|
||||
gain_list:map,
|
||||
player:player,
|
||||
cards:result.cards,
|
||||
giver:player,
|
||||
animate:'giveAuto',
|
||||
}).setContent('gaincardMultiple');
|
||||
else break;
|
||||
}
|
||||
},
|
||||
ai:{threaten:0.8},
|
||||
|
|
|
@ -490,6 +490,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var list=game.filterPlayer().reduce((list,target)=>list.add(target.group),[]);
|
||||
list.sort((a,b)=>lib.group.indexOf(a)-lib.group.indexOf(b));
|
||||
list.forEach(group=>lib.skill.starcanxi.create(group,player));
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
'step 1'
|
||||
var groups=player.getSkills().filter(skill=>skill.indexOf('starcanxi_')==0);
|
||||
|
@ -11372,7 +11374,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
starcanxi_wangsheng:'妄生',
|
||||
starcanxi_xiangsi:'向死',
|
||||
starcanxi_cancel:'向死',
|
||||
starcanxi_info:'锁定技。游戏开始时,你获得场上所有角色的势力对应的“玺角”标记,然后选择一个“玺角”对应势力并选择以下一项;一轮开始时,你选择一个“玺角”对应势力并选择以下一项:①妄生:本轮被选择势力角色每回合首次造成的伤害+1且计算与其他角色间的距离-1;②向死:本轮其他被选择势力角色每回合首次回复体力后失去1点体力且每回合对你使用的第一张牌无效。',
|
||||
starcanxi_info:'锁定技。①游戏开始时,你获得场上所有角色的势力对应的“玺角”标记。②一轮游戏开始时,你选择一个“玺角”对应势力并选择以下一项:1.妄生:本轮被选择势力角色每回合首次造成的伤害+1且计算与其他角色间的距离-1;2.向死:本轮其他被选择势力角色每回合首次回复体力后失去1点体力且每回合对你使用的第一张牌无效。',
|
||||
starpizhi:'圮秩',
|
||||
starpizhi_info:'锁定技。①一名角色死亡后,若你拥有该角色对应的“玺角”标记且你本轮发动〖向死〗的势力与其相同,你失去之并摸X张牌。②结束阶段,你摸X张牌。(X为你本局游戏失去的“玺角”标记数)',
|
||||
starzhonggu:'冢骨',
|
||||
|
|
Loading…
Reference in New Issue