noname/card/extra.js

1030 lines
29 KiB
JavaScript
Raw Normal View History

2017-04-14 23:35:56 +00:00
'use strict';
2017-04-17 05:18:46 +00:00
game.import('card',function(lib,game,ui,get,ai,_status){
2017-04-15 00:25:50 +00:00
return {
name:'extra',
connect:true,
card:{
2019-09-20 15:10:34 +00:00
muniu:{
fullskin:true,
type:'equip',
subtype:'equip5',
nomod:true,
onEquip:function(){
2021-05-18 07:57:26 +00:00
if(card&&card.cards&&card.cards.length){
player.directgains(card.cards,null,'muniu');
}
player.markSkill('muniu_skill');
2019-09-20 15:10:34 +00:00
},
forceDie:true,
onLose:function(){
2020-08-19 13:55:13 +00:00
delete player.getStat('skill').muniu_skill;
2021-10-05 15:46:56 +00:00
player.unmarkSkill('muniu_skill');
2021-05-18 07:57:26 +00:00
if(!card||!card.cards||!card.cards.length) return;
2021-09-30 16:25:44 +00:00
if((!event.getParent(2)||event.getParent(2).name!='swapEquip')&&(event.getParent().type!='equip'||event.getParent().swapEquip)){
2021-05-18 07:57:26 +00:00
player.lose(card.cards,ui.discardPile);
2019-09-20 15:10:34 +00:00
player.$throw(card.cards,1000);
player.popup('muniu');
game.log(card,'掉落了',card.cards);
2020-03-05 13:10:37 +00:00
card.cards.length=0;
2019-09-20 15:10:34 +00:00
}
2021-05-18 07:57:26 +00:00
else{
player.lose(card.cards,ui.special);
}
2019-09-20 15:10:34 +00:00
},
clearLose:true,
equipDelay:false,
loseDelay:false,
2021-05-18 07:57:26 +00:00
skills:['muniu_skill','muniu_skill7'],
2019-09-20 15:10:34 +00:00
ai:{
equipValue:function(card){
if(card.card) return 7+card.card.length;
return 7;
},
basic:{
equipValue:7
}
}
},
2017-04-15 00:25:50 +00:00
jiu:{
audio:true,
fullskin:true,
type:"basic",
2017-07-06 16:25:54 +00:00
toself:true,
2017-04-15 00:25:50 +00:00
enable:function(event,player){
2019-06-17 07:19:46 +00:00
//return !player.hasSkill('jiu');
return true;
2017-04-15 00:25:50 +00:00
},
lianheng:true,
logv:false,
savable:function(card,player,dying){
2020-10-23 14:35:26 +00:00
return dying==player||player.hasSkillTag('jiuOther',null,dying,true);
2017-04-15 00:25:50 +00:00
},
usable:1,
selectTarget:-1,
modTarget:true,
filterTarget:function(card,player,target){
return target==player;
},
content:function(){
2020-05-16 05:03:13 +00:00
if(typeof event.baseDamage!='number') event.baseDamage=1;
2020-03-05 13:10:37 +00:00
if(target.isDying()||event.getParent(2).type=='dying'){
2020-05-16 05:03:13 +00:00
target.recover(event.baseDamage);
2017-04-15 00:25:50 +00:00
if(_status.currentPhase==target){
target.getStat().card.jiu--;
2016-04-04 11:20:05 +00:00
}
2017-04-15 00:25:50 +00:00
}
else{
2020-02-06 11:51:46 +00:00
game.addVideo('jiuNode',target,true);
2017-04-15 00:25:50 +00:00
if(cards&&cards.length){
card=cards[0];
2016-04-04 11:20:05 +00:00
}
2019-08-13 04:37:11 +00:00
if(!target.storage.jiu) target.storage.jiu=0;
2020-05-16 05:03:13 +00:00
target.storage.jiu+=event.baseDamage;
2017-04-15 00:25:50 +00:00
game.broadcastAll(function(target,card,gain2){
target.addSkill('jiu');
if(!target.node.jiu&&lib.config.jiu_effect){
target.node.jiu=ui.create.div('.playerjiu',target.node.avatar);
target.node.jiu2=ui.create.div('.playerjiu',target.node.avatar2);
}
if(gain2&&card.clone&&(card.clone.parentNode==target.parentNode||card.clone.parentNode==ui.arena)){
card.clone.moveDelete(target);
}
2019-06-17 07:19:46 +00:00
},target,card,target==targets[0]&&cards.length==1);
if(target==targets[0]&&cards.length==1){
2017-04-15 00:25:50 +00:00
if(card.clone&&(card.clone.parentNode==target.parentNode||card.clone.parentNode==ui.arena)){
game.addVideo('gain2',target,get.cardsInfo([card]));
}
2016-05-11 15:50:00 +00:00
}
2015-04-29 03:25:17 +00:00
}
2017-04-15 00:25:50 +00:00
},
ai:{
basic:{
useful:function(card,i){
if(_status.event.player.hp>1){
2017-07-20 00:52:37 +00:00
if(i==0) return 4;
2017-04-15 00:25:50 +00:00
return 1;
}
if(i==0) return 7.3;
return 3;
},
value:function(card,player,i){
if(player.hp>1){
if(i==0) return 5;
return 1;
}
if(i==0) return 7.3;
return 3;
},
2015-11-06 10:05:08 +00:00
},
2017-04-15 00:25:50 +00:00
order:function(){
return get.order({name:'sha'})+0.2;
2015-11-06 10:05:08 +00:00
},
2017-04-15 00:25:50 +00:00
result:{
target:function(player,target){
if(target&&target.isDying()) return 2;
2019-08-13 04:37:11 +00:00
if(target&&!target.isPhaseUsing()) return 0;
2017-04-15 00:25:50 +00:00
if(lib.config.mode=='stone'&&!player.isMin()){
if(player.getActCount()+1>=player.actcount) return 0;
}
var shas=player.getCards('h','sha');
2020-03-13 10:02:18 +00:00
if(shas.length>1&&(player.getCardUsable('sha')>1||player.countCards('h','zhuge'))){
2017-04-15 00:25:50 +00:00
return 0;
}
2020-03-25 12:27:23 +00:00
shas.sort(function(a,b){
return get.order(b)-get.order(a);
})
2017-04-15 00:25:50 +00:00
var card;
if(shas.length){
for(var i=0;i<shas.length;i++){
if(lib.filter.filterCard(shas[i],target)){
card=shas[i];break;
}
2015-04-29 03:25:17 +00:00
}
}
2017-04-15 00:25:50 +00:00
else if(player.hasSha()&&player.needsToDiscard()){
if(player.countCards('h','hufu')!=1){
card={name:'sha'};
}
2017-02-12 15:59:52 +00:00
}
2017-04-15 00:25:50 +00:00
if(card){
if(game.hasPlayer(function(current){
return (get.attitude(target,current)<0&&
2022-10-20 11:50:57 +00:00
target.canUse(card,current,null,true)&&
2020-02-14 05:33:43 +00:00
!current.hasSkillTag('filterDamage',null,{
player:player,
card:card,
2020-03-23 09:11:24 +00:00
jiu:true,
2020-02-14 05:33:43 +00:00
})&&
2017-04-15 00:25:50 +00:00
get.effect(current,card,target)>0);
})){
return 1;
}
2015-04-29 03:25:17 +00:00
}
2017-04-15 00:25:50 +00:00
return 0;
},
2015-04-29 03:25:17 +00:00
},
2017-04-15 00:25:50 +00:00
tag:{
2022-10-20 11:50:57 +00:00
save:1,
recover:0.1,
2015-04-29 03:25:17 +00:00
}
}
},
2017-04-15 00:25:50 +00:00
huogong:{
audio:true,
fullskin:true,
type:'trick',
enable:true,
2020-12-02 11:48:23 +00:00
//cardnature:'fire',
2017-04-15 00:25:50 +00:00
filterTarget:function(card,player,target){
if(player!=game.me&&player.countCards('h')<2) return false;
return target.countCards('h')>0;
2015-04-29 03:25:17 +00:00
},
2017-04-15 00:25:50 +00:00
content:function(){
"step 0"
if(target.countCards('h')==0){
event.finish();
return;
}
target.chooseCard(true).ai=function(card){
2017-05-22 01:09:03 +00:00
if(_status.event.getRand()<0.5) return Math.random();
2017-04-15 00:25:50 +00:00
return get.value(card);
};
"step 1"
2023-05-13 14:57:29 +00:00
target.showCards(result.cards).setContent(function(){});
2017-04-15 00:25:50 +00:00
event.dialog=ui.create.dialog(get.translation(target)+'展示的手牌',result.cards);
event.videoId=lib.status.videoId++;
game.broadcast('createDialog',event.videoId,get.translation(target)+'展示的手牌',result.cards);
game.addVideo('cardDialog',null,[get.translation(target)+'展示的手牌',get.cardsInfo(result.cards),event.videoId]);
event.card2=result.cards[0];
game.log(target,'展示了',event.card2);
2020-02-08 03:39:33 +00:00
event._result={};
2017-04-15 00:25:50 +00:00
player.chooseToDiscard({suit:get.suit(event.card2)},function(card){
var evt=_status.event.getParent();
if(get.damageEffect(evt.target,evt.player,evt.player,'fire')>0){
return 7-get.value(card,evt.player);
}
return -1;
2020-10-23 14:35:26 +00:00
}).set('prompt',false);
2017-04-15 00:25:50 +00:00
game.delay(2);
"step 2"
if(result.bool){
2021-04-08 03:17:33 +00:00
target.damage('fire',event.baseDamage||1);
2017-04-15 00:25:50 +00:00
}
else{
2017-05-18 22:15:32 +00:00
target.addTempSkill('huogong2');
2017-04-15 00:25:50 +00:00
}
event.dialog.close();
game.addVideo('cardDialog',null,event.videoId);
game.broadcast('closeDialog',event.videoId);
2015-11-16 01:59:54 +00:00
},
2017-04-15 00:25:50 +00:00
ai:{
basic:{
order:4,
value:[3,1],
useful:1,
},
wuxie:function(target,card,player,current,state){
if(get.attitude(current,player)>=0&&state>0) return false;
},
result:{
player:function(player){
var nh=player.countCards('h');
if(nh<=player.hp&&nh<=4&&_status.event.name=='chooseToUse'){
if(typeof _status.event.filterCard=='function'&&
2019-12-30 05:02:34 +00:00
_status.event.filterCard({name:'huogong'},player,_status.event)){
2017-04-15 00:25:50 +00:00
return -10;
}
if(_status.event.skill){
var viewAs=get.info(_status.event.skill).viewAs;
if(viewAs=='huogong') return -10;
if(viewAs&&viewAs.name=='huogong') return -10;
}
2015-05-05 09:23:31 +00:00
}
2017-04-15 00:25:50 +00:00
return 0;
},
target:function(player,target){
if(target.hasSkill('huogong2')||target.countCards('h')==0) return 0;
if(player.countCards('h')<=1) return 0;
if(target==player){
if(typeof _status.event.filterCard=='function'&&
2019-12-30 05:02:34 +00:00
_status.event.filterCard({name:'huogong'},player,_status.event)){
2022-09-02 14:37:30 +00:00
return -1.15;
2017-04-15 00:25:50 +00:00
}
if(_status.event.skill){
var viewAs=get.info(_status.event.skill).viewAs;
2022-09-02 14:37:30 +00:00
if(viewAs=='huogong') return -1.15;
if(viewAs&&viewAs.name=='huogong') return -1.15;
2017-04-15 00:25:50 +00:00
}
return 0;
2015-05-05 09:23:31 +00:00
}
2022-09-02 14:37:30 +00:00
return -1.15;
2015-05-03 15:17:15 +00:00
}
2015-04-29 03:25:17 +00:00
},
2017-04-15 00:25:50 +00:00
tag:{
damage:1,
fireDamage:1,
natureDamage:1,
norepeat:1
}
}
},
tiesuo:{
audio:true,
fullskin:true,
type:'trick',
enable:true,
filterTarget:true,
selectTarget:[1,2],
2019-09-13 13:35:44 +00:00
complexTarget:true,
2017-04-15 00:25:50 +00:00
content:function(){
target.link();
},
chongzhu:true,
ai:{
2020-04-18 05:32:41 +00:00
wuxie:function(target,card,player,viewer){
2019-06-07 03:46:13 +00:00
if(_status.event.getRand()<0.5) return 0;
2020-04-18 05:32:41 +00:00
if(player==game.me&&get.attitude(viewer,player)>0){
return 0;
}
2017-04-15 00:25:50 +00:00
},
basic:{
useful:4,
value:4,
order:7
},
result:{
target:function(player,target){
2018-01-05 04:46:56 +00:00
if(target.isLinked()){
if(target.hasSkillTag('link')) return 0;
var f=target.hasSkillTag('nofire');
var t=target.hasSkillTag('nothunder');
if(f&&t) return 0;
if(f||t) return 0.5;
return 2;
}
2017-11-12 22:15:04 +00:00
if(get.attitude(player,target)>=0) return -0.9;
if(ui.selected.targets.length) return -0.9;
2017-04-15 00:25:50 +00:00
if(game.hasPlayer(function(current){
return get.attitude(player,current)<=-1&&current!=target&&!current.isLinked();
})){
2017-11-12 22:15:04 +00:00
return -0.9;
2015-06-27 16:21:25 +00:00
}
return 0;
}
2017-04-15 00:25:50 +00:00
},
tag:{
multitarget:1,
multineg:1,
norepeat:1
2015-04-29 03:25:17 +00:00
}
}
},
2017-04-15 00:25:50 +00:00
bingliang:{
audio:true,
fullskin:true,
type:'delay',
range:{global:1},
filterTarget:function(card,player,target){
return (lib.filter.judge(card,player,target)&&player!=target);
},
2017-04-15 00:25:50 +00:00
judge:function(card){
2021-12-09 13:57:51 +00:00
if(get.suit(card)=='club') return 1;
return -2;
2015-04-29 03:25:17 +00:00
},
2021-09-23 15:07:50 +00:00
judge2:function(result){
if(result.bool==false) return true;
return false;
},
2017-04-15 00:25:50 +00:00
effect:function(){
if(result.bool==false){
2019-11-14 05:47:38 +00:00
if(get.is.changban()) player.addTempSkill('bingliang_changban');
else player.skip('phaseDraw');
2015-04-29 03:25:17 +00:00
}
},
2017-04-15 00:25:50 +00:00
ai:{
basic:{
order:1,
useful:1,
value:4,
},
result:{
target:function(player,target){
2017-05-07 07:22:55 +00:00
if(target.hasJudge('caomu')) return 0;
return -1.5/Math.sqrt(target.countCards('h')+1);
2017-04-15 00:25:50 +00:00
}
},
tag:{
skip:'phaseDraw'
}
2015-04-29 03:25:17 +00:00
}
},
2017-04-15 00:25:50 +00:00
hualiu:{
fullskin:true,
type:'equip',
subtype:'equip3',
distance:{globalTo:1},
2015-04-29 03:25:17 +00:00
},
2017-04-15 00:25:50 +00:00
zhuque:{
fullskin:true,
type:'equip',
subtype:'equip1',
2020-12-02 11:48:23 +00:00
//cardnature:'fire',
2017-04-15 00:25:50 +00:00
distance:{attackFrom:-3},
ai:{
basic:{
equipValue:2
2015-04-29 03:25:17 +00:00
}
},
2017-04-15 00:25:50 +00:00
skills:['zhuque_skill']
2015-04-29 03:25:17 +00:00
},
2017-04-15 00:25:50 +00:00
guding:{
fullskin:true,
type:'equip',
subtype:'equip1',
distance:{attackFrom:-1},
ai:{
basic:{
equipValue:2
2015-04-29 03:25:17 +00:00
}
},
2017-04-15 00:25:50 +00:00
skills:['guding_skill']
2015-04-29 03:25:17 +00:00
},
2017-04-15 00:25:50 +00:00
tengjia:{
fullskin:true,
type:'equip',
subtype:'equip2',
2020-12-02 11:48:23 +00:00
//cardnature:'fire',
2017-04-15 00:25:50 +00:00
ai:{
2020-12-02 11:48:23 +00:00
value:function(card,player,index,method){
if(player.isDisabled(2)) return 0.01;
if(card==player.getEquip(2)){
if(player.hasSkillTag('noDirectDamage')) return 10;
if(game.hasPlayer(function(current){
return current!=player&&get.attitude(current,player)<0&&current.hasSkillTag('fireAttack',null,null,true);
2020-12-02 11:48:23 +00:00
})) return 0;
return 6;
}
var value=0;
var info=get.info(card);
var current=player.getEquip(info.subtype);
if(current&&card!=current){
value=get.value(current,player);
}
var equipValue=info.ai.equipValue;
if(equipValue==undefined){
equipValue=info.ai.basic.equipValue;
}
if(typeof equipValue=='function'){
if(method=='raw') return equipValue(card,player);
if(method=='raw2') return equipValue(card,player)-value;
return Math.max(0.1,equipValue(card,player)-value);
}
if(typeof equipValue!='number') equipValue=0;
if(method=='raw') return equipValue;
if(method=='raw2') return equipValue-value;
return Math.max(0.1,equipValue-value);
},
2017-05-22 03:18:10 +00:00
equipValue:function(card,player){
if(player.hasSkillTag('maixie')&&player.hp>1) return 0;
if(player.hasSkillTag('noDirectDamage')) return 10;
if(get.damageEffect(player,player,player,'fire')>=0) return 10;
2020-12-02 11:48:23 +00:00
var num=4-game.countPlayer(function(current){
if(get.attitude(current,player)<0){
if(current.hasSkillTag('fireAttack',null,null,true)) return 3;
return 1;
}
return false;
2017-05-22 03:18:10 +00:00
});
2020-12-02 11:48:23 +00:00
if(player.hp==1) num+=3;
2017-05-22 03:18:10 +00:00
if(player.hp==2) num+=1;
return num;
},
2017-04-15 00:25:50 +00:00
basic:{
2017-05-22 03:18:10 +00:00
equipValue:3
2017-04-15 00:25:50 +00:00
},
},
2019-06-17 07:19:46 +00:00
skills:['tengjia1','tengjia2','tengjia3']
2015-04-29 03:25:17 +00:00
},
2017-04-15 00:25:50 +00:00
baiyin:{
fullskin:true,
type:'equip',
subtype:'equip2',
2020-03-27 05:30:48 +00:00
loseDelay:false,
2017-04-15 00:25:50 +00:00
onLose:function(){
2020-03-27 05:30:48 +00:00
var next=game.createEvent('baiyin_recover');
event.next.remove(next);
2020-10-15 05:41:31 +00:00
var evt=event.getParent();
if(evt.getlx===false) evt=evt.getParent();
evt.after.push(next);
2020-03-27 05:30:48 +00:00
next.player=player;
next.setContent(function(){
2020-10-15 05:41:31 +00:00
if(player.isDamaged()) player.logSkill('baiyin_skill');
2020-03-27 05:30:48 +00:00
player.recover();
});
2017-04-15 00:25:50 +00:00
},
filterLose:function(card,player){
2019-11-14 05:47:38 +00:00
if(player.hasSkillTag('unequip2')) return false;
2020-03-27 05:30:48 +00:00
return true;
2017-04-15 00:25:50 +00:00
},
skills:['baiyin_skill'],
tag:{
recover:1,
},
ai:{
order:9.5,
2017-05-22 03:18:10 +00:00
equipValue:function(card,player){
if(player.hp==player.maxHp) return 5;
if(player.countCards('h','baiyin')) return 6;
return 0;
},
2017-04-15 00:25:50 +00:00
basic:{
2017-05-22 03:18:10 +00:00
equipValue:5
2015-04-29 03:25:17 +00:00
}
}
},
},
2017-04-15 00:25:50 +00:00
skill:{
2019-11-14 05:47:38 +00:00
bingliang_changban:{
cardSkill:true,
unique:true,
trigger:{player:'phaseDrawBegin'},
silent:true,
content:function(){
trigger.num--;
},
group:'bingliang_changban2'
},
bingliang_changban2:{
cardSkill:true,
trigger:{player:'phaseDrawAfter'},
silent:true,
content:function(){
if(player.enemy) player.enemy.draw();
}
},
2019-09-20 15:10:34 +00:00
muniu_skill:{
2019-11-14 05:47:38 +00:00
equipSkill:true,
2019-09-20 15:10:34 +00:00
enable:'phaseUse',
usable:1,
filterCard:true,
check:function(card){
if(card.name=='du') return 20;
var player=_status.event.player;
var nh=player.countCards('h');
if(!player.needsToDiscard()){
if(nh<3) return 0;
if(nh==3) return 5-get.value(card);
return 7-get.value(card);
}
return 10-get.useful(card);
},
discard:false,
2021-05-18 07:57:26 +00:00
lose:false,
delay:false,
2019-09-20 15:10:34 +00:00
sync:function(muniu){
if(game.online){
return;
}
if(!muniu.cards){
muniu.cards=[];
}
for(var i=0;i<muniu.cards.length;i++){
2021-05-18 07:57:26 +00:00
if(get.position(muniu.cards[i])!='s'){
2019-09-20 15:10:34 +00:00
muniu.cards.splice(i--,1);
}
}
game.broadcast(function(muniu,cards){
muniu.cards=cards;
},muniu,muniu.cards);
},
filter:function(event,player){
return player.countCards('h')>0;
},
prepare:function(cards,player){
player.$give(1,player,false);
},
content:function(){
"step 0"
2021-05-18 07:57:26 +00:00
player.loseToSpecial(cards,'muniu');
"step 1"
2019-09-20 15:10:34 +00:00
for(var i=0;i<cards.length;i++){
2021-05-18 07:57:26 +00:00
if(cards[i].destroyed||!cards[i].hasGaintag('muniu')||get.position(cards[i])!='s'){
2019-09-20 15:10:34 +00:00
cards[i].remove();
cards.splice(i--,1);
}
}
var muniu=player.getEquip(5);
if(!muniu||!cards.length){
for(var i=0;i<cards.length;i++){
cards[i].discard();
}
event.finish();
return;
}
if(muniu.cards==undefined) muniu.cards=[];
muniu.cards.push(cards[0]);
game.broadcast(function(muniu,cards){
muniu.cards=cards;
},muniu,muniu.cards);
2021-05-18 07:57:26 +00:00
game.delayx();
"step 2"
2019-09-20 15:10:34 +00:00
var players=game.filterPlayer(function(current){
if(!current.getEquip(5)&&current!=player&&!current.isTurnedOver()&&
get.attitude(player,current)>=3&&get.attitude(current,player)>=3){
return true;
}
});
players.sort(lib.sort.seat);
var choice=players[0];
var next=player.chooseTarget('是否移动木牛流马?',function(card,player,target){
return !target.isMin()&&player!=target&&target.isEmpty(5);
});
next.set('ai',function(target){
return target==_status.event.choice?1:-1;
});
next.set('choice',choice);
2021-05-18 07:57:26 +00:00
"step 3"
2019-09-20 15:10:34 +00:00
if(result.bool){
var card=player.getEquip(5);
result.targets[0].equip(card);
player.$give(card,result.targets[0]);
player.line(result.targets,'green');
game.delay();
}
else{
player.updateMarks();
}
},
ai:{
order:1,
expose:0.1,
result:{
player:1
}
},
2021-05-18 07:57:26 +00:00
mod:{
cardEnabled2:function(card,player){
if(!ui.selected.cards.length) return;
2020-04-25 05:40:05 +00:00
var muniu=player.getEquip('muniu');
2021-05-18 07:57:26 +00:00
if(!muniu||!muniu.cards||!muniu.cards.length) return;
for(var i of ui.selected.cards){
if(i==muniu&&muniu.cards.contains(card)) return false;
if(muniu.cards.contains(i)&&card==muniu) return false;
2019-09-20 15:10:34 +00:00
}
},
2021-05-18 07:57:26 +00:00
},
2019-09-20 15:10:34 +00:00
mark:true,
intro:{
content:function(storage,player){
var muniu=player.getEquip(5);
if(!muniu||!muniu.cards||!muniu.cards.length) return '共有〇张牌';
if(player.isUnderControl(true)){
return get.translation(muniu.cards);
}
else{
return '共有'+get.cnNumber(muniu.cards.length)+'张牌';
}
},
mark:function(dialog,storage,player){
var muniu=player.getEquip(5);
if(!muniu||!muniu.cards||!muniu.cards.length) return '共有〇张牌';
if(player.isUnderControl(true)){
dialog.addAuto(muniu.cards);
}
else{
return '共有'+get.cnNumber(muniu.cards.length)+'张牌';
}
},
markcount:function(storage,player){
var muniu=player.getEquip(5);
if(muniu&&muniu.cards) return muniu.cards.length;
return 0;
}
}
},
muniu_skill7:{
2021-05-18 07:57:26 +00:00
trigger:{player:'loseEnd'},
2020-11-07 08:52:28 +00:00
firstDo:true,
2021-07-15 04:47:00 +00:00
forced:true,
//silent:true,
2020-11-07 08:52:28 +00:00
filter:function(event,player){
2021-05-18 07:57:26 +00:00
if(!event.ss||!event.ss.length||event.parent.name=='lose_muniu') return false;
2020-11-07 08:52:28 +00:00
var muniu=player.getEquip('muniu');
if(!muniu||!muniu.cards) return false;
2021-05-18 07:57:26 +00:00
return event.ss.filter(function(card){
2020-11-07 08:52:28 +00:00
return muniu.cards.contains(card);
}).length>0;
},
content:function(){
var muniu=player.getEquip(5);
if(muniu&&muniu.cards){
2021-05-18 07:57:26 +00:00
muniu.cards.removeArray(trigger.ss);
2020-11-07 08:52:28 +00:00
lib.skill.muniu_skill.sync(muniu);
}
player.updateMarks();
},
2019-09-20 15:10:34 +00:00
},
2022-11-12 11:47:23 +00:00
huogong2:{charlotte:true},
2017-04-15 00:25:50 +00:00
jiu:{
2020-02-06 11:51:46 +00:00
trigger:{player:'useCard1'},
2017-04-15 00:25:50 +00:00
filter:function(event){
2019-06-17 07:19:46 +00:00
return event.card&&event.card.name=='sha';
2017-04-15 00:25:50 +00:00
},
forced:true,
2020-02-06 11:51:46 +00:00
charlotte:true,
firstDo:true,
2017-04-15 00:25:50 +00:00
content:function(){
2019-06-17 07:19:46 +00:00
if(!trigger.baseDamage) trigger.baseDamage=1;
trigger.baseDamage+=player.storage.jiu;
2019-10-19 11:18:56 +00:00
trigger.jiu=true;
2020-03-13 10:02:18 +00:00
trigger.jiu_add=player.storage.jiu;
2020-01-22 06:04:55 +00:00
game.addVideo('jiuNode',player,false);
2019-06-17 07:19:46 +00:00
game.broadcastAll(function(player){
player.removeSkill('jiu');
},player);
2017-04-15 00:25:50 +00:00
},
temp:true,
2017-05-07 17:47:09 +00:00
vanish:true,
2019-06-17 07:19:46 +00:00
silent:true,
popup:false,
2020-06-20 04:53:15 +00:00
nopop:true,
2017-04-15 05:47:45 +00:00
onremove:function(player){
if(player.node.jiu){
player.node.jiu.delete();
player.node.jiu2.delete();
delete player.node.jiu;
delete player.node.jiu2;
}
2019-06-17 07:19:46 +00:00
delete player.storage.jiu;
2017-04-15 05:47:45 +00:00
},
2017-11-30 08:32:57 +00:00
ai:{
damageBonus:true
},
2017-04-15 00:25:50 +00:00
group:'jiu2'
2015-04-29 03:25:17 +00:00
},
2017-04-15 00:25:50 +00:00
jiu2:{
trigger:{player:'useCardAfter',global:'phaseAfter'},
priority:2,
2020-02-06 11:51:46 +00:00
firstDo:true,
charlotte:true,
2017-04-15 00:25:50 +00:00
filter:function(event){
if(event.name=='useCard') return (event.card&&(event.card.name=='sha'));
return true;
},
forced:true,
popup:false,
audio:false,
content:function(){
game.broadcastAll(function(player){
player.removeSkill('jiu');
},player);
2020-01-22 06:04:55 +00:00
game.addVideo('jiuNode',player,false);
2017-04-15 00:25:50 +00:00
},
2015-04-29 03:25:17 +00:00
},
2017-04-15 00:25:50 +00:00
guding_skill:{
2019-11-14 05:47:38 +00:00
equipSkill:true,
2017-04-15 00:25:50 +00:00
audio:true,
2019-11-14 05:47:38 +00:00
trigger:{source:'damageBegin1'},
2017-04-15 00:25:50 +00:00
filter:function(event){
if(event.parent.name=='_lianhuan'||event.parent.name=='_lianhuan2') return false;
if(event.card&&event.card.name=='sha'){
if(event.player.countCards('h')==0) return true;
}
return false;
},
forced:true,
content:function(){
trigger.num++;
},
ai:{
effect:{
2021-01-19 14:04:52 +00:00
player:function(card,player,target,current,isLink){
if(card.name=='sha'&&!isLink&&target.countCards('h')==0&&!target.hasSkillTag('filterDamage',null,{
2020-02-16 04:25:41 +00:00
player:player,
card:card,
})) return [1,0,1,-3];
2017-04-15 00:25:50 +00:00
}
}
2015-04-29 03:25:17 +00:00
}
},
2017-04-15 00:25:50 +00:00
tengjia1:{
2019-11-14 05:47:38 +00:00
equipSkill:true,
2019-06-17 07:19:46 +00:00
trigger:{target:['useCardToBefore']},
2017-04-15 00:25:50 +00:00
forced:true,
priority:6,
audio:true,
filter:function(event,player){
2019-11-14 05:47:38 +00:00
if(player.hasSkillTag('unequip2')) return false;
2018-08-20 05:51:05 +00:00
if(event.player.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
card:event.card
})) return false;
2017-04-15 00:25:50 +00:00
if(event.card.name=='nanman') return true;
if(event.card.name=='wanjian') return true;
2021-07-28 08:46:10 +00:00
//if(event.card.name=='chuqibuyi') return true;
return false;
2017-04-15 00:25:50 +00:00
},
content:function(){
2017-09-15 07:51:09 +00:00
trigger.cancel();
2017-04-15 00:25:50 +00:00
},
ai:{
effect:{
target:function(card,player,target,current){
2019-11-14 05:47:38 +00:00
if(target.hasSkillTag('unequip2')) return;
2018-08-20 05:51:05 +00:00
if(player.hasSkillTag('unequip',false,{
name:card?card.name:null,
2021-01-19 14:04:52 +00:00
target:target,
2018-08-20 05:51:05 +00:00
card:card
2020-02-14 05:33:43 +00:00
})||player.hasSkillTag('unequip_ai',false,{
name:card?card.name:null,
2021-01-19 14:04:52 +00:00
target:target,
2020-02-14 05:33:43 +00:00
card:card
2018-08-20 05:51:05 +00:00
})) return;
2021-07-28 08:46:10 +00:00
//if(card.name=='nanman'||card.name=='wanjian'||card.name=='chuqibuyi') return 'zerotarget';
if(card.name=='nanman'||card.name=='wanjian') return 'zerotarget';
2017-04-15 00:25:50 +00:00
if(card.name=='sha'){
2018-04-17 07:32:43 +00:00
var equip1=player.getEquip(1);
2019-10-24 04:55:01 +00:00
if(equip1&&equip1.name=='zhuque') return 1.9;
2017-04-15 00:25:50 +00:00
if(!card.nature) return 'zerotarget';
}
}
2015-04-29 03:25:17 +00:00
}
}
},
2017-04-15 00:25:50 +00:00
tengjia2:{
2019-11-14 05:47:38 +00:00
equipSkill:true,
trigger:{player:'damageBegin3'},
2019-08-30 14:57:11 +00:00
filter:function(event,player){
if(event.nature!='fire') return false;
2019-11-14 05:47:38 +00:00
if(player.hasSkillTag('unequip2')) return false;
2019-08-30 14:57:11 +00:00
if(event.source&&event.source.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
card:event.card
})) return false;
return true;
2017-04-15 00:25:50 +00:00
},
audio:true,
forced:true,
content:function(){
trigger.num++;
},
ai:{
2020-12-02 11:48:23 +00:00
fireAttack:true,
2017-04-15 00:25:50 +00:00
effect:{
target:function(card,player,target,current){
if(card.name=='sha'){
2019-10-24 04:55:01 +00:00
if(card.nature=='fire') return 2;
if(player.hasSkill('zhuque_skill')) return 1.9;
2017-04-15 00:25:50 +00:00
}
if(get.tag(card,'fireDamage')&&current<0) return 2;
2015-04-29 03:25:17 +00:00
}
}
}
},
2019-06-17 07:19:46 +00:00
tengjia3:{
2019-11-14 05:47:38 +00:00
equipSkill:true,
2019-08-24 15:41:12 +00:00
audio:'tengjia1',
2019-12-28 14:03:35 +00:00
trigger:{target:'shaBefore'},
2019-08-24 15:41:12 +00:00
forced:true,
filter:function(event,player){
2019-11-14 05:47:38 +00:00
if(player.hasSkillTag('unequip2')) return false;
2019-08-24 15:41:12 +00:00
if(event.player.hasSkillTag('unequip',false,{
2019-06-17 07:19:46 +00:00
name:event.card?event.card.name:null,
target:player,
card:event.card
})) return false;
if(event.card.name=='sha'&&!event.card.nature) return true;
return false;
2019-08-24 15:41:12 +00:00
},
content:function(){
trigger.cancel();
},
2019-06-17 07:19:46 +00:00
},
2017-04-15 00:25:50 +00:00
baiyin_skill:{
2019-11-14 05:47:38 +00:00
equipSkill:true,
trigger:{player:'damageBegin4'},
2017-04-15 00:25:50 +00:00
forced:true,
audio:true,
filter:function(event,player){
if(event.num<=1) return false;
2019-11-14 05:47:38 +00:00
if(player.hasSkillTag('unequip2')) return false;
2018-08-20 05:51:05 +00:00
if(event.source&&event.source.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
card:event.card
})) return false;
2017-04-15 00:25:50 +00:00
return true;
},
2019-11-22 05:15:05 +00:00
//priority:-10,
2017-04-15 00:25:50 +00:00
content:function(){
trigger.num=1;
2020-02-14 05:33:43 +00:00
},
ai:{
filterDamage:true,
skillTagFilter:function(player,tag,arg){
if(player.hasSkillTag('unequip2')) return false;
if(arg&&arg.player){
if(arg.player.hasSkillTag('unequip',false,{
name:arg.card?arg.card.name:null,
2021-01-23 11:25:04 +00:00
target:player,
2020-02-14 05:33:43 +00:00
card:arg.card,
})) return false;
if(arg.player.hasSkillTag('unequip_ai',false,{
name:arg.card?arg.card.name:null,
2021-01-23 11:25:04 +00:00
target:player,
2020-02-14 05:33:43 +00:00
card:arg.card,
})) return false;
if(arg.player.hasSkillTag('jueqing',false,player)) return false;
}
},
},
2015-04-29 03:25:17 +00:00
},
2017-04-15 00:25:50 +00:00
zhuque_skill:{
2019-11-14 05:47:38 +00:00
equipSkill:true,
2019-10-24 04:55:01 +00:00
trigger:{player:'useCard1'},
2019-11-22 05:15:05 +00:00
//priority:7,
2017-04-15 00:25:50 +00:00
filter:function(event,player){
if(event.card.name=='sha'&&!event.card.nature) return true;
},
audio:true,
check:function(event,player){
2019-10-24 04:55:01 +00:00
var eff=0;
for(var i=0;i<event.targets.length;i++){
var target=event.targets[i];
2019-12-05 15:05:56 +00:00
var eff1=get.damageEffect(target,player,player);
var eff2=get.damageEffect(target,player,player,'fire');
2019-10-24 04:55:01 +00:00
eff+=eff2;
eff-=eff1;
}
2019-12-05 15:05:56 +00:00
return eff>=0;
2017-04-15 00:25:50 +00:00
},
2022-05-30 10:35:29 +00:00
prompt2:function(event,player){
return '将'+get.translation(event.card)+'改为火属性';
},
2017-04-15 00:25:50 +00:00
content:function(){
trigger.card.nature='fire';
2020-02-23 05:45:11 +00:00
if(get.itemtype(trigger.card)=='card'){
var next=game.createEvent('zhuque_clear');
next.card=trigger.card;
event.next.remove(next);
trigger.after.push(next);
next.setContent(function(){
delete card.nature;
});
}
2015-04-29 03:25:17 +00:00
}
},
2017-04-15 00:25:50 +00:00
zhuque_skill2:{
trigger:{player:'useCardAfter'},
forced:true,
popup:false,
content:function(){
delete player.storage.zhuque_skill.nature;
2015-04-29 03:25:17 +00:00
}
},
2017-04-15 00:25:50 +00:00
huogon2:{},
2015-04-29 03:25:17 +00:00
},
2017-04-15 00:25:50 +00:00
translate:{
jiu:'酒',
2023-01-24 13:26:41 +00:00
jiu_info:'①每回合限一次。出牌阶段,对你自己使用。目标角色使用的下一张【杀】的伤害值基数+1。②当你处于濒死状态时对你自己使用。目标角色回复1点体力。',
2017-04-15 00:25:50 +00:00
huogong:'火攻',
2019-07-20 14:58:35 +00:00
tiesuo:'铁索连环',
2023-01-24 13:26:41 +00:00
tiesuo_info:'此牌可被重铸。出牌阶段,对至多两名角色使用。目标角色横置。',
2017-04-15 00:25:50 +00:00
huogong_bg:'攻',
2023-01-24 13:26:41 +00:00
huogong_info:'出牌阶段对一名有手牌的角色使用。目标角色展示一张手牌A然后你可以弃置一张与A花色相同的手牌对目标造成1点火属性伤害。',
2019-07-20 14:58:35 +00:00
tiesuo_bg:'索',
2017-04-15 00:25:50 +00:00
bingliang:'兵粮寸断',
hualiu:'骅骝',
zhuque:'朱雀羽扇',
bingliang_bg:'粮',
2023-01-24 13:26:41 +00:00
bingliang_info:'出牌阶段对一名距离为1的其他角色使用。目标角色于其判定阶段进行判定若判定结果不为梅花则其跳过下一个摸牌阶段。',
2017-04-15 00:25:50 +00:00
hualiu_bg:'+马',
hualiu_info:'你的防御距离+1',
zhuque_bg:'扇',
zhuque_skill:'朱雀羽扇',
2023-03-04 15:17:30 +00:00
zhuque_info:'当你声明使用普【杀】后,你可以为此【杀】赋予火属性。',
2017-04-15 00:25:50 +00:00
guding:'古锭刀',
2023-01-24 13:26:41 +00:00
guding_info:'锁定技,当你因执行【杀】的效果而对目标角色造成伤害时,若其没有手牌,则此伤害+1。',
2017-04-15 00:25:50 +00:00
guding_skill:'古锭刀',
tengjia:'藤甲',
2021-07-28 08:46:10 +00:00
//tengjia_info:'锁定技,【南蛮入侵】、【万箭齐发】、【出其不意】和普通【杀】对你无效。当你受到火焰伤害时,该伤害+1。',
2023-01-24 13:26:41 +00:00
tengjia_info:'锁定技。①【南蛮入侵】、【万箭齐发】和普【杀】对你无效。②当你受到火属性伤害时,此伤害+1。',
2017-04-15 00:25:50 +00:00
tengjia1:'藤甲',
tengjia2:'藤甲',
2019-06-17 07:19:46 +00:00
tengjia3:'藤甲',
2017-04-15 00:25:50 +00:00
baiyin:'白银狮子',
2023-01-24 13:26:41 +00:00
baiyin_info:'锁定技。①当你受到伤害时若此伤害大于1则你将伤害值扣减至1点。②当你失去装备区内的【白银狮子】后你回复1点体力。',
2017-04-15 00:25:50 +00:00
baiyin_skill:'白银狮子',
2019-09-20 15:10:34 +00:00
muniu:'木牛流马',
muniu_bg:'牛',
muniu_skill:'木牛',
2021-07-15 04:47:00 +00:00
muniu_skill7:'木牛流马',
2021-05-18 07:57:26 +00:00
muniu_skill_bg:'辎',
2021-11-26 14:55:37 +00:00
muniu_info:'①出牌阶段限一次,你可以将一张手牌扣置于你装备区里的【木牛流马】下,然后你可以将【木牛流马】移动到一名其他角色的装备区里。②你可以将【木牛流马】下的牌如手牌般使用或打出。③当你失去装备区的【木牛流马】后,你刷新〖木牛流马①〗的使用次数限制。若此牌不是因置入其他角色的装备区而失去的,则你将【木牛流马】下的所有牌置入弃牌堆。',
muniu_skill_info:'将一张手牌扣置于你装备区里的【木牛流马】下,然后可以将此装备移动到一名其他角色的装备区里。',
2015-04-29 03:25:17 +00:00
},
2017-04-15 00:25:50 +00:00
list:[
["heart",4,"sha","fire"],
["heart",7,"sha","fire"],
["heart",10,"sha","fire"],
["diamond",4,"sha","fire"],
["diamond",5,"sha","fire"],
["spade",4,"sha","thunder"],
["spade",5,"sha","thunder"],
["spade",6,"sha","thunder"],
["spade",7,"sha","thunder"],
["spade",8,"sha","thunder"],
["club",5,"sha","thunder"],
["club",6,"sha","thunder"],
["club",7,"sha","thunder"],
["club",8,"sha","thunder"],
["heart",8,"shan"],
["heart",9,"shan"],
["heart",11,"shan"],
["heart",12,"shan"],
["diamond",6,"shan"],
["diamond",7,"shan"],
["diamond",8,"shan"],
["diamond",10,"shan"],
["diamond",11,"shan"],
["heart",5,"tao"],
["heart",6,"tao"],
["diamond",2,"tao"],
["diamond",3,"tao"],
["diamond",9,"jiu"],
["spade",3,"jiu"],
["spade",9,"jiu"],
["club",3,"jiu"],
["club",9,"jiu"],
2015-04-29 03:25:17 +00:00
2017-04-15 00:25:50 +00:00
["diamond",13,"hualiu"],
["club",1,"baiyin"],
2019-11-03 01:16:02 +00:00
["spade",2,"tengjia"],
2020-06-13 04:51:36 +00:00
["club",2,"tengjia"],
2017-04-15 00:25:50 +00:00
["spade",1,"guding"],
2019-11-03 01:16:02 +00:00
["diamond",1,"zhuque"],
2015-04-29 03:25:17 +00:00
2019-11-03 01:16:02 +00:00
["heart",2,"huogong"],
["heart",3,"huogong"],
["diamond",12,"huogong"],
2017-04-15 00:25:50 +00:00
["spade",11,"tiesuo"],
["spade",12,"tiesuo"],
["club",10,"tiesuo"],
["club",11,"tiesuo"],
["club",12,"tiesuo"],
["club",13,"tiesuo"],
2022-08-09 15:21:53 +00:00
["heart",1,"wuxie"],
2017-04-15 00:25:50 +00:00
["heart",13,"wuxie"],
["spade",13,"wuxie"],
["spade",10,"bingliang"],
["club",4,"bingliang"],
2019-09-20 15:10:34 +00:00
['diamond',5,'muniu'],
2017-04-15 00:25:50 +00:00
],
}
2017-04-14 23:35:56 +00:00
});