Merge pull request #172 from copcap/dev-1

同步蔡瑁张允、杨婉、董贵人、马日磾的加强
This commit is contained in:
Spmario233 2023-07-25 23:59:28 +08:00 committed by GitHub
commit 38c833bb47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 109 additions and 17 deletions

View File

@ -7742,6 +7742,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
return player.getStorage('dclianzhi').contains(event.player);
},
direct:true,
content:function(){
'step 0'
var num=Math.max(1,player.countMark('dclingfang'));
@ -7751,6 +7752,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('dclianzhi_reproach',target);
player.addSkillLog('dcshouze');
target.addSkillLog('dcshouze');
target.addMark('dclingfang',Math.max(1,player.countMark('dclingfang')));
@ -7762,10 +7764,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dclingfang:{
audio:2,
trigger:{
player:'phaseZhunbeiBegin',
global:'useCardAfter',
},
forced:true,
filter:function(event,player){
if(event.name!='useCard') return true;
if(get.color(event.card)!='black') return false;
if(event.player==player) return !event.targets||!event.targets.contains(player);
return event.targets&&event.targets.contains(player);
@ -7792,6 +7796,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
hiddenCard:function(player,name){
var list=player.getStorage('dcfengying');
if(player.getStorage('dcfengying_used').contains(name)) return false;
return list.contains(name)&&player.hasCard((card)=>(get.number(card)<=player.countMark('dclingfang')),'hs');
},
chooseButton:{
@ -7804,7 +7809,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return ui.create.dialog('风影',[list,'vcard']);
},
filter:function(button,player){
return _status.event.getParent().filterCard({name:button.link[2],storage:{dcfengying:true}},player,_status.event.getParent());
var card={name:button.link[2],storage:{dcfengying:true}};
if(player.getStorage('dcfengying_used').contains(card.name)) return false;
return _status.event.getParent().filterCard(card,player,_status.event.getParent());
},
check:function(button){
var player=_status.event.player;
@ -7833,6 +7840,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
precontent:function(){
player.logSkill('dcfengying');
player.addTempSkill('dcfengying_used');
player.markAuto('dcfengying_used',[event.result.card.name]);
event.getParent().addCount=false;
delete event.result.skill;
}
@ -7881,7 +7889,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
}
},
used:{charlotte:true}
used:{
charlotte:true,
onremove:true,
intro:{
content:'已使用过$',
},
},
}
},
dcshouze:{
@ -14265,14 +14279,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
content:function(){
var delta=player.countCards('h')-player.hp;
if(delta>0) player.chooseToDiscard('h',3,true);
if(delta>0) player.chooseToDiscard('h',4,true);
else if(delta==0){
player.chooseToDiscard('h',true);
player.recover();
}
else{
player.damage('fire','nosource');
player.draw(4);
player.draw(5);
}
},
ai:{halfneg:true},
@ -16416,7 +16430,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event.target!=player&&(event.card.name=='sha'||get.type(event.card,false)=='trick')&&event.target.countCards('he')>0;
},
content:function(){
'step 0'
trigger.target.chooseToDiscard('he',true);
'step 1'
if(result.bool&&result.cards.length&&get.color(result.cards[0],trigger.target)==get.color(trigger.card)){
game.log(trigger.target,'不能响应',trigger.card);
trigger.directHit.push(trigger.target);
}
},
},
},
@ -16435,6 +16455,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
player.gainMaxHp();
player.recover();
},
},
//冯妤
@ -21082,17 +21103,67 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//杨婉
youyan:{
audio:2,
// trigger:{
// player:'loseAfter',
// global:'loseAsyncAfter',
// },
trigger:{
player:'loseAfter',
global:'loseAsyncAfter',
player:['loseAfter','equipAfter'],
global:['loseAsyncAfter','cardsDiscardAfter'],
},
//usable:1,
prompt2:function(event,player){
var cards2=[];
if(event.name=='cardsDiscard'){
var evtx=event.getParent();
if(evtx.name!='orderingDiscard') return false;
var evtx2=(evtx.relatedEvent||evtx.getParent());
if(evtx2.name=='useCard'||evtx2.name=='respond') return false;
player.getHistory('lose',evtx3=>{
var evtx4=evtx3.relatedEvent||evtx3.getParent();
if(evtx2!=evtx4) return false;
if(!evtx3.cards2||!evtx3.cards2.length) return false;
cards2.addArray(evtx3.cards2.filterInD('d'));
});
}
else if(event.name=='loseAsync'){
player.hasHistory('lose',evt=>{
if(evt.getParent()!=event||evt.position!=ui.discardPile) return false;
cards2.addArray(evt.cards2.filterInD('d'));
});
}
else{
cards2.addArray(event.getd(player).filterInD('d'));
}
return '获得与'+get.translation(cards2)+'花色'+(cards2.length>1?'各':'')+'不相同的牌各一张';
},
filter:function(event,player){
if(event.type!='discard'||event.getlx===false||player!=_status.currentPhase) return false;
var evt=event.getl(player);
if(!evt||!evt.cards2||!evt.cards2.length) return false;
if(player!=_status.currentPhase) return false;
var cards2=[];
if(event.name=='cardsDiscard'){
var evtx=event.getParent();
if(evtx.name!='orderingDiscard') return false;
var evtx2=(evtx.relatedEvent||evtx.getParent());
if(evtx2.name=='useCard'||evtx2.name=='respond') return false;
player.getHistory('lose',evtx3=>{
var evtx4=evtx3.relatedEvent||evtx3.getParent();
if(evtx2!=evtx4) return false;
if(!evtx3.cards2||!evtx3.cards2.length) return false;
cards2.addArray(evtx3.cards2.filterInD('d'));
});
}
else if(event.name=='loseAsync'){
player.hasHistory('lose',evt=>{
if(evt.getParent()!=event||evt.position!=ui.discardPile) return false;
cards2.addArray(evt.cards2.filterInD('d'));
});
}
else{
cards2.addArray(event.getd(player).filterInD('d'));
}
if(!cards2.length) return false;
var list=[];
for(var i of evt.cards2){
for(var i of cards2){
list.add(get.suit(i,player));
if(list.length>=lib.suit.length) return false;
}
@ -21110,7 +21181,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(evt) evt.youyaned=true;
}
var list=[],cards=[];
var cards2=trigger.getl(player).cards2;
var cards2=[];
if(trigger.name=='cardsDiscard'){
var evtx=trigger.getParent();
if(evtx.name!='orderingDiscard') return false;
var evtx2=(evtx.relatedEvent||evtx.getParent());
if(evtx2.name=='useCard'||evtx2.name=='respond') return false;
player.getHistory('lose',evtx3=>{
var evtx4=evtx3.relatedEvent||evtx3.getParent();
if(evtx2!=evtx4) return false;
if(!evtx3.cards2||!evtx3.cards2.length) return false;
cards2.addArray(evtx3.cards2.filterInD('d'));
});
}
else if(trigger.name=='loseAsync'){
player.hasHistory('lose',evt=>{
if(evt.getParent()!=trigger||evt.position!=ui.discardPile) return false;
cards2.addArray(evt.cards2.filterInD('d'));
});
}
else{
cards2.addArray(trigger.getd(player).filterInD('d'));
}
for(var i of cards2){
list.add(get.suit(i,player));
}
@ -30424,7 +30516,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kangge_info:'当你受到除自己和“抗歌”角色以外的角色造成的伤害时你可以防止此伤害并选择一种花色然后你失去X点体力令“抗歌”角色从弃牌堆中随机获得X张此花色的牌X为伤害值。',
yangwan:'杨婉',
youyan:'诱言',
youyan_info:'出牌阶段/弃牌阶段各限一次,当你的牌因弃置进入弃牌堆后,你可以从牌堆中获得本次弃牌中没有的花色的牌各一张。',
youyan_info:'出牌阶段/弃牌阶段各限一次。当有牌进入弃牌堆后,若其中有你不因使用或打出而失去的牌,你可以从牌堆中获得你本次失去的牌中没有的花色的牌各一张。',
zhuihuan:'追还',
zhuihuan2:'追还',
zhuihuan2_new:'追还',
@ -30655,9 +30747,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
baoshu_info:'①准备阶段你可选择Y名角色这些角色重置武将牌并获得(X-Y+1)个“梳”X为你的体力上限Y∈[1, X])。②一名角色的摸牌阶段开始时,若其有“梳”,则其本阶段的额定摸牌数+Z且移去Z个“梳”Z为其“梳”的数量。',
mamidi:'马日磾',
bingjie:'秉节',
bingjie_info:'出牌阶段开始时你可减1点体力上限然后当你于本阶段内使用【杀】或普通锦囊牌指定其他角色为目标后其弃置一张牌。',
bingjie_info:'出牌阶段开始时你可减1点体力上限然后当你于本阶段内使用【杀】或普通锦囊牌指定其他角色为目标后其弃置一张牌。若其弃置的牌与你使用的牌颜色相同,其无法响应此牌。',
zhengding:'正订',
zhengding_info:'锁定技。当你于回合外使用或打出牌响应其他角色使用的牌时若这两张牌颜色相同则你加1点体力上限。',
zhengding_info:'锁定技。当你于回合外使用或打出牌响应其他角色使用的牌时若这两张牌颜色相同则你加1点体力上限并回复1点体力。',
licaiwei:'李采薇',
yijiao:'异教',
yijiao_info:'出牌阶段限一次你可以选择一名没有“异”标记的其他角色并声明一个整数XX∈[1,4]该角色获得10X个“异”标记。有“异”标记的角色的结束阶段其移去“异”标记且若其本回合使用牌的点数之和1.小于“异”标记数其随机弃置至多三张手牌2.等于“异”标记数你摸两张牌且该角色本回合结束后进行一个额外的回合3.大于“异”标记数,你摸三张牌。',
@ -30731,7 +30823,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lianzhou:'连舟',
lianzhou_info:'锁定技。准备阶段,你横置你的武将牌。然后你可横置任意名体力值等于你的角色。',
jinglan:'惊澜',
jinglan_info:'锁定技。当你造成伤害后,若你的手牌数:大于体力值,你弃置张手牌等于体力值你弃置一张手牌并回复1点体力小于体力值你受到1点无来源火焰伤害并摸张牌。',
jinglan_info:'锁定技。当你造成伤害后,若你的手牌数:大于体力值,你弃置张手牌等于体力值你弃置一张手牌并回复1点体力小于体力值你受到1点无来源火焰伤害并摸张牌。',
dc_huangzu:'黄祖',
dcjinggong:'精弓',
dcjinggong_info:'你可以将一张装备牌当做无距离限制的【杀】使用。当你声明使用此【杀】后你将此杀的伤害值基数改为XX为你至此【杀】第一个目标角色的距离且至多为5。',
@ -30988,9 +31080,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dclianzhi:'连枝',
dclianzhi_info:'①游戏开始时你选择一名其他角色仅你可见。②每回合限一次。当你进入濒死状态时若〖连枝①〗角色存活你回复1点体力并与其各摸一张牌。③当〖连枝①〗角色死亡后你可以与一名其他角色各获得〖受责〗且其获得与你拥有的等量枚“绞”标记至少获得1枚。',
dclingfang:'凌芳',
dclingfang_info:'锁定技。当其他角色使用黑色牌结算结束后若你是此牌的目标或你使用黑色牌结算结束后若你不是此牌目标你获得1枚“绞”。',
dclingfang_info:'锁定技。准备阶段,或当其他角色使用黑色牌结算结束后若你是此牌的目标或你使用黑色牌结算结束后若你不是此牌目标你获得1枚“绞”。',
dcfengying:'风影',
dcfengying_info:'①一名角色的回合开始时,你记录弃牌堆中所有黑色基本牌或黑色普通锦囊牌的牌名。②每回合限一次。你可以将一张点数不大于“绞”数的手牌当做任意一张〖风影①〗记录中的牌使用。',
dcfengying_info:'①一名角色的回合开始时,你记录弃牌堆中所有黑色基本牌或黑色普通锦囊牌的牌名。②每回合每种牌名各限一次。你可以将一张点数不大于“绞”数的手牌当做任意一张〖风影①〗记录中的牌使用。',
dcshouze:'受责',
dcshouze_info:'锁定技。结束阶段若你有“绞”你弃1枚“绞”随机获得弃牌堆中的一张黑色牌失去1点体力。',
sunlang:'孙狼',