v1.9.95.8

This commit is contained in:
Spmario233 2019-11-29 13:29:51 +08:00 committed by GitHub
parent 47cca7c105
commit 24ceae1ff5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 139 additions and 80 deletions

View File

@ -1155,7 +1155,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
"step 0"
player.chooseCard('选择任意张手牌与“星”交换',[1,Math.min(player.countCards('h'),player.storage.qixing.length)]).ai=function(card){
player.chooseCard('选择任意张手牌与“星”交换',[1,Math.min(player.countCards('h'),player.storage.qixing.length)]).set('promptx',[player.storage.qixing]).ai=function(card){
var val=get.value(card);
if(val<0) return 10;
if(player.skipList.contains('phaseUse')){
@ -1721,33 +1721,56 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
"step 0"
trigger.cancel();
"step 1"
event.cards=get.cards(5);
if(event.isMine()==false){
event.dialog=ui.create.dialog('涉猎',event.cards);
game.delay(2);
event.videoId=lib.status.videoId++;
game.broadcastAll(function(player,id,cards){
var str;
if(player==game.me&&!_status.auto){
str='涉猎:获取花色各不相同的牌';
}
"step 2"
if(event.dialog) event.dialog.close();
var dialog=ui.create.dialog('涉猎',event.cards);
player.chooseButton([0,5],dialog,true).set('ai',function(button){
return get.value(button.link);
}).filterButton=function(button){
else{
str='涉猎';
}
var dialog=ui.create.dialog(str,cards);
dialog.videoId=id;
},player,event.videoId,event.cards);
event.time=get.utc();
game.addVideo('showCards',player,['涉猎',get.cardsInfo(event.cards)]);
game.addVideo('delay',null,2);
"step 1"
var next=player.chooseButton([0,5],true);
next.set('dialog',event.videoId);
next.set('filterButton',function(button){
for(var i=0;i<ui.selected.buttons.length;i++){
if(get.suit(button.link)==get.suit(ui.selected.buttons[i].link)) return false;
if(get.suit(ui.selected.buttons[i].link)==get.suit(button.link)) return false;
}
return true;
});
next.set('ai',function(button){
return get.value(button.link,_status.event.player);
});
"step 2"
if(result.bool&&result.links){
var cards2=[];
for(var i=0;i<result.links.length;i++){
cards2.push(result.links[i]);
cards.remove(result.links[i]);
}
game.cardsDiscard(cards);
event.cards2=cards2;
}
else{
event.finish();
}
var time=1000-(get.utc()-event.time);
if(time>0){
game.delay(0,time);
}
"step 3"
var cards2=[];
for(var i=0;i<result.buttons.length;i++){
cards2.push(result.buttons[i].link);
cards.remove(result.buttons[i].link);
}
player.gain(cards2,'log');
if(cards2.length) player.$gain2(cards2);
game.cardsDiscard(cards);
game.delay(2);
game.broadcastAll('closeDialog',event.videoId);
var cards2=event.cards2;
player.gain(cards2,'log','gain2');
game.delay();
},
ai:{
threaten:1.2
@ -2304,12 +2327,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//if(button.link.name=='du') return 1;
return 0;
});
chooseButton.filterButton=function(button){
chooseButton.set('filterButton',function(button){
for(var i=0;i<ui.selected.buttons.length;i++){
if(get.suit(button.link)==get.suit(ui.selected.buttons[i].link)) return false;
};
return true;
};
});
'step 1'
if(result.bool){
var list=result.links;
@ -2436,7 +2459,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('drlt_jieying'),function(card,player,target){
player.chooseTarget(get.prompt('drlt_jieying'),"将“营”交给一名角色;其摸牌阶段多摸一张牌,出牌阶段使用【杀】的次数上限+1且手牌上限+1。该角色回合结束后其移去“营”标记然后你获得其所有手牌。",function(card,player,target){
return target!=player;
}).ai=function(target){
if(get.attitude(player,target)>0)
@ -2577,13 +2600,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dawu2:'大雾',
dawu3:'大雾',
// dawu2_info:'已获得大雾标记',
dawu_info:'结束阶段,你可以弃掉X枚“星”指定X名角色直到你的下回合开始防止他们受到的除雷电伤害外的一切伤害。',
dawu_info:'结束阶段,你可以弃置X枚“星”并指定X名角色直到你的下回合开始防止这些角色受到的除雷电伤害外的伤害。',
kuangfeng:'狂风',
kuangfeng2:'狂风',
kuangfeng2_bg:'风',
// kuangfeng2_info:'已获得狂风标记',
kuangfeng3:'狂风',
kuangfeng_info:'结束阶段,你可以弃掉1枚“星”指定一名角色:直到你的下回合开始,该角色每次受到的火焰伤害+1。',
kuangfeng_info:'结束阶段,你可以弃置1枚“星”并指定一名角色:直到你的下回合开始,该角色每次受到的火焰伤害+1。',
baonu:'狂暴',
baonu_bg:'暴',
baonu_info:'锁定技,游戏开始时,你获得两枚“暴怒”标记,;锁定技,每当你造成/受到1点伤害后你获得1枚“暴怒”标记。',
@ -2594,13 +2617,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wumou:'无谋',
wumou_info:'锁定技每当你使用非延时类锦囊牌选择目标后你选择一项1.弃1枚“暴怒”标记2.失去1点体力。',
ol_wuqian:'无前',
ol_wuqian_info:'出牌阶段你可以弃2枚“暴怒”标记并选择一名其他角色你视为拥有技能“无双”并令其防具无效,直到回合结束。',
ol_wuqian_info:'出牌阶段你可以弃2枚“暴怒”标记并选择一名其他角色你视为拥有技能〖无双〗并令其防具无效直到回合结束。',
ol_shenfen:'神愤',
ol_shenfen_info:'出牌阶段你可以弃6枚“暴怒”标记并选择所有其他角色然后这些角色先各弃置其装备区里的牌再各弃置四张手牌然后受到来自你的1点伤害。最后你将你的武将牌翻面。每阶段限一次。',
ol_shenfen_info:'出牌阶段限一次你可以弃6枚“暴怒”标记并选择所有其他角色对其各造成1点伤害。然后这些角色先各弃置其装备区里的牌,再各弃置四张手牌。最后你将你的武将牌翻面。',
"new_wuhun":"武魂",
"new_wuhun_info":"锁定技当你受到伤害后伤害来源获得X个“梦魇”标记X为伤害点数。锁定技当你死亡时你选择一名“梦魇”标记数量最多的其他角色。你的死亡流程结算完成后该角色进行一次判定若判定结果不为【桃】或【桃园结义】则该角色立刻死亡。",
"new_guixin":"归心",
"new_guixin_info":"当你受到1点伤害后你可以随机获得每名其他角色区域里的一张牌然后你翻面",
"new_guixin_info":"当你受到1点伤害后你可以随机获得每名其他角色区域里的一张牌然后你翻面",
},
};
});

View File

@ -200,7 +200,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(num>player.countCards('h')) num=player.countCards('h');
player.chooseCard('h',[1,num],'请选择需要替换“荣”的手牌').set('ai',function(card){
return 5-get.value(card);
});
}).set('promptx',[player.storage.drlt_zhengrong]);
'step 1'
if(result.bool){
event.cards=result.cards;
@ -1486,6 +1486,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(result.bool){
player.storage.nzry_chenglve1=result.cards;
player.syncStorage('nzry_chenglve1');
player.addTempSkill('nzry_chenglve1',{player:'phaseAfter'});
};
},
@ -1542,21 +1543,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
prompt2:"当你使用牌指定目标时,若此牌与你本回合使用的牌类型均不同(包括装备牌),则你可以将此牌置于牌堆顶,然后摸一张牌",
trigger:{
player:['useCard','useCardAfter','respond'],
player:['useCardAfter','respondAfter'],
target:'useCardToTargeted',
},
filter:function (event,player,name){
if(name=='useCard'&&!['equip','delay'].contains(get.type(event.card))) return false;
if(name=='useCardToTargeted'&&(event.player!=player||get.type(event.card)!='equip')) return false;
if(name=='useCardAfter'&&['equip','delay'].contains(get.type(event.card))) return false;
return ((event.name=='respond'&&event.card.name=='shan'&&event.parent.parent.name=='sha')||event.name=='useCard')&&event.cards.length>0&&player.storage.nzry_shicai!=undefined&&!player.storage.nzry_shicai.contains(get.type(event.card,'trick'));
return ((event.name=='respond'&&event.card.name=='shan'&&event.parent.parent.name=='sha')||event.name=='useCardToTargeted'||event.name=='useCard')&&event.cards.length>0&&player.storage.nzry_shicai!=undefined&&!player.storage.nzry_shicai.contains(get.type(event.card,'trick'));
},
check:function (event,player){
if(get.type(event.card)=='equip'){
return get.equipResult(player,player,event.card.name)<=0;
}
return event.card.name!='lebu'&&event.card.name!='bingliang';
return true;
},
content:function(){
"step 0"
player.storage.nzry_shicai.push(get.type(trigger.card,'trick'));
for(var i=0;i<trigger.cards.length;i++){
if(get.position(trigger.cards[i])=='d'){
@ -1567,10 +1568,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
};
game.updateRoundNumber();
player.draw();
"step 1"
if(event.triggername=='useCard'&&['equip','delay'].contains(get.type(trigger.card))){
trigger.cancel();
game.broadcastAll(ui.clear);
if(event.triggername=='useCardToTargeted'){
trigger.getParent().excluded.push(player);
}
},
},
@ -1835,7 +1834,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'2':{
audio:2,
trigger:{
player:'damageAfter',
player:'damageEnd',
},
filter:function (event,player){
return player.countCards('he')>0&&event.source&&event.source!=player&&player.storage.nzry_shenshi==true;

View File

@ -2051,7 +2051,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return _status.currentPhase!=player;
},
content:function(){
player.storage.diancai+=trigger.cards.length;
for(var i=0;i<trigger.cards.length;i++){
if(trigger.cards[i].original&&trigger.cards[i].original!='j') player.storage.diancai++;
}
}
}
}
@ -4055,12 +4057,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
frequent:true,
filter:function(event,player){
if(event.player.hp<=player.hp) return false;
if(event.targets.length>1) return false;
//if(event.targets.length>1) return false;
var hs=player.getCards('h');
var names=['sha','shan','tao','jiu','du'];
for(var i=0;i<hs.length;i++){
names.remove(hs[i].name);
}
if(!names.length) return false;
for(var i=0;i<ui.cardPile.childElementCount;i++){
if(names.contains(ui.cardPile.childNodes[i].name)){
return true;
@ -5210,6 +5213,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
if(player.storage.fanghun) player.draw(player.storage.fanghun);
event.num=player.storage.fanghun2;
var list;
if(_status.connectMode){
@ -5251,7 +5255,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
intro:{
content:'mark'
},
trigger:{source:'damageSource'},
trigger:{
source:'damageSource',
player:'damageEnd',
},
forced:true,
filter:function(event){
return event.card&&event.card.name=='sha';
@ -9651,6 +9658,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseControl('basic','trick','equip','cancel2',function(){
var source=_status.event.source;
if(get.attitude(_status.event.player,source)>0) return 'cancel2';
if(!source.storage.jilei2||!source.storage.jilei2.contains('basic')) return 'basic';
if(_status.currentPhase!=source) return 'trick';
if(lib.filter.cardUsable({name:'sha'},source)&&source.countCards('h')>=2) return 'basic';
return 'trick';
@ -9659,8 +9667,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.control!='cancel2'){
player.logSkill('jilei',trigger.source);
player.popup(get.translation(result.control)+'牌');
trigger.source.storage.jilei2=result.control;
trigger.source.addTempSkill('jilei2');
trigger.source.addTempSkill('jilei2',{player:'phaseBegin'});
trigger.source.storage.jilei2.add(result.control);
trigger.source.updateMarks('jilei2');
}
},
ai:{
@ -9675,33 +9684,36 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return '不能使用、打出或弃置'+get.translation(storage)+'牌';
}
},
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[];
},
mark:true,
onremove:true,
mod:{
cardDiscardable:function(card,player){
if(player.storage.jilei2==get.type(card,'trick')) return false;
if(player.storage.jilei2.contains(get.type(card,'trick'))) return false;
},
cardEnabled:function(card,player){
if(player.storage.jilei2==get.type(card,'trick')) return false;
if(player.storage.jilei2.contains(get.type(card,'trick'))) return false;
},
cardUsable:function(card,player){
if(player.storage.jilei2==get.type(card,'trick')) return false;
if(player.storage.jilei2.contains(get.type(card,'trick'))) return false;
},
cardRespondable:function(card,player){
if(player.storage.jilei2==get.type(card,'trick')) return false;
if(player.storage.jilei2.contains(get.type(card,'trick'))) return false;
},
cardSavable:function(card,player){
if(player.storage.jilei2==get.type(card,'trick')) return false;
if(player.storage.jilei2.contains(get.type(card,'trick'))) return false;
},
},
},
danlao:{
audio:2,
filter:function(event,player){
return event.player!=player&&get.type(event.card)=='trick'&&event.targets&&event.targets.length>1;
return (event.card.name=='sha'||get.type(event.card)=='trick')&&event.targets&&event.targets.length>1;
},
check:function(event,player){
return get.tag(event.card,'multineg')||get.effect(player,event.card,event.player,player)<=0;
return event.getParent().excluded.contains(player)||get.tag(event.card,'multineg')||get.effect(player,event.card,event.player,player)<=0;
},
trigger:{target:'useCardToTargeted'},
content:function(){
@ -13026,9 +13038,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
duanbing:'短兵',
duanbing_info:'你使用【杀】可以多选择一名距离为1的角色为目标',
fanghun:'芳魂',
fanghun_info:'当你使用【杀】造成伤害你获得1个“梅影”标记你可以移去1个“梅影”标记来发动“龙胆”并摸一张牌',
fanghun_info:'当你使用【杀】造成伤害或受到【杀】的伤害你获得1个“梅影”标记你可以移去1个“梅影”标记来发动“龙胆”并摸一张牌',
fuhan:'扶汉',
fuhan_info:'限定技,回合开始时,你可以移去所有“梅影”标记随机观看五名未登场的蜀势力角色将武将牌替换为其中一名角色并将体力上限数调整为本局游戏中移去“梅影”标记的数量至多为游戏开始时的角色数然后若你是体力值最低的角色你回复1点体力',
fuhan_info:'限定技,回合开始时,你可以移去所有“梅影”标记并摸等量的牌随机观看五名未登场的蜀势力角色将武将牌替换为其中一名角色并将体力上限数调整为本局游戏中移去“梅影”标记的数量至多为游戏开始时的角色数然后若你是体力值最低的角色你回复1点体力',
yjixi:'觊玺',
yjixi_info:'觉醒技结束阶段若你连续三回合没有失去过体力则你增加1点体力上限并回复1点体力然后选择一项获得技能“妄尊”或摸两张牌并获得当前主公的主公技',
xinyongsi:'庸肆',
@ -13302,9 +13314,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fenyin_info:'你的回合内,当你使用牌时,若此牌与你于此回合内使用的上一张牌颜色不同,则你可以摸一张牌。',
fuji_info:'当一名角色造成雷电伤害时,你可以令其进行一次判定,若结果为黑色,此伤害+1若结果为红色该角色获得此牌。',
fulu_info:'你可以将【杀】当雷【杀】使用。',
jilei_info:'每当你受到有来源的伤害时,你可以选择一种牌的类别,令伤害来源不能使用、打出或弃置其此类别的手牌,直到回合结束',
jilei_info:'当你受到有来源的伤害后,你可以声明一种牌的类别。若如此做,你令伤害来源不能使用、打出或弃置其此类别的手牌,直到其下个。回合开始。',
danlao:'啖酪',
danlao_info:'当你成为一张指定了多个目标的锦囊牌的目标时,你可以取消之,并摸一张牌。',
danlao_info:'当你成为一张指定了多个目标的【杀】或普通锦囊牌的目标时,你可以摸一张牌并令此牌对你无效。',
gongao:'功獒',
zhuiji:'追击',
chouhai:'仇海',

View File

@ -810,7 +810,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function (){
"step 0"
event.cards=get.cards(4);
player.chooseCardButton(true.event.cards,2,'选择两张牌置于牌堆顶').set('ai',ai.get.buttonValue);
player.chooseCardButton(true,event.cards,2,'选择两张牌置于牌堆顶').set('ai',ai.get.buttonValue);
"step 1"
if(result.bool){
var choice=[];
@ -2297,13 +2297,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
delete player.storage.xinfu_yanyu2;
},
trigger:{
global:["loseEnd","cardsDiscardEnd"],
global:["loseEnd","cardsDiscardEnd","useCardAfter","respondAfter"],
},
direct:true,
filter:function (event,player){
if(player.storage.xinfu_yanyu2>=3) return false;
var evt=event.getParent();
if(evt&&evt.name=='useCard'&&evt.card&&['equip','delay'].contains(get.type(evt.card))) return false;
if(evt&&evt.name=='useCard') return false;
var type=player.storage.xinfu_yanyu;
var cards=event.cards;
for(var i=0;i<cards.length;i++){
@ -5262,7 +5262,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return true;
},
content:function (){
player.storage.xinfu_shangjian+=trigger.cards.length;
for(var i=0;i<trigger.cards.length;i++){
if(trigger.cards[i].original&&trigger.cards[i].original!='j') player.storage.xinfu_shangjian++;
}
},
sub:true,
forced:true,
@ -5617,11 +5619,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"lingren_adddamage":"凌人",
"lingren_adddamage_info":"",
"lingren_jianxiong":"奸雄",
"lingren_jianxiong_info":"当你受到伤害后,你可以获得对你造成伤害的牌并摸一张牌。",
"lingren_jianxiong_info":"当你受到伤害后,你可以获得对你造成伤害的牌并摸一张牌。",
"lingren_xingshang":"行殇",
"lingren_xingshang_info":"你可以立即获得死亡角色的所有牌。",
"lingren_xingshang_info":"当有角色死亡后你可以选择一项1.回复一点体力。2.获得该角色的所有牌。",
"xinfu_fujian":"伏间",
"xinfu_fujian_info":"锁定技,结束阶段,你观看随机一名角色的随机X张手牌。(X为场上手牌最少的角色的手牌数)",
"xinfu_fujian_info":"锁定技,结束阶段,你观看一名随机的其他角色的随机X张手牌。(X为场上手牌最少的角色的手牌数)",
"xinfu_xionghuo":"凶镬",
"xinfu_xionghuo_info":"游戏开始时你获得3个“暴戾”标记。出牌阶段你可以交给一名其他角色一个“暴戾”标记你对有此标记的角色造成的伤害+1且其出牌阶段开始时移去“暴戾”并随机执行一项1.受到1点火焰伤害且本回合不能对你使用【杀】2.流失1点体力且本回合手牌上限-13.你随机获得其一张手牌和一张装备区里的牌。",
xionghuo:"凶镬",

View File

@ -4379,12 +4379,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
'step 1'
if(result.bool){
target.$give(result.cards,player);
target.$give(result.cards.length,player);
target.lose(result.cards,ui.special,'toStorage');
player.storage.kuangbi_draw=result.cards;
player.storage.kuangbi_draw_source=target;
player.syncStorage('kuangbi_draw');
if(!player.storage.kuangbi_draw) player.storage.kuangbi_draw=[];
player.storage.kuangbi_draw.push([result.cards,target]);
player.addSkill('kuangbi_draw');
player.syncStorage('kuangbi_draw');
player.updateMarks('kuangbi_draw');
}
},
ai:{
@ -4404,21 +4405,43 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
mark:true,
charlotte:true,
audio:'kuangbi',
intro:{
content:'cards'
markcount:function(content){
var cards=[];
for(var i=0;i<content.length;i++){
cards.addArray(content[i][0]);
}
return cards.length;
},
mark:function(dialog,content,player){
if(content&&content.length){
var cards=[];
for(var i=0;i<content.length;i++){
cards.addArray(content[i][0]);
}
if(player==game.me||player.isUnderControl()){
dialog.addText('共有'+get.cnNumber(cards.length)+'张牌');
}
else{
dialog.addAuto(cards);
}
}
},
},
content:function(){
var cards=player.storage.kuangbi_draw;
if(cards){
player.gain(cards,'gain2','fromStorage');
var target=player.storage.kuangbi_draw_source;
var storage=player.storage.kuangbi_draw;
if(storage.length){
var next=storage.shift();
player.gain(next[0],'gain2','fromStorage');
var target=next[1];
if(target&&target.isAlive()){
target.draw(cards.length);
target.draw(next[0].length);
}
event.redo();
}
delete player.storage.kuangbi_draw;
delete player.storage.kuangbi_draw_source;
player.removeSkill('kuangbi_draw');
else player.removeSkill('kuangbi_draw');
}
}
}
@ -4506,6 +4529,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
else{
target.addSkill('duliang2');
target.updateMarks('duliang2');
target.storage.duliang2++;
event.finish();
}
@ -6857,6 +6881,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.gain(cards,player);
target.addTempSkill('mingjian2',{player:'phaseAfter'});
target.storage.mingjian2++;
target.updateMarks('mingjian2');
},
ai:{
order:1,
@ -10239,9 +10264,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 3"
game.broadcastAll('closeDialog',event.videoId);
var cards2=event.cards2;
player.gain(cards2,'log');
player.$draw(cards2);
game.delay();
player.gain(cards2,'log','gain2');
},
ai:{
maixie:true,