Merge pull request #226 from copcap/dev

江山如故·承包+江山如故单独分包;新杀周不疑、斗地主曹孙刘;同步加强孙狼、庞会、韩遂、唐咨;界曹叡(unseen);新增语音
This commit is contained in:
Spmario233 2023-08-22 21:55:22 +08:00 committed by GitHub
commit a0509189c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
82 changed files with 5275 additions and 2719 deletions

BIN
audio/die/clan_wangyun.mp3 Normal file

Binary file not shown.

BIN
audio/die/dc_duyu.mp3 Normal file

Binary file not shown.

BIN
audio/die/dc_huanghao.mp3 Normal file

Binary file not shown.

BIN
audio/die/dc_wangjun.mp3 Normal file

Binary file not shown.

BIN
audio/die/haopu.mp3 Normal file

Binary file not shown.

BIN
audio/die/sunlingluan.mp3 Normal file

Binary file not shown.

BIN
audio/die/yuechen.mp3 Normal file

Binary file not shown.

BIN
audio/die/zhoubuyi.mp3 Normal file

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.

BIN
audio/skill/dcchangqu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcchangqu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dccunwei1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dccunwei2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/dcgonghu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcgonghu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcjianguo1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcjianguo2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dclingyue1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dclingyue2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcpandi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcpandi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcporui1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcporui2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcqinqing1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcqinqing2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcshiji1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcshiji2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcsilun1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcsilun2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dctongye1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dctongye2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/olzhenying1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/olzhenying2.mp3 Normal file

Binary file not shown.

View File

@ -60,7 +60,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
else player.choosePlayerCard(target,'h',true);
'step 1'
if(result.bool){
event.show_card=result.cards[0],str=get.translation(player);
event.show_card=result.cards[0];
var str=get.translation(player);
player.showCards(event.show_card);
target.chooseControl().set('choiceList',[
'令'+str+'获得'+get.translation(event.show_card),
@ -699,11 +700,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
duanjian_append:'<span class="text" style="font-family: yuanli">不要因为手快而装给自己。</span>',
serafuku:'水手服',
serafuku_info:'锁定技。当你成为【杀】的目标后,若你的性别包含男性,则你进行判定:若结果为黑色,则此牌对你的伤害值基数+1。',
serafuku_append:'<span class="text" style="font-family: yuanli">セーラー服だからです、<br>结论 </span>',
serafuku_append:'<span class="text" style="font-family: yuanli">セーラー服だからです、<br>結論 </span>',
yinfengyi:'引蜂衣',
yinfengyi_info:'锁定技。当你受到渠道为锦囊牌的伤害时,此伤害+1。当你因〖毒①〗而失去体力时失去体力的量值+1。',
yonglv:'庸驴',
yonglv_info:'锁定技。其他角色至你的距离视为1。',
yonglv_info:'锁定技。①你至其他角色的距离-1。②其他角色至你的距离视为1。',
yonglv_append:'<span class="text" style="font-family: yuanli">它旁边的就是王仲宣。</span>',
zhanxiang:'战象',
zhanxiang_info:'锁定技。①其他角色至你的距离+1。②当你成为〖赠予〗的目标后你将此次赠予的效果改为“将赠予牌移动至弃牌堆”。',

View File

@ -779,7 +779,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
var num=player.countCards('h');
var str='是否交给其'+get.cnNumber(num)+'张牌,然后视为你对其使用一张【酒】?或者点击“取消”,令其交给你一张牌,然后其视为对你使用一张雷【杀】。';
target.chooseCard(get.translation(player)+'对你发动了【驳龙】',str,num,'he').set('ai',card=>{
if(!num||target.countCards('he')<num) event._result={bool:false};
else target.chooseCard(get.translation(player)+'对你发动了【驳龙】',str,num,'he').set('ai',card=>{
if(_status.event.canGive) return 5+Math.max(0,3-_status.event.player.hp)/1.5-get.value(card);
return 0;
}).set('canGive',function(){
@ -840,7 +841,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
cards.addArray(evt.getl(current).hs);
});
})
return event.cards.some(card=>!cards.contains(card));
if(event.cards.some(card=>!cards.contains(card))) return false;
return true;
},
content:function(){
'step 0'
@ -1445,9 +1447,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var target=result.targets[0],num=lib.skill.clansankuang.getNum(target),num2=target.countCards('he');
event.target=target;
player.logSkill('clansankuang',target);
if(num==0||num2==0) event._result={bool:false};
if(num2==0) event._result={bool:false};
else if(num2<=num) event._result={bool:true,cards:target.getCards('he')};
else target.chooseCard('he',true,[num,Infinity]).set('ai',get.unuseful).set('prompt','交给'+get.translation(player)+'至少'+get.cnNumber(num)+'张牌');
else{
var cards=trigger.cards.filterInD('oe');
target.chooseCard('he',num>0,[num,Infinity]).set('ai',get.unuseful).set('prompt',num>0?
'是否交给'+get.translation(player)+'任意张牌'+(cards.length?'并获得'+get.translation(cards):'')+'':
'交给'+get.translation(player)+'至少'+get.cnNumber(num)+'张牌');
}
}else event.finish();
'step 2'
if(result.bool){
@ -1455,6 +1462,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.give(cards,player);
game.delayx();
}
else event.finish();
'step 3'
if(trigger.cards.filterInD().length) target.gain(trigger.cards.filterInD(),'gain2','bySelf');
else if(trigger.cards.filterInD('e').length) target.gain(trigger.cards.filterInD('e'),get.owner(trigger.cards.filterInD('e')[0]),'give');
@ -2323,14 +2331,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
clanbolong:'驳龙',
clanbolong_info:'出牌阶段限一次。你可以令一名其他角色选择一项1.你交给其一张牌然后视为对其使用一张雷【杀】2.交给你等同于你手牌数的牌,然后视为对你使用一张【酒】。',
clanzhongliu:'中流',
clanzhongliu_info:'宗族技,锁定技。当你使用牌时,若此牌对应的实体牌不全为同族角色的手牌,你重置武将牌上的技能。',
clanzhongliu_info:'宗族技,锁定技。当你使用牌时,若此牌对应的实体牌均不为太原王氏角色的手牌,你重置武将牌上的技能。',
clan_zhongyan:'族钟琰',
clanguangu:'观骨',
clanguangu_info:'转换技,出牌阶段限一次。阴:你可以观看牌堆顶的至多四张牌;阳:你可以观看一名角色的至多四张手牌。然后你可以使用其中的一张牌。',
clanxiaoyong:'啸咏',
clanxiaoyong_info:'锁定技。当你于回合内首次使用字数为X的牌时你重置〖观骨〗X为你上次发动〖观骨〗观看的牌数。',
clanbaozu:'保族',
clanbaozu_info:'宗族技,限定技。当一名同族角色进入濒死状态时你可以令其横置并回复1点体力。',
clanbaozu_info:'宗族技,限定技。当一名颍川钟氏角色进入濒死状态时你可以令其横置并回复1点体力。',
clan_wangyun:'族王允',
clanjiexuan:'解悬',
clanjiexuan_info:'限定技,转换技。阴:你可以将一张红色牌当【顺手牵羊】使用;阳:你可以将一张黑色牌当【过河拆桥】使用。',

View File

@ -4,6 +4,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'collab',
connect:true,
character:{
dc_caocao:['male','wei',4,['dcjianxiong']],
dc_liubei:['male','shu',4,['dcrende']],
dc_sunquan:['male','wu',4,['dczhiheng']],
zhutiexiong:['male','qun',3,['dcbianzhuang']],
wu_zhutiexiong:['male','qun',3,['dcbianzhuang'],['unseen']],
xiaoyuehankehan:['male','qun',3,['dctongliao','dcwudao']],
@ -30,9 +33,227 @@ game.import('character',function(lib,game,ui,get,ai,_status){
collab_tongque:["sp_fuwan","sp_fuhuanghou","sp_jiben","old_lingju",'sp_mushun'],
collab_duanwu:['sunwukong','longwang','taoshen'],
collab_decade:['libai','xiaoyuehankehan','zhutiexiong','wu_zhutiexiong'],
collab_remake:['dc_caocao','dc_liubei','dc_sunquan'],
},
},
skill:{
//隅泣曹操
dcjianxiong:{
audio:'rejianxiong',
trigger:{
player:'damageEnd',
},
content:function (){
'step 0'
if(get.itemtype(trigger.cards)=='cards'&&get.position(trigger.cards[0],true)=='o'){
player.gain(trigger.cards,'gain2');
}
player.draw(player.countMark('dcjianxiong')+1,'nodelay');
'step 1'
if(player.countMark('dcjianxiong')<4) player.addMark('dcjianxiong',1,false);
},
marktext:'雄',
intro:{
markcount:function(storage,player){
return player.countMark('dcjianxiong')+1;
},
content:function(storage,player){
return '摸牌数为'+(player.countMark('dcjianxiong')+1);
},
},
ai:{
maixie:true,
maixie_hp:true,
effect:{
target:function (card,player,target){
if(player.hasSkillTag('jueqing',false,target)) return [1,-1];
if(get.tag(card,'damage')&&player!=target){
var cards=card.cards,evt=_status.event;
if(evt.player==target&&card.name=='damage'&&evt.getParent().type=='card') cards=evt.getParent().cards.filterInD();
if(target.hp<=1) return;
if(get.itemtype(cards)!='cards') return;
for(var i of cards){
if(get.name(i,target)=='tao') return [1,5+player.countMark('dcjianxiong')/2];
}
if(get.value(cards,target)>=(7-player.countMark('dcjianxiong')/2+target.getDamagedHp())) return [1,3+player.countMark('dcjianxiong')/2];
return [1,0.6+player.countMark('dcjianxiong')/2];
}
},
},
},
},
//缺德刘备
dcrende:{
audio:'rerende',
enable:'phaseUse',
filter:function(event,player){
return game.hasPlayer(current=>{
return lib.skill.dcrende.filterTarget(null,player,current);
});
},
discard:false,
lose:false,
delay:false,
filterTarget:function(card,player,target){
if(player.getStorage('dcrende_targeted').contains(target)) return false;
return player!=target&&target.countGainableCards(player,'h')>1;
},
content:function(){
'step 0'
player.addTempSkill('dcrende_targeted','phaseUseAfter');
player.markAuto('dcrende_targeted',[target]);
player.gainPlayerCard(target,'h',true,2);
'step 1'
var list=[];
for(var name of lib.inpile){
if(get.type(name)!='basic') continue;
var card={name:name,isCard:true};
if(lib.filter.cardUsable(card,player,event.getParent('chooseToUse'))&&game.hasPlayer(current=>{
return player.canUse(card,current);
})){
list.push(['基本','',name]);
}
if(name=='sha'){
for(var nature of lib.inpile_nature){
card.nature=nature;
if(lib.filter.cardUsable(card,player,event.getParent('chooseToUse'))&&game.hasPlayer(current=>{
return player.canUse(card,current);
})){
list.push(['基本','',name,nature]);
}
}
}
}
if(list.length){
player.chooseButton(['是否视为使用一张基本牌?',[list,'vcard']]).set('ai',function(button){
var player=_status.event.player;
var card={name:button.link[2],nature:button.link[3],isCard:true};
if(card.name=='tao'){
if(player.hp==1||(player.hp==2&&!player.hasShan())||player.needsToDiscard()){
return 5;
}
return 1;
}
if(card.name=='sha'){
if(game.hasPlayer(function(current){
return player.canUse(card,current)&&get.effect(current,card,player,player)>0
})){
if(card.nature=='fire') return 2.95;
if(card.nature=='thunder'||card.nature=='ice') return 2.92;
return 2.9;
}
return 0;
}
if(card.name=='jiu'){
return 0.5;
}
return 0;
});
}
else{
event.finish();
}
'step 2'
if(result&&result.bool&&result.links[0]){
var card={name:result.links[0][2],nature:result.links[0][3],isCard:true};
player.chooseUseTarget(card,true);
}
},
subSkill:{
targeted:{
onremove:true,
charlotte:true,
},
},
ai:{
fireAttack:true,
order:function(skill,player){
return 10;
},
result:{
target:function(player,target){
if(target.hasSkillTag('noh')) return -0.1;
return -2;
}
},
threaten:3,
},
},
//会玩孙权
dczhiheng:{
audio:'rezhiheng',
enable:'phaseUse',
position:'he',
filterCard:lib.filter.cardDiscardable,
discard:false,
lose:false,
delay:false,
selectCard:[1,Infinity],
filter:function(event,player){
var skill=player.getStat().skill;
return !skill.dczhiheng||skill.dczhiheng<1+player.getStorage('dczhiheng_hit').length;
},
check:function(card){
var player=_status.event.player;
if(get.position(card)=='h'&&!player.countCards('h','du')&&(player.hp>2||!player.countCards('h',function(card){
return get.value(card)>=8;
}))){
return 1;
}
return 6-get.value(card)
},
group:'dczhiheng_add',
content:function(){
'step 0'
player.discard(cards);
event.num=1;
var hs=player.getCards('h');
if(!hs.length) event.num=0;
for(var i=0;i<hs.length;i++){
if(!cards.contains(hs[i])){
event.num=0;break;
}
}
'step 1'
player.draw(event.num+cards.length);
},
subSkill:{
add:{
audio:2,
trigger:{
source:'damageSource',
},
forced:true,
locked:false,
filter:function(event,player){
return !player.getStorage('dczhiheng_hit').contains(event.player);
},
content:function(){
player.addTempSkill('dczhiheng_hit');
player.markAuto('dczhiheng_hit',[trigger.player]);
}
},
hit:{
charlotte:true,
onremove:true,
mark:true,
marktext:'衡',
intro:{
markcount:function(storage,player){
return player.getStorage('dczhiheng_hit').length;
},
content:'本回合已对$造成过伤害',
},
}
},
ai:{
order:1,
result:{
player:1
},
threaten:1.55
},
},
//朱铁雄
dcbianzhuang:{
audio:2,
@ -1303,6 +1524,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
dynamicTranslate:{
dcjianxiong:function(player){
return '当你受到伤害后,你可以摸'+get.cnNumber(player.countMark('dcjianxiong')+1)+'张牌并获得对你造成伤害的牌,然后你令此技能摸牌数+1至多为5。';
},
},
translate:{
old_lingju:'SP灵雎',
fenxin_old:'焚心',
@ -1366,11 +1592,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wu_zhutiexiong:'朱铁雄',
dcbianzhuang:'变装',
dcbianzhuang_info:'①出牌阶段限一次你可以从系统随机选择的两个技能中获得一个并视为使用一张【杀】无距离次数限制然后失去以此法获得的技能。②当你使用装备牌后你清空此技能的发动次数记录。③当你发动〖变装①〗后若你发动〖变装①〗的次数大于2则你将武将牌变更为诸葛亮并将系统选择的技能数改为三个。',
dc_caocao:'经典曹操',
dc_caocao_ab:'曹操',
dcjianxiong:'奸雄',
dcjianxiong_info:'当你受到伤害后,你可以摸一张牌并获得对你造成伤害的牌,然后你令此技能摸牌数+1至多为5。',
dc_liubei:'经典刘备',
dc_liubei_ab:'刘备',
dcrende:'仁德',
dcrende_info:'出牌阶段每名角色限一次。你可以获得一名其他角色两张手牌,然后视为使用一张基本牌。',
dc_sunquan:'经典孙权',
dc_sunquan_ab:'孙权',
dczhiheng:'制衡',
dczhiheng_info:'①出牌阶段限一次。你可以弃置任意张牌并摸等量的牌,若你在发动〖制衡〗时弃置了所有手牌,则你多摸一张牌。②每回合每名角色限一次。当你对其他角色造成伤害后,你令〖制衡①〗于此回合发动次数上限+1。',
collab_olympic:'OL·伦敦奥运会',
collab_tongque:'OL·铜雀台',
collab_duanwu:'新服·端午畅玩',
collab_decade:'新服·创玩节',
collab_remake:'新服·共创武将',
},
};
});

View File

@ -4749,7 +4749,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:'renjie2',
trigger:{player:'damageEnd'},
forced:true,
unique:true,
group:'renjie2',
notemp:true,
//mark:true,

View File

@ -629,25 +629,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
prompt:get.prompt('dcporui'),
//prompt2:'弃置一张基本牌并选择一名本回合失去过牌的非当前回合的其他角色,你视为对其依次使用'+get.cnNumber(Math.max(0,player.hp)+1)+'张【杀】',
prompt2:get.skillInfoTranslation('dcporui',player),
filterCard:function(card,player){
if(get.type(card)!='basic') return false;
return lib.filter.cardDiscardable.apply(this,arguments);
},
filterCard:lib.filter.cardDiscardable,
selectCard:1,
targets:game.filterPlayer(current=>{
position:'he',
list:game.filterPlayer(current=>{
if(current==player||current==trigger.player) return false;
return current.hasHistory('lose',function(evt){
return evt.cards.length>0;
});
}),
filterTarget:function(card,player,target){
return _status.event.targets.contains(target);
return _status.event.list.map(i=>i[0]).contains(target);
},
ai1:function(card){
return 7-get.value(card);
},
ai2:function(target){
return get.effect(target,{name:'sha'},_status.event.player,_status.event.player);
return get.effect(target,{name:'sha'},_status.event.player,_status.event.player)*_status.event.list.find(i=>{
return i[0]==target;
})[1];
}
});
'step 1'
@ -700,7 +700,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ai:{
expose:0.4,
threaten:4.8
threaten:3.8,
}
},
dcgonghu:{
@ -721,6 +721,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return num>1;
}
if(player.hasMark('dcgonghu_basic')) return false;
if(_status.currentPhase&&_status.currentPhase==player) return false;
var evt=event.getl(player);
if(!evt||!evt.cards2||!evt.cards2.some(i=>get.type2(i,player)=='basic')) return false;
var num=0;
@ -3259,7 +3260,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(bool1) val+=5;
if(bool2){
if(bool1) target.maxHp++;
val+=get.recoverEffect(target,player,player);
val+=Math.max(0,get.recoverEffect(target,player,player));
if(bool1) target.maxHp--;
}
if(bool3){
@ -3471,7 +3472,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{
source:'damageBegin1',
},
usable:2,
//usable:2,
filter:function(event,player){
return player.countDiscardableCards(player,'he')>0&&player!=event.player;
},
@ -9825,9 +9826,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
perfectPair:{},
characterReplace:{
dongbai:['re_dongbai','dongbai','jsrg_dongbai'],
chunyuqiong:['chunyuqiong','re_chunyuqiong'],
chunyuqiong:['chunyuqiong','re_chunyuqiong','jsrg_chunyuqiong'],
kanze:['re_kanze','kanze'],
chendeng:['ol_chendeng','re_chendeng','chendeng'],
chendeng:['ol_chendeng','re_chendeng','chendeng','jsrg_chendeng'],
miheng:['miheng','re_miheng'],
liuba:['ol_liuba','dc_liuba','liuba'],
lvkuanglvxiang:['lvkuanglvxiang','dc_lvkuanglvxiang'],
@ -10102,7 +10103,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dccuijin_info:'当你或你攻击范围内的角色使用【杀】时,你可以弃置一张牌,令此【杀】的伤害基数+1。然后当此杀被目标角色抵消或无效或防止伤害后你摸一张牌对使用者造成1点伤害。',
panghui:'庞会',
dcyiyong:'异勇',
dcyiyong_info:'每回合限两次。当你对其他角色造成伤害时若你有牌你可以与其同时弃置至少一张牌。若你以此法弃置的牌的点数之和不大于其你摸X张牌不小于其此伤害+1X为其以此法弃置的牌数。',
dcyiyong_info:'当你对其他角色造成伤害时若你有牌你可以与其同时弃置至少一张牌。若你以此法弃置的牌的点数之和不大于其你摸X张牌不小于其此伤害+1X为其以此法弃置的牌数。',
chenjiao:'陈矫',
dcxieshoux:'协守/清严',
dcxieshou:'协守',
@ -10124,7 +10125,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liupi:'刘辟',
dcjuying:'踞营',
dcjuying_info:'出牌阶段结束时若你于此阶段内使用【杀】的次数未达到上限你可以选择任意项1.下回合使用【杀】的次数上限+12.本回合手牌上限+23.摸三张牌。若你选择的项数超过了你的体力值你弃置X张牌X为你选择的项数减你的体力值。',
dc_huanghao:'黄皓',
dc_huanghao:'新杀黄皓',
dc_huanghao_ab:'黄皓',
dcqinqing:'寝情',
dcqinqing_info:'结束阶段,你可以弃置一名攻击范围内包含一号位的其他角色一张牌。然后若其手牌数大于一号位,你摸一张牌。',
dccunwei:'存畏',
@ -10163,7 +10165,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yuantanyuanxiyuanshang:'袁谭袁尚袁熙',
dcneifa:'内伐',
dcneifa_info:'出牌阶段开始时,你可以摸三张牌,然后弃置一张牌。若你弃置的牌类型为:基本牌,本阶段你不能使用锦囊牌,且【杀】的使用次数上限+X且可以额外指定一名目标锦囊牌本阶段你不能使用基本牌且使用普通锦囊牌选择目标时可以增加或减少一个目标X为你发动〖内伐〗弃牌后手牌中因〖内伐〗而不能使用的牌的数量且最多为5。你以此法选择的额外目标均无距离限制。',
dc_sunziliufang:'孙资刘放',
dc_sunziliufang:'新杀孙资刘放',
dcqinshen:'勤慎',
dcqinshen_info:'弃牌阶段结束时你可以摸X张牌X为本回合未进入过弃牌堆的花色数。',
dcweidang:'伪谠',
@ -10194,7 +10196,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcqinghuang_info:'出牌阶段开始时你可以减1点体力上限然后你于本回合发动〖踏寂〗时额外随机执行一种效果。',
dc_huojun:'霍峻',
dcgue:'孤扼',
dcgue_info:'每名其他角色的回合限一次。当你需要使用或打出【杀】或【闪】时若你有手牌你可以展示之。若其中【杀】和【闪】的数量之和不超过1你视为使用或打出此牌。',
dcgue_info:'每回合限一次。当你需要使用或打出【杀】或【闪】时若你有手牌你可以展示之。若其中【杀】和【闪】的数量之和不超过1你视为使用或打出此牌。',
dcsigong:'伺攻',
dcsigong_info:'其他角色的回合结束时若其于本回合内使用牌被响应过你可以将手牌摸至或弃置至1视为对其使用一张需使用X张【闪】抵消的【杀】且此【杀】的伤害基数+1X为你以此法弃置的牌数且至少为1。当你以此法造成伤害后该技能于本轮失效。',
peiyuanshao:'裴元绍',
@ -10240,7 +10242,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcporui:'破锐',
dcporui_info:'每轮限一次。其他角色的结束阶段你可以弃置一张基本牌并选择另一名于此回合内失去过牌的其他角色你视为对其依次使用X+1张【杀】然后你交给其X张手牌X为其本回合失去的牌数且至多为5。',
dcgonghu:'共护',
dcgonghu_info:'锁定技。你的回合外:①当你失去基本牌后若你本回合内失去基本牌的数量大于1你将〖破锐〗改为每轮限两次。②当你造成或受到伤害后若你本回合内造成或受到的伤害大于1你删除〖破锐〗中的“然后你交给其X张手牌”。③当你使用红色基本牌/红色普通锦囊牌时,若你已发动过〖共护①〗和〖共护②〗,则此牌不可被响应/可额外增加一个目标。',
dcgonghu_info:'锁定技。①当你于回合外失去基本牌后若你本回合内失去基本牌的数量大于1你将〖破锐〗改为每轮限两次。②当你于回合外造成或受到伤害后若你本回合内造成或受到的伤害大于1你删除〖破锐〗中的“然后你交给其X张手牌”。③当你使用红色基本牌/红色普通锦囊牌时,若你已发动过〖共护①〗和〖共护②〗,则此牌不可被响应/可额外增加一个目标。',
yue_caiwenji:'乐蔡琰',
dcshuangjia:'霜笳',
dcshuangjia_tag:'胡笳',

4276
character/jsrg.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -5867,9 +5867,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(_status.event.goon) return -1;
var num=_status.event.maxNum;
if(ui.selected.cards.length>=num-1){
var val=get.value(player.getCards('he',function(cardx){
var cards=player.getCards('he',function(cardx){
return cardx!=card&&!ui.selected.cards.contains(cardx);
}));
});
var val=0;
for(var cardx of cards) val+=get.value(cardx);
if(val>=14) return 0;
}
return get.value(card);
@ -13157,7 +13159,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
baosanniang:['xin_baosanniang','re_baosanniang','baosanniang'],
heqi:['re_heqi','heqi'],
weiwenzhugezhi:['weiwenzhugezhi','re_weiwenzhugezhi'],
xugong:['xugong','re_xugong'],
xugong:['xugong','re_xugong','jsrg_xugong'],
liuzan:['re_liuzan','liuzan'],
sufei:['yj_sufei','sp_sufei','xf_sufei'],
jiakui:['jiakui','old_jiakui'],
@ -13332,7 +13334,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rezhennan:'镇南',
rezhennan_info:'当你成为其他角色使用的牌的目标后若此牌的目标数大于该角色的体力值则你可以弃置一张牌并对其造成1点伤害。',
hujinding:'胡金定',
hujinding:'手杀胡金定',
huaizi:'怀子',
huaizi_info:'锁定技,你的手牌上限为你的体力上限。',
renshi:'仁释',
@ -13465,7 +13467,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_dongzhuo:'手杀董卓',
rejiuchi:'酒池',
rejiuchi_info:'你可以将一张黑桃手牌当做【酒】使用。锁定技,当你于回合内使用带有【酒】效果的【杀】造成伤害时,你令你的【崩坏】失效直到回合结束。',
furong:'傅肜',
furong:'手杀傅肜',
xuewei:'血卫',
xuewei_info:'准备阶段,你可以选择一名其他角色(仅自己可见)。若如此做,直到你的下回合开始前,当其第一次受到伤害时,你防止此伤害,改为由你受到等量的伤害并对伤害来源造成等量同属性的伤害。',
liechi:'烈斥',
@ -13512,7 +13514,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shanli_info:'觉醒技准备阶段若你已发动过〖败移〗且对至少两名角色发动过〖景略〗则你减1点体力上限并选择一名角色。系统随机选择三个不为〖忘隙(仲村由理)〗的主公技,然后你选择其中一个技能,令其获得之。其将交互表情中的【拖鞋】和【酒杯】替换为【枷锁】和【玉玺】。',
re_lingtong:'手杀凌统',
re_liubiao:'手杀刘表',
hucheer:'胡车儿',
hucheer:'手杀胡车儿',
daoji:'盗戟',
daoji_info:'出牌阶段限一次你可以弃置一张非基本牌并选择一名装备区里有牌的其他角色你获得其装备区中的一张牌并使用之。若你以此法获得的牌是武器牌则你使用此牌后对其造成1点伤害。',
xin_hansui:'手杀韩遂',
@ -13595,7 +13597,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinshenxing_info:'出牌阶段限X次X为你的体力值你可以弃置两张牌然后摸一张牌。若这两张牌颜色不同则改为摸两张牌。',
xinbingyi:'秉壹',
xinbingyi_info:'结束阶段你可展示所有手牌。若这些牌的颜色或类型均相同则你可以令至多X名角色各摸一张牌X为你的手牌数。',
qiaozhou:'谯周',
qiaozhou:'手杀谯周',
zhiming:'知命',
zhiming_info:'准备阶段开始时或弃牌阶段结束时,你摸一张牌,然后可以将一张牌置于牌堆顶。',
xingbu:'星卜',
@ -13744,7 +13746,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xin_zhuzhi:'手杀朱治',
sbanguo:'安国',
sbanguo_info:'①游戏开始时你令一名其他角色获得1枚“安国”标记有“安国”的角色手牌上限基数等于体力上限。②出牌阶段开始时你可以将一名有“安国”的角色的所有“安国”移动给一名本局游戏未获得过“安国”的其他角色。③当你受到伤害时若有有“安国”的角色且伤害值不小于你的体力值且此伤害没有来源或来源没有“安国”防止此伤害。④一名角色进入濒死状态时若其有你因〖安国①〗获得的“安国”你移去其该“安国”令其将体力回复至1点。然后你选择一项1.若你的体力值大于1你失去体力至1点2.若你的体力上限大于1你将体力上限减至1。最后你令其获得X点护甲X为你以此法失去的体力值或减少的体力上限。',
wangjun:'王濬',
wangjun:'手杀王濬',
zhujian:'筑舰',
zhujian_info:'出牌阶段限一次。你可以令至少两名装备区里有牌的角色各摸一张牌。',
duansuo:'断索',

File diff suppressed because it is too large Load Diff

View File

@ -953,7 +953,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_zhugezhan:"旧诸葛瞻",
zhangliang:'SP张梁',
yuji:'旧于吉',
old_zhangfei:'十周年张飞',
old_zhangfei:'新杀张飞',
old_zhangfei_ab:'张飞',
old_huatuo:'OL华佗',
jsp_caoren:'☆SP曹仁',
@ -966,9 +966,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_caochong:'旧曹冲',
old_guanqiujian:'旧毌丘俭',
old_huangfusong:'旧皇甫嵩',
ol_liuyu:'OL刘虞',
ol_liuyu:'刘虞',
old_wangyun:'旧王允',
old_zhaoyun:'十周年赵云',
old_zhaoyun:'新杀赵云',
old_zhaoyun_ab:'赵云',
ol_huaxiong:'旧华雄',

View File

@ -303,6 +303,12 @@ window.noname_character_rank={
'shichangshi',
'ol_wenqin',
'clan_zhonghui',
'jsrg_chunyuqiong',
'jsrg_guanyu',
'dc_caocao',
'dc_liubei',
'dc_sunquan',
'yuechen',
'key_misuzu',
'key_sunohara',
'key_umi',
@ -587,6 +593,9 @@ window.noname_character_rank={
'yanghong',
'dc_sunhanhua',
'shen_dianwei',
'zhoubuyi',
'jsrg_sunce',
're_caorui',
],
bp:[
'chess_diaochan',
@ -932,6 +941,10 @@ window.noname_character_rank={
'ol_mengda',
'dc_wuban',
're_caochong',
'jsrg_lvbu',
'jsrg_xuyou',
'jsrg_zhangliao',
'jsrg_zhenji',
],
b:[
'diy_feishi',
@ -1221,7 +1234,6 @@ window.noname_character_rank={
'vtb_xiaoshan',
'vtb_xiaotao',
'zhangchu',
'dc_duyu',
'chentai',
'clan_zhongyan',
'sb_zhurong',
@ -1229,6 +1241,9 @@ window.noname_character_rank={
'xizheng',
'dc_duyu',
'clan_wanghun',
'jsrg_chendeng',
'jsrg_zhanghe',
'jsrg_zoushi',
],
bm:[
'diy_xizhenxihong',
@ -1418,6 +1433,7 @@ window.noname_character_rank={
'qianzhao',
'vtb_xiaosha',
'huanfan',
'jsrg_xugong',
],
c:[
'xiahoudun',

View File

@ -13,13 +13,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refresh_yijiang2:['re_madai','re_wangyi','xin_handang','xin_zhonghui','re_liaohua','re_chengpu','re_caozhang','dc_bulianshi','xin_liubiao','re_xunyou','re_guanzhang'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','xin_yufan','dc_liru','re_manchong','re_fuhuanghou','re_guanping','re_liufeng','re_caochong'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan','re_caozhen','re_zhoucang','dc_chenqun','re_caifuren','re_guyong','re_jushou','re_zhuhuan','re_zhangsong'],
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu','re_gongsunyuan','re_guotufengji','re_xiahoushi','re_liuchen','re_zhuzhi'],
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu','re_gongsunyuan','re_guotufengji','re_xiahoushi','re_liuchen','re_zhuzhi','re_caorui'],
refresh_yijiang6:['re_guohuanghou','re_sundeng'],
refresh_xinghuo:['re_duji','dc_gongsunzan','re_sp_taishici','re_caiyong','re_mazhong','re_wenpin','re_jsp_huangyueying'],
},
},
connect:true,
character:{
re_caorui:['male','wei',3,['huituo','mingjian','rexingshuai'],['unseen','zhu']],
re_caochong:['male','wei',3,['rechengxiang','renxin']],
ol_zhangzhang:['male','wu',3,['olzhijian','olguzheng']],
re_jsp_huangyueying:['female','qun',3,['rejiqiao','relinglong']],
@ -162,6 +163,95 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_guohuai:['xiahouyuan','zhanghe'],
},
skill:{
//堪比界曹冲的界曹叡
rexingshuai:{
audio:2,
skillAnimation:true,
animationColor:'thunder',
trigger:{player:'dying'},
zhuSkill:true,
filter:function(event,player){
if(player.hp>0) return false;
if(!player.hasZhuSkill('rexingshuai')) return false;
return game.hasPlayer(function(current){
return current!=player&&current.group=='wei';
});
},
init:function(player){
if(player.hasZhuSkill('rexingshuai')){
player.markSkill('rexingshuai');
player.storage.rexingshuai=false;
}
},
intro:{
content:'limited',
},
limited:true,
mark:false,
content:function(){
'step 0'
player.awakenSkill('rexingshuai');
var targets=game.filterPlayer();
targets.sortBySeat(_status.currentPhase);
targets.remove(player);
event.targets=targets;
event.damages=[];
player.addSkill('rexingshuai_restore');
'step 1'
if(event.targets.length){
var current=event.targets.shift();
if(current.group=='wei'){
current.chooseBool('是否令'+get.translation(player)+'回复一点体力?').set('ai',function(){
return get.attitude(_status.event.player,_status.event.target)>2;
}).set('target',player);
event.current=current;
}
else{
event.redo();
}
}
else{
event.goto(3);
}
'step 2'
if(result.bool){
event.damages.push(event.current);
event.current.line(player,'green');
game.log(event.current,'令',player,'回复一点体力');
player.recover();
}
if(event.targets.length){
event.goto(1);
}
'step 3'
if(event.damages.length){
var next=game.createEvent('rexingshuai_next');
event.next.remove(next);
trigger.after.push(next);
next.targets=event.damages;
next.setContent(function(){
targets.shift().damage();
if(targets.length) event.redo();
});
}
},
subSkill:{
restore:{
trigger:{
global:'dieAfter',
},
charlotte:true,
forced:true,
filter:function(event,player){
return event.source&&event.source.isIn()&&event.source.hasSkill('mingjian2');
},
content:function(){
player.restoreSkill('rexingshuai');
game.log(player,'重置了','#g【兴衰】');
}
},
}
},
//不想突破可以不突破的界曹冲
rechengxiang:{
audio:2,
@ -2136,7 +2226,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//界荀彧
oljieming:{
audio:2,
trigger:{player:['damageEnd','dieAfter']},
trigger:{player:['damageEnd','die']},
direct:true,
forceDie:true,
filter:function(event,player){
@ -14571,7 +14661,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shizhan_info:'出牌阶段限两次,你可以选择一名其他角色。该角色视为对你使用一张【决斗】。',
ol_xunyu:'界荀彧',
oljieming:'节命',
oljieming_info:'当你受到1点伤害后或死亡你可令一名角色摸X张牌。然后若其手牌数大于X则其将手牌弃置至X张X为其体力上限且至多为5。',
oljieming_info:'当你受到1点伤害后或死亡你可令一名角色摸X张牌。然后若其手牌数大于X则其将手牌弃置至X张X为其体力上限且至多为5。',
re_liufeng:'界刘封',
rexiansi:'陷嗣',
rexiansi2:'陷嗣',
@ -14664,6 +14754,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_caochong:'界曹冲',
rechengxiang:'称象',
rechengxiang_info:'当你受到伤害后你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于13的牌。若你获得的牌点数之和为13你复原武将牌。',
re_caorui:'界曹叡',
rexingshuai:'兴衰',
rexingshuai_info:'主公技限定技。当你进入濒死状态时你可令其他魏势力角色依次选择是否令你回复1点体力。然后这些角色依次受到1点伤害。有〖明鉴〗效果的角色于其回合内杀死角色后你重置〖兴衰〗。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -707,7 +707,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseJieshuBegin'},
forced:true,
content:function(){
player.draw(Math.min(5,game.countPlayer(current=>{
player.draw(Math.min(5,game.countPlayer2(current=>{
return current.getHistory('damage').length>0;
})+1));
}
@ -4608,7 +4608,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sblijian:'离间',
sblijian_info:'出牌阶段限一次。你可以选择至少两名其他角色并弃置X张牌X为你选择的角色数-1。然后每名你选择的角色依次视为对这些角色中与其逆时针座次最近的另一名角色使用一张【决斗】。',
sbbiyue:'闭月',
sbbiyue_info:'锁定技。结束阶段你摸Y张牌Y为本回合受到过伤害的角色数+1且至多为5。',
sbbiyue_info:'锁定技。结束阶段你摸Y张牌Y为本回合包括已死亡角色在内受到过伤害的角色数+1且至多为5。',
sb_pangtong:'谋庞统',
sblianhuan:'连环',
sblianhuan_info:'①出牌阶段你可以重铸一张♣手牌。②出牌阶段限一次。你可以将一张♣手牌当【铁索连环】使用。③当你使用【铁索连环】时你可以失去1点体力然后当此牌指定第一个目标后你随机弃置每名不处于连环状态的目标角色一张手牌。',

View File

@ -7686,14 +7686,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jiaxu:['re_jiaxu','jiaxu','ns_jiaxu','ps_jiaxu'],
dongzhuo:['ol_dongzhuo','sp_dongzhuo','re_dongzhuo','dongzhuo','yj_dongzhuo'],
dengai:['re_dengai','ol_dengai','dengai'],
sp_ol_zhanghe:['sp_ol_zhanghe','yj_zhanghe','sp_zhanghe'],
sp_ol_zhanghe:['sp_ol_zhanghe','yj_zhanghe','sp_zhanghe','jsrg_zhanghe'],
jiangwei:['ol_jiangwei','re_jiangwei','jiangwei'],
liushan:['ol_liushan','re_liushan','liushan'],
sunce:['re_sunben','re_sunce','sunce'],
zhangzhang:['ol_zhangzhang','re_zhangzhang','zhangzhang'],
zuoci:['re_zuoci','zuoci'],
caiwenji:['ol_caiwenji','re_caiwenji','caiwenji'],
xuyou:['sp_xuyou','xuyou','yj_xuyou'],
xuyou:['sp_xuyou','xuyou','jsrg_xuyou','yj_xuyou'],
guanqiujian:['guanqiujian','tw_guanqiujian','re_guanqiujian','old_guanqiujian'],
chendao:['chendao','old_chendao','ns_chendao'],
zhugezhan:['zhugezhan','old_zhugezhan'],
@ -7717,7 +7717,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"zhugezhan":"诸葛瞻",
"lukang":"陆抗",
"haozhao":"郝昭",
"yl_yuanshu":"袁术",
"yl_yuanshu":"雷袁术",
yl_yuanshu_ab:"袁术",
"zhangxiu":"张绣",
"chendao":"陈到",
"guanqiujian":"毌丘俭",
@ -8026,7 +8027,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
weiyan:'旧魏延',
xiaoqiao:'旧小乔',
zhoutai:'界周泰',
zhangjiao:'张角',
zhangjiao:'张角',
//yuji:'于吉',
shensu:'神速',
shensu1:'神速',

View File

@ -6482,7 +6482,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mingfa_info:'①结束阶段,你可展示一张牌并记录为“明伐”。②出牌阶段开始时,若“明伐”牌在你的手牌区或装备区,则你可以使用“明伐”牌与一名其他角色拼点。若你赢:你获得对方一张牌并从牌堆中获得一张点数等于“明伐”牌牌面点数-1的牌。若你没赢你本回合不能使用牌指定其他角色为目标。③你的拼点牌亮出后你令此牌的点数+2。',
rongbei:'戎备',
rongbei_info:'限定技。出牌阶段,你可选择一名有空装备栏的角色。系统为该角色的每个空装备栏选择一张装备牌,然后该角色使用之。',
db_wenyang:'文鸯',
db_wenyang:'手杀文鸯',
dbquedi:'却敌',
dbquedi_info:'每回合限一次。当你使用【杀】或【决斗】指定唯一目标后,你可选择:①获得目标角色的一张手牌。②弃置一张基本牌,并令此牌的伤害值基数+1。③背水减1点体力上限然后依次执行上述所有选项。',
dbzhuifeng:'椎锋',
@ -6570,7 +6570,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zjjuxiang_info:'限定技。一名其他角色脱离濒死状态时你可以对其造成1点伤害然后摸X张牌X为其体力上限且至多为5。',
houfeng:'厚俸',
houfeng_info:'每轮限一次。一名其他角色的出牌阶段开始时,若其在你的攻击范围内,则你可以令其进行“整肃”。然后当其于本回合内因整肃而摸牌或回复体力后,你获得相同的整肃奖励。',
liuba:'刘巴',
liuba:'手杀刘巴',
duanbi:'锻币',
duanbi_info:'出牌阶段限一次。若场上所有角色的手牌数之和大于角色数之和的二倍则你可以令所有其他角色各弃置X张手牌X为该角色手牌数的一半且向下取整且至多为3。然后你可选择一名角色令其随机获得三张以此法被弃置的牌。',
tongduo:'统度',

View File

@ -4181,7 +4181,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:'huanshi',
trigger:{global:'judge'},
filter:function(event,player){
return player.countCards('he')>0;
return player.countCards('h')>0;
},
logTarget:'player',
prompt2:function(event,player){
@ -10591,20 +10591,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
enable:'phaseUse',
usable:1,
viewAs:{name:'shunshou'},
viewAs:{
name:'shunshou',
storage:{spweiwu:true},
},
filterCard:{color:'red'},
position:'hes',
check:function(card){
return 7-get.value(card);
},
filterTarget:function(card,player,target){
if(target.countCards('h')<player.countCards('h')) return false;
return lib.filter.filterTarget.apply(this,arguments);
mod:{
targetInRange:function(card){
if(card.storage&&card.storage.spweiwu) return true;
},
viewAsFilter:function(player){
return player.countCards('hes',lib.skill.spweiwu.filterCard)>0&&game.hasPlayer(function(current){
return current.countCards('h')>=player.countCards('h')&&player.canUse('shunshou',current);
});
},
},
tuogu:{
@ -23030,7 +23029,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_caiwenji:'SP蔡琰',
zhugeguo:'诸葛果',
lingcao:'凌操',
sunru:'孙茹',
sunru:'手杀孙茹',
lingju:'灵雎',
lifeng:'李丰',
jsp_guanyu:'SP关羽',
@ -23073,8 +23072,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caoying:"曹婴",
simahui:"司马徽",
baosanniang:"OL鲍三娘",
pangdegong:"庞德公",
zhaotongzhaoguang:"赵统赵广",
pangdegong:"手杀庞德公",
zhaotongzhaoguang:"手杀赵统赵广",
majun:"马钧",
simazhao:"司马昭",
wangyuanji:"王元姬",
@ -23646,7 +23645,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spniluan:'逆乱',
spniluan_info:'出牌阶段,你可以将一张黑色牌当做【杀】使用。此【杀】使用结算完成后,若你未因此【杀】造成过伤害,则你令此【杀】不计入使用次数。',
spweiwu:'违忤',
spweiwu_info:'出牌阶段限一次,你可以将一张红色牌当做【顺手牵羊】对手牌数不小于你的角色使用。',
spweiwu_info:'出牌阶段限一次,你可以将一张红色牌当无距离限制的【顺手牵羊】使用。',
spmouzhu:'谋诛',
spmouzhu_backup:'谋诛',
spmouzhu_info:'出牌阶段限一次你可以选择任意名“距离为1”或“体力值等于你”的其他角色这些角色依次进行以下结算交给你一张手牌然后若其手牌数小于你则其视为对你使用一张【杀】或【决斗】。',
@ -23680,7 +23679,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
chengshang:'承赏',
chengshang_info:'当你于出牌阶段内使用的牌结算完成后,若此牌未造成过伤害且此牌的目标包含其他角色且你本阶段内未因〖承赏〗获得过牌,则你可以从牌堆中获得所有与此牌花色点数相同的牌。',
chengshang_info_guozhan:'当你于出牌阶段内使用的牌结算完成后,若此牌未造成过伤害且此牌的目标包含其他角色且你本阶段内未因〖承赏〗获得过牌,则你可以从牌堆中获得所有与此牌花色点数相同的牌。',
panshu:'潘淑',
panshu:'OL潘淑',
weiyi:'威仪',
weiyi_info:'每名角色限一次。当有角色受到伤害后你可选择①若其体力值不小于你则其失去1点体力。②若其体力值不大于你且其已受伤则其回复1点体力。',
jinzhi:'锦织',
@ -23693,7 +23692,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wangong:'挽弓',
wangong2:'挽弓',
wangong_info:'锁定技,当你使用基本牌时,你获得如下效果:当你使用下一张牌时,若此牌为【杀】,则此牌无次数和距离限制且伤害+1。',
huangchengyan:'黄承彦',
huangchengyan:'OL黄承彦',
guanxu:'观虚',
guanxu_info:'出牌阶段限一次你可以观看一名其他角色的手牌然后你可将其中一张手牌与牌堆顶5张牌中的一张交换。若如此做你弃置其手牌中3张花色相同的牌。',
yashi:'雅士',
@ -23795,7 +23794,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spmanwang_info:'出牌阶段你可以弃置任意张牌。然后你依次执行以下选项中的前X项⒈获得〖叛侵〗。⒉摸一张牌。⒊回复1点体力。⒋摸两张牌并失去〖叛侵〗。',
sppanqin:'叛侵',
sppanqin_info:'出牌阶段或弃牌阶段结束时,你可将你于本阶段内弃置且位于弃牌堆的所有牌当做【南蛮入侵】使用。然后若此牌被使用时对应的实体牌数不大于此牌的目标数,则你执行并移除〖蛮王〗中的最后一个选项。',
tengfanglan:'滕芳兰',
tengfanglan:'OL滕芳兰',
luochong:'落宠',
luochong_info:'准备阶段开始时/当你于一回合内首次受到伤害后你可选择本轮内未选择过的一项每名角色每轮限选一次⒈令一名角色回复1点体力。⒉令一名角色失去1点体力。⒊令一名角色弃置两张牌。⒋令一名角色摸两张牌。',
aichen:'哀尘',
@ -23894,7 +23893,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xindiaodu:"调度",
xindiaodu_info:"①每回合限一次,与你势力相同的角色使用装备牌时,其可以摸一张牌。②出牌阶段开始时,你可以获得与你势力相同的一名角色装备区内的一张牌,然后你可以将此牌交给另一名与你势力相同的其他角色。",
olhuanshi:'缓释',
olhuanshi_info:'一名角色的判定牌生效前,你可以令其观看你的牌并选择其中的一张牌,你打出此牌代替判定牌。然后你可以重铸任意张牌(每回合限重铸一次)。',
olhuanshi_info:'一名角色的判定牌生效前,你可以令其观看你的手牌并选择你的一张牌,你打出此牌代替判定牌。然后你可以重铸任意张牌(每回合限重铸一次)。',
olhongyuan:'弘援',
olhongyuan_info:'每阶段限一次。当你一次性获得至少两张牌以后,你可以将至多两张牌交给等量名角色。',
olmingzhe:'明哲',
@ -23902,7 +23901,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ahuinan:'阿会喃',
jueman:'蟨蛮',
jueman_info:'锁定技。一名角色的回合结束时若本回合被使用过的基本牌数不小于2且前两张基本牌的使用者均不为你你视为使用本回合被使用的第三张基本牌有且仅有其中之一为你你摸一张牌。',
ol_liuba:'刘巴',
ol_liuba:'OL刘巴',
oltongduo:'统度',
oltongduo_info:'准备阶段,你可以令一名角色交给你一张手牌,然后出牌阶段结束时,你将此牌置于牌堆顶。',
olzhubi:'铸币',

View File

@ -4,7 +4,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
dc_wangjun:['male','qun',4,['dcmianyao','dcchangqu']],
dc_jsp_guanyu:['male','wei',4,['new_rewusheng','dcdanji']],
dc_mengda:['male','wei',4,['dclibang','dcwujie']],
dc_zhangmancheng:['male','qun',4,['dclvecheng','dczhongji'],['unseen']],
@ -108,238 +107,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'],
sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin','re_dongcheng'],
sp_xiaohu:['haomeng','yanfuren','yanrou','dc_zhuling'],
sp_decade:['caobuxing','re_maliang','xin_baosanniang','dc_wangjun'],
sp_decade:['caobuxing','re_maliang','xin_baosanniang'],
}
},
skill:{
//新服灭霸
dcmianyao:{
audio:2,
trigger:{
player:'phaseDrawEnd',
},
direct:true,
filter:function(event,player){
return player.countCards('h')>0;
},
content:function(){
'step 0'
player.chooseCard('h',get.prompt('dcmianyao'),'展示点数最小的一张牌并随机插入牌堆中,然后于回合结束时摸此牌点数张牌。',function(card,player){
var num=get.number(card,player);
return !player.hasCard(card2=>{
return card!=card2&&get.number(card2,player)<num;
});
}).set('ai',card=>{
var player=_status.event.player;
var value=player.getUseValue(card,null,true);
if(value>5&&get.number(card)<=2) return 0;
return 1+1/Math.max(0.1,value);
});
'step 1'
if(result.bool){
player.logSkill('dcmianyao');
var card=result.cards[0];
event.card=card;
player.showCards([card],get.translation(player)+'发动了【免徭】');
}
else event.finish();
'step 2'
player.$throw(1,1000);
player.lose(card,ui.cardPile).insert_index=function(){
return ui.cardPile.childNodes[get.rand(0,ui.cardPile.childNodes.length-1)];
}
player.addTempSkill('dcmianyao_draw');
var num=get.number(card);
if(num>0) player.addMark('dcmianyao_draw',num,false);
},
subSkill:{
draw:{
trigger:{
player:'phaseEnd',
},
filter:function(event,player){
return player.hasMark('dcmianyao_draw');
},
forced:true,
charlotte:true,
onremove:true,
content:function(){
player.draw(player.countMark('dcmianyao_draw'));
},
}
}
},
dcchangqu:{
audio:2,
enable:'phaseUse',
usable:1,
selectTarget:function(){
return [1,game.countPlayer()-1];
},
complexSelect:true,
complexTarget:true,
multitarget:true,
multiline:true,
filterTarget:function(card,player,target){
if(player==target) return false;
var next=player.getNext(),prev=player.getPrevious();
var selected=ui.selected.targets;
if(!selected.contains(next)&&!selected.contains(prev)) return (target==next||target==prev);
for(var i of selected){
if(i.getNext()==target||i.getPrevious()==target) return true;
}
return false;
},
contentBefore:function(){
event.getParent()._dcchangqu_targets=targets.slice();
},
content:function(){
'step 0'
event.targets=event.getParent()._dcchangqu_targets;
var current=targets[0];
current.addMark('dcchangqu_warship');
current.addMark('dcchangqu_warshipx',1,false);
event.num=0;
game.delayx();
'step 1'
var target=targets.shift();
event.target=target;
var num=Math.max(1,event.num);
var nextPlayer=targets.find(i=>{
return i.isIn();
});
if(target.hasMark('dcchangqu_warshipx')){
var prompt2='是否交给'+get.translation(player)+get.cnNumber(num)+'张手牌?'+(nextPlayer?'若如此做,将“战舰”移动给'+get.translation(nextPlayer)+'':'')+'否则你下次受到的属性伤害值+'+num;
target.chooseCard(get.translation(player)+'对你发动了【长驱】',prompt2).set('ai',card=>{
if(_status.event.att>0) return 6-get.value(card);
if(_status.event.take) return -get.value(card);
return 5-get.value(card);
}).set('att',get.attitude(target,player)).set('take',function(){
var base=num;
var getEffect=function(target,player,num){
var natures=['fire','thunder','ice'];
return natures.map(nature=>{
return get.damageEffect(target,target,player,nature)*Math.sqrt(num)/Math.min(1.5,1+target.countCards('h'));
}).reduce((sum,eff)=>{
return sum+eff;
},0)/natures.length;
}
var eff=getEffect(player,player,base);
return targets.some((current,ind)=>{
var num=base+ind+1;
var effx=getEffect(current,player,num);
return effx<eff;
});
});
}
else event.goto(4);
'step 2'
if(result.bool){
var cards=result.cards;
target.give(cards,player);
event.num++;
}
else{
target.addSkill('dcchangqu_add');
target.addMark('dcchangqu_add',Math.max(1,event.num),false);
target.link(true);
event.goto(4);
}
'step 3'
var nextPlayer=targets.find(i=>{
return i.isIn();
});
if(nextPlayer){
target.line(nextPlayer);
nextPlayer.addMark('dcchangqu_warship',target.countMark('dcchangqu_warship'));
nextPlayer.addMark('dcchangqu_warshipx',target.countMark('dcchangqu_warshipx'),false);
event.goto(1);
game.delayx();
}
target.removeMark('dcchangqu_warship',target.countMark('dcchangqu_warship'));
target.removeMark('dcchangqu_warshipx',target.countMark('dcchangqu_warshipx'),false);
'step 4'
var targets=game.players.slice().concat(game.dead);
targets.forEach(i=>{
delete i.storage.dcchangqu_warshipx;
});
},
ai:{
order:10,
expose:0.05,
result:{
target:function(player,target){
var att=get.attitude(player,target);
var targets=game.filterPlayer(i=>i!=player);
targets.sortBySeat(player);
var targets2=targets.reverse();
var sum=0;
var maxSum=-Infinity,maxIndex=-1;
var maxSum2=-Infinity,maxIndex2=-1;
for(var i=0;i<targets.length;i++){
var current=targets[i];
var att=-get.attitude(player,current)-0.1;
var val=Math.sqrt(i+1)*att;
val/=0.01+Math.max(3,current.countCards('h')/2);
sum+=val;
if(sum>maxSum){
maxSum=sum;
maxIndex=i;
}
}
var sum=0;
for(var i=0;i<targets2.length;i++){
var current=targets[i];
var att=-get.attitude(player,current)-0.1;
var val=Math.sqrt(i+1)*att;
val/=0.01+Math.max(3,current.countCards('h')/2);
sum+=val;
if(sum>maxSum2){
maxSum2=sum;
maxIndex2=i;
}
}
if(maxSum<maxSum2){
targets=targets2;
maxIndex=maxIndex2;
}
if(ui.selected.targets.length>maxIndex) return -100*get.sgnAttitude(player,target);
if(target==targets[ui.selected.targets.length]) return get.sgnAttitude(player,target);
return 0;
}
},
},
subSkill:{
warship:{
marktext:'舰',
intro:{
name:'战舰',
name2:'战舰',
content:'这里停了&艘战舰!不过啥用没有。',
}
},
add:{
trigger:{
player:'damageBegin3',
},
filter:function(event,player){
return event.nature&&player.hasMark('dcchangqu_add');
},
forced:true,
onremove:true,
charlotte:true,
content:function(){
'step 0'
trigger.num+=player.countMark('dcchangqu_add');
player.removeSkill('dcchangqu_add');
},
marktext:'驱',
intro:{
content:'下次受到的属性伤害+#',
}
},
}
},
//魏关羽
dcdanji:{
audio:'danji',
@ -1036,14 +807,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'useCardToPlayered'},
usable:1,
filter:function(event,player){
return player.countCards('e')>0&&event.card.name=='sha'&&event.getParent().triggeredTargets3.length==event.targets.length;
return event.card.name=='sha'&&event.getParent().triggeredTargets3.length==event.targets.length;
},
check:function(event,player){
return event.targets.some(target=>get.effect(target,event.card,player,player)<=0);
},
content:function(){
'step 0'
var num=player.countCards('e');
var num=player.countCards('e')+1;
event.num=num;
player.draw(num);
'step 1'
@ -1072,7 +843,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var eff=get.effect(targetx,{name:'sha'},player,player);
delete _status._dctingxian_aiChecking;
if(eff<0) return true;
}).length<player.countCards('e')) return [0,0,0,0.5];
}).length<player.countCards('e')+1) return [0,0,0,0.5];
}
},
}
@ -3230,7 +3001,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
'step 1'
if(result.bool){
player.awakenSkill('zhongjie');
//player.awakenSkill('zhongjie');
var target=result.targets[0];
player.logSkill('zhongjie',target);
target.gainMaxHp();
@ -3579,6 +3350,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
ai:{
jueqing:true,
}
},
nhhuoqi:{
enable:'phaseUse',
@ -9600,7 +9374,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(num>=3){
str+=';始终跳过弃牌阶段';
}
if(num>=4){
if(num==0||num>=4){
str+=';造成的伤害+1';
}
return str;
@ -9624,7 +9398,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_xingzhao2":{
audio:true,
trigger:{
player:"phaseDiscardBefore",
player:['phaseJudgeBefore','phaseDiscardBefore'],
},
forced:true,
filter:function(event,player){
@ -9635,7 +9409,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
trigger.cancel();
game.log(player,'跳过了弃牌阶段');
game.log(player,'跳过了'+(trigger.name=='phaseJudge'?'判定':'弃牌')+'阶段');
},
},
xinfu_xingzhao3:{
@ -9648,7 +9422,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var num=game.countPlayer(function(current){
return current.isDamaged();
});
return num>=4;
return num==0||num>=4;
},
content:function(){
trigger.num++;
@ -10046,6 +9820,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jsp_guanyu:['dc_jsp_guanyu','jsp_guanyu'],
mushun:['mushun','sp_mushun'],
wangjun:['dc_wangjun','wangjun'],
zoushi:['re_zoushi','jsrg_zoushi'],
},
translate:{
lijue:"李傕",
@ -10059,8 +9834,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhangqiying:"张琪瑛",
sp_liuqi:'刘琦',
xf_tangzi:"唐咨",
xf_huangquan:"黄权",
xf_sufei:"苏飞",
xf_huangquan:"OL黄权",
xf_sufei:"OL苏飞",
"xinfu_langxi":"狼袭",
"xinfu_langxi_info":"准备阶段你可以对一名体力小于或等于你的其他角色造成02点随机伤害。",
"xinfu_yisuan":"亦算",
@ -10102,7 +9877,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xz_xunxun":"恂恂",
"xz_xunxun_info":"摸牌阶段,你可以观看牌堆顶的四张牌,然后将其中的两张牌置于牌堆顶,并将其余的牌以任意顺序置于牌堆底。",
"xinfu_xingzhao":"兴棹",
"xinfu_xingzhao_info":"锁定技。若X≥1你视为拥有技能〖恂恂〗。若X≥2当你使用装备牌时你摸一张牌。若X≥3弃牌阶段开始时你跳过此阶段。若X≥4当你造成伤害时此伤害+1X为场上已受伤的角色数",
"xinfu_xingzhao_info":"锁定技。若X≥1你视为拥有技能〖恂恂〗。若X≥2当你使用装备牌时你摸一张牌。若X≥3判定阶段或弃牌阶段开始时你跳过此阶段。若X=0或X≥4当你造成伤害时此伤害+1X为场上已受伤的角色数",
"xinfu_xingzhao2":"兴棹",
"xinfu_xingzhao2_info":"",
xinfu_xingzhao3:'兴棹',
@ -10515,13 +10290,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dczuojian_info:'出牌阶段结束时若你于此阶段使用过的牌数不小于体力值你可以选择一项1.令装备区牌数多于你的角色各摸一张牌2.弃置装备区牌数少于你的角色各一张手牌。',
sunlang:'孙狼',
dctingxian:'铤险',
dctingxian_info:'每回合限一次。当你使用【杀】指定最后一个目标后你可以摸X张牌然后令此【杀】对其中至多X个目标无效X为你装备区的牌数)。',
dctingxian_info:'每回合限一次。当你使用【杀】指定最后一个目标后你可以摸X张牌然后令此【杀】对其中至多X个目标无效X为你装备区的牌数+1)。',
dcbenshi:'奔矢',
dcbenshi_info:'锁定技。①你的攻击范围+1。②你的攻击范围基数不受装备区内武器牌的影响。③由你使用的【杀】的牌面信息中的“使用目标”产生的规则改为“攻击范围内的所有角色”。',
sunhuan:'孙桓',
dcniji:'逆击',
dcniji_info:'①当你成为非装备牌的目标后,你可以摸一张牌,称为“逆击”。②一名角色的结束阶段,若你于本回合获得的“逆击”数不小于你的体力值,你可以使用一张“逆击”。你弃置所有“逆击”。',
//dc_fuwan:'十周年伏完',
//dc_fuwan:'新杀伏完',
//dc_fuwan_ab:'伏完',
dcmoukui:'谋溃',
dcmoukui_info:'当你使用【杀】指定第一个目标后你可以选择任意项1.摸一张牌2.弃置其中一个目标角色一张牌。若你均选择,当此【杀】被无效后或被抵消后,该角色弃置你一张牌。',
@ -10547,11 +10322,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcdanji_info:'觉醒技。准备阶段若你的手牌数大于体力值你减1点体力上限将体力回复至体力上限然后获得〖马术〗和〖怒嗔〗。',
dcnuchen:'怒嗔',
dcnuchen_info:'出牌阶段限一次。你可以展示一名其他角色的一张手牌然后选择一项1.弃置任意张该花色的牌对其造成等量伤害2.获得该角色手牌中所有此花色的牌。',
dc_wangjun:'王濬',
dcmianyao:'免徭',
dcmianyao_info:'摸牌阶段结束时,你可以展示手牌中点数最小的一张牌并将此牌随机插入牌堆中。然后你于此回合结束时摸等同于此牌点数的牌。',
dcchangqu:'长驱',
dcchangqu_info:'出牌阶段限一次。你可以开一艘战舰(你从你的上家或下家开始选择任意名座位连续的其他角色,且起点角色获得“战舰”标记)。这些角色按照你选择的顺序依次执行:{若其有本次获得的“战舰”其选择一项1.交给你X张手牌然后将“战舰”移动给你选择的下一名目标角色2.令其下次受到的属性伤害值+X然后横置X为本次〖长驱〗中选项一被选择过的次数且至少为1。}。',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",

View File

@ -2471,17 +2471,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
characterReplace:{
caocao:['re_caocao','caocao'],
caocao:['re_caocao','caocao','dc_caocao'],
guojia:['re_guojia','guojia','ps1059_guojia','ps2070_guojia'],
simayi:['re_simayi','simayi','ps_simayi','ps2068_simayi'],
jin_simayi:['jin_simayi','junk_simayi','ps_jin_simayi'],
zhenji:['re_zhenji','yj_zhenji','zhenji'],
xuzhu:['re_xuzhu','xuzhu'],
zhangliao:['re_zhangliao','zhangliao'],
sp_zhangliao:['sp_zhangliao','yj_zhangliao'],
sp_zhangliao:['sp_zhangliao','yj_zhangliao','jsrg_zhangliao'],
xiahoudun:['re_xiahoudun','xin_xiahoudun','xiahoudun'],
liubei:['re_liubei','liubei','junk_liubei'],
guanyu:['re_guanyu','guanyu','ps_guanyu'],
liubei:['re_liubei','liubei','dc_liubei','junk_liubei'],
guanyu:['re_guanyu','guanyu','jsrg_guanyu','ps_guanyu'],
zhangfei:['re_zhangfei','tw_zhangfei','xin_zhangfei','old_zhangfei','zhangfei','yj_zhangfei'],
zhaoyun:['re_zhaoyun','old_zhaoyun','zhaoyun','ps2063_zhaoyun','ps2067_zhaoyun'],
sp_zhaoyun:['sp_zhaoyun','jsp_zhaoyun'],
@ -2489,7 +2489,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_machao:['sp_machao','old_machao'],
zhugeliang:['re_zhugeliang','zhugeliang','ps2066_zhugeliang','ps_zhugeliang'],
huangyueying:['re_huangyueying','huangyueying','junk_huangyueying'],
sunquan:['re_sunquan','sunquan'],
sunquan:['re_sunquan','sunquan','dc_sunquan'],
zhouyu:['re_zhouyu','zhouyu','ps1062_zhouyu','ps2080_zhouyu'],
luxun:['re_luxun','luxun'],
lvmeng:['re_lvmeng','lvmeng'],
@ -2498,7 +2498,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sunshangxiang:['re_sunshangxiang','sunshangxiang'],
ganning:['re_ganning','ganning','yongjian_ganning'],
yj_ganning:['yj_ganning','sp_ganning'],
lvbu:['re_lvbu','lvbu','ps_lvbu'],
lvbu:['re_lvbu','lvbu','jsrg_lvbu','ps_lvbu'],
diaochan:['re_diaochan','diaochan'],
huatuo:['re_huatuo','old_huatuo','huatuo'],
huaxiong:['re_huaxiong','old_huaxiong','huaxiong','ol_huaxiong'],

View File

@ -13562,7 +13562,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
twhanyu_info:'锁定技。游戏开始时,你获得牌堆中的基本牌,锦囊牌,装备牌各一张。',
twhengjiang:'横江',
twhengjiang_info:'出牌阶段限一次当你使用基本牌或普通锦囊牌指定唯一目标后你可将此牌的目标改为攻击范围内的所有合法目标然后你于此牌结算结束后摸X张牌X为因响应此牌而使用或打出过牌的角色数。',
tw_huojun:'霍峻',
tw_huojun:'TW霍峻',
twsidai:'伺怠',
twsidai_info:'限定技。出牌阶段你可以将手牌区内的所有基本牌当做【杀】使用无距离和次数限制。若此牌对应的实体牌中包含【闪】则目标角色成为此牌的目标后需弃置一张基本牌否则不可响应此牌包含【桃】则当目标角色受到此牌的伤害后其减1点体力上限包含【酒】则当目标角色受到此牌的伤害时此伤害×2。',
twjieyu:'竭御',
@ -13867,7 +13867,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
twluanchou_info:'出牌阶段限一次。你可以令两名角色获得〖共患〗直到你下次发动此技能。',
twgonghuan:'共患',
twgonghuan_info:'每回合限一次。当其他角色受到伤害时,若其拥有〖共患〗且其体力值不大于你,你可以将此伤害转移给你(不触发〖共患〗)。',
tw_qiaorui:'桥蕤',
tw_qiaorui:'TW桥蕤',
wangxing:'妄行',
twxiawei:'狭威',
twxiawei_info:'①游戏开始时你将牌堆中的两张基本牌置于武将牌上称为“威”。②回合开始时你将所有“威”置入弃牌堆。③你可以将“威”如手牌般使用或打出。④妄行准备阶段你可以将牌堆顶的X+1张牌置于武将牌上称为“威”。',

View File

@ -5,6 +5,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
character:{
sunlingluan:['female','wu',3,['dclingyue','dcpandi']],
dc_wangjun:['male','qun',4,['dctongye','dcchangqu']],
zhoubuyi:['male','wei',3,['dcshiji','dcsilun']],
dc_duyu:['male','wei',4,['dcjianguo','dcdyqingshi']],
ganfurenmifuren:['female','shu',3,['dcchanjuan','dcxunbie']],
dc_ganfuren:['female','shu',3,['dcshushen','dcshenzhi']],
@ -72,7 +74,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterSort:{
xianding:{
sp2_huben:['wangshuang','wenyang','re_liuzan','dc_huangzu','wulan','leitong','chentai','dc_duyu'],
sp2_huben:['wangshuang','wenyang','re_liuzan','dc_huangzu','wulan','leitong','chentai','dc_duyu','dc_wangjun'],
sp2_shengun:["puyuan","guanlu","gexuan",'wufan','re_zhangbao','dukui','zhaozhi','zhujianping','dc_zhouxuān','zerong'],
sp2_bizhe:['dc_luotong','dc_wangchang','chengbing','dc_yangbiao','ruanji'],
sp2_huangjia:['caomao','liubian','dc_liuyu','quanhuijie','dingshangwan','yuanji','xielingyu','sunyu','ganfurenmifuren','dc_ganfuren','dc_mifuren'],
@ -81,7 +83,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp2_yinyu:['zhouyi','luyi','sunlingluan'],
sp2_doukou:['re_xinxianying','huaman','xuelingyun','dc_ruiji','duanqiaoxiao'],
sp2_jichu:['zhaoang','dc_liuye','dc_wangyun','yanghong','huanfan','xizheng'],
sp2_yuxiu:['dongguiren','dc_tengfanglan','zhangjinyun'],
sp2_yuxiu:['dongguiren','dc_tengfanglan','zhangjinyun','zhoubuyi'],
sp2_gaoshan:['wanglang','liuhui'],
sp2_wumiao:['wu_zhugeliang'],
}
@ -243,6 +245,505 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
//新服灭霸
dctongye:{
audio:2,
trigger:{
global:['phaseBefore','dieAfter'],
player:'enterGame',
},
forced:true,
filter:function(event,player){
if(game.countGroup()>4) return false;
if(event.name=='die') return true;
return event.name!='phase'||game.phaseNumber==0;
},
content:function(){
player.addSkill('dctongye_buff');
var num=game.countGroup();
if(num<=4){
player.addMark('dctongye_handcard',3,false);
game.log(player,'手牌上限','#y+3');
}
if(num<=3){
player.addMark('dctongye_range',3,false);
game.log(player,'攻击范围','#y+3');
}
if(num<=2){
player.addMark('dctongye_sha',3,false);
game.log(player,'使用杀的次数上限','#y+3');
}
if(num<=1){
player.addMark('dctongye_draw',3,false);
game.log(player,'摸牌阶段额定摸牌数','#y+3');
}
},
subSkill:{
buff:{
audio:'dctongye',
trigger:{player:'phaseDrawBegin2'},
forced:true,
filter:function(event,player){
if(!player.hasMark('dctongye_draw')) return false;
return !event.numFixed;
},
content:function(){
trigger.num+=player.countMark('dctongye_draw');
},
charlotte:true,
onremove:['dctongye_handcard','dctongye_range','dctongye_sha','dctongye_draw'],
mark:true,
marktext:'统',
intro:{
content:function(storage,player){
var str='';
var hand=player.countMark('dctongye_handcard'),range=player.countMark('dctongye_range'),sha=player.countMark('dctongye_sha'),draw=player.countMark('dctongye_draw');
if(hand>0){
str+='<li>手牌上限+'+hand+'';
}
if(range>0){
str+='<li>攻击范围+'+range+'';
}
if(sha>0){
str+='<li>使用【杀】的次数上限+'+sha+''
}
if(draw>0){
str+='<li>摸牌阶段额定摸牌数+'+draw+'。';
}
str=str.slice(0,-1)+'。';
return str;
}
},
mod:{
maxHandcard:function(player,num){
return num+player.countMark('dctongye_handcard');
},
attackRange:function(player,num){
return num+player.countMark('dctongye_range');
},
cardUsable:function(card,player,num){
if(card.name=='sha'){
return num+player.countMark('dctongye_sha');
}
},
},
ai:{
threaten:2.6,
},
},
},
},
dcmianyao:{
audio:2,
trigger:{
player:'phaseDrawEnd',
},
direct:true,
filter:function(event,player){
return player.countCards('h')>0;
},
content:function(){
'step 0'
player.chooseCard('h',get.prompt('dcmianyao'),'展示点数最小的一张牌并随机插入牌堆中,然后于回合结束时摸此牌点数张牌。',function(card,player){
var num=get.number(card,player);
return !player.hasCard(card2=>{
return card!=card2&&get.number(card2,player)<num;
});
}).set('ai',card=>{
var player=_status.event.player;
var value=player.getUseValue(card,null,true);
if(value>5&&get.number(card)<=2) return 0;
return 1+1/Math.max(0.1,value);
});
'step 1'
if(result.bool){
player.logSkill('dcmianyao');
var card=result.cards[0];
event.card=card;
player.showCards([card],get.translation(player)+'发动了【免徭】');
}
else event.finish();
'step 2'
player.$throw(1,1000);
player.lose(card,ui.cardPile).insert_index=function(){
return ui.cardPile.childNodes[get.rand(0,ui.cardPile.childNodes.length-1)];
}
player.addTempSkill('dcmianyao_draw');
var num=get.number(card);
if(num>0) player.addMark('dcmianyao_draw',num,false);
},
subSkill:{
draw:{
trigger:{
player:'phaseEnd',
},
filter:function(event,player){
return player.hasMark('dcmianyao_draw');
},
forced:true,
charlotte:true,
onremove:true,
content:function(){
player.draw(player.countMark('dcmianyao_draw'));
},
}
}
},
dcchangqu:{
audio:2,
enable:'phaseUse',
usable:1,
selectTarget:function(){
return [1,game.countPlayer()-1];
},
complexSelect:true,
complexTarget:true,
multitarget:true,
multiline:true,
filterTarget:function(card,player,target){
if(player==target) return false;
var next=player.getNext(),prev=player.getPrevious();
var selected=ui.selected.targets;
if(!selected.contains(next)&&!selected.contains(prev)) return (target==next||target==prev);
for(var i of selected){
if(i.getNext()==target||i.getPrevious()==target) return true;
}
return false;
},
contentBefore:function(){
event.getParent()._dcchangqu_targets=targets.slice();
},
content:function(){
'step 0'
event.targets=event.getParent()._dcchangqu_targets;
var current=targets[0];
current.addMark('dcchangqu_warship');
current.addMark('dcchangqu_warshipx',1,false);
event.num=0;
game.delayx();
'step 1'
var target=targets.shift();
event.target=target;
var num=Math.max(1,event.num);
var nextPlayer=targets.find(i=>{
return i.isIn();
});
if(target.hasMark('dcchangqu_warshipx')){
var prompt2='是否交给'+get.translation(player)+get.cnNumber(num)+'张手牌?'+(nextPlayer?'若如此做,将“战舰”移动给'+get.translation(nextPlayer)+'':'')+'否则你下次受到的属性伤害值+'+num;
target.chooseCard(get.translation(player)+'对你发动了【长驱】',prompt2).set('ai',card=>{
if(_status.event.att>0) return 6-get.value(card);
if(_status.event.take) return -get.value(card);
return 5-get.value(card);
}).set('att',get.attitude(target,player)).set('take',function(){
var base=num;
var getEffect=function(target,player,num){
var natures=['fire','thunder','ice'];
return natures.map(nature=>{
return get.damageEffect(target,target,player,nature)*Math.sqrt(num)/Math.min(1.5,1+target.countCards('h'));
}).reduce((sum,eff)=>{
return sum+eff;
},0)/natures.length;
}
var eff=getEffect(player,player,base);
return targets.some((current,ind)=>{
var num=base+ind+1;
var effx=getEffect(current,player,num);
return effx<eff;
});
});
}
else event.goto(4);
'step 2'
if(result.bool){
var cards=result.cards;
target.give(cards,player);
event.num++;
}
else{
target.addSkill('dcchangqu_add');
target.addMark('dcchangqu_add',Math.max(1,event.num),false);
target.link(true);
event.goto(4);
}
'step 3'
var nextPlayer=targets.find(i=>{
return i.isIn();
});
if(nextPlayer){
target.line(nextPlayer);
nextPlayer.addMark('dcchangqu_warship',target.countMark('dcchangqu_warship'));
nextPlayer.addMark('dcchangqu_warshipx',target.countMark('dcchangqu_warshipx'),false);
event.goto(1);
game.delayx();
}
target.removeMark('dcchangqu_warship',target.countMark('dcchangqu_warship'));
target.removeMark('dcchangqu_warshipx',target.countMark('dcchangqu_warshipx'),false);
'step 4'
var targets=game.players.slice().concat(game.dead);
targets.forEach(i=>{
delete i.storage.dcchangqu_warshipx;
});
},
ai:{
order:10,
expose:0.05,
result:{
target:function(player,target){
var att=get.attitude(player,target);
var targets=game.filterPlayer(i=>i!=player);
targets.sortBySeat(player);
var targets2=targets.reverse();
var sum=0;
var maxSum=-Infinity,maxIndex=-1;
var maxSum2=-Infinity,maxIndex2=-1;
for(var i=0;i<targets.length;i++){
var current=targets[i];
var att=-get.attitude(player,current)-0.1;
var val=Math.sqrt(i+1)*att;
val/=0.01+Math.max(3,current.countCards('h')/2);
sum+=val;
if(sum>maxSum){
maxSum=sum;
maxIndex=i;
}
}
var sum=0;
for(var i=0;i<targets2.length;i++){
var current=targets[i];
var att=-get.attitude(player,current)-0.1;
var val=Math.sqrt(i+1)*att;
val/=0.01+Math.max(3,current.countCards('h')/2);
sum+=val;
if(sum>maxSum2){
maxSum2=sum;
maxIndex2=i;
}
}
if(maxSum<maxSum2){
targets=targets2;
maxIndex=maxIndex2;
}
if(ui.selected.targets.length>maxIndex) return -100*get.sgnAttitude(player,target);
if(target==targets[ui.selected.targets.length]) return get.sgnAttitude(player,target);
return 0;
}
},
},
subSkill:{
warship:{
marktext:'舰',
intro:{
name:'战舰',
name2:'战舰',
content:'这里停了&艘战舰!不过啥用没有。',
}
},
add:{
trigger:{
player:'damageBegin3',
},
filter:function(event,player){
return event.nature&&player.hasMark('dcchangqu_add');
},
forced:true,
onremove:true,
charlotte:true,
content:function(){
'step 0'
trigger.num+=player.countMark('dcchangqu_add');
player.removeSkill('dcchangqu_add');
},
marktext:'驱',
intro:{
content:'下次受到的属性伤害+#',
}
},
}
},
//周不疑
dcshiji:{
audio:2,
trigger:{
global:'phaseJieshuBegin',
},
filter:function(event,player){
return event.player.isIn()&&!event.player.getHistory('sourceDamage').length;
},
direct:true,
content:function(){
'step 0'
trigger.player.addTempSkill('dcshiji_forbidself');
var list=[];
for(var name of lib.inpile){
var type=get.type(name);
if(type!='trick') continue;
if(player.getStorage('dcshiji_used').contains(name)) continue;
var card={
name:name,
storage:{dcshiji:true},
};
if(trigger.player.hasUseTarget(card)){
list.push([type,'',name]);
}
}
if(list.length){
player.chooseButton([get.prompt('dcshiji',trigger.player),[list,'vcard']]).set('ai',button=>{
if(_status.event.tochoose) return _status.event.getTrigger().player.getUseValue({name:button.link[2]});
return 0;
}).set('tochoose',get.attitude(player,trigger.player)>0&&trigger.player.hasCard(card=>{
return get.value(card)<7;
},'hes'));
}
else event.finish();
'step 1'
if(result.bool){
var card={
name:result.links[0][2],
storage:{dcshiji:true},
};
var str=get.translation(card);
player.logSkill('dcshiji',trigger.player);
player.addTempSkill('dcshiji_used','roundStart');
player.markAuto('dcshiji_used',[card.name]);
player.popup(str);
game.log(player,'声明了','#y'+str);
game.broadcastAll(function(card){
lib.skill.dcshiji_backup.viewAs=card;
lib.skill.dcshiji_backup.prompt='十计:是否将一张牌当做'+get.translation(card)+'使用?';
},card);
var next=trigger.player.chooseToUse();
next.set('openskilldialog','十计:是否将一张牌当做'+get.translation(card)+'使用?');
next.set('norestore',true);
next.set('addCount',false);
next.set('_backupevent','dcshiji_backup');
next.set('custom',{
add:{},
replace:{window:function(){}}
});
next.backup('dcshiji_backup');
}
},
subSkill:{
backup:{
filterCard:function(card){
return get.itemtype(card)=='card';
},
position:'hes',
selectCard:1,
check:(card)=>7-get.value(card),
popname:true,
},
used:{
charlotte:true,
onremove:true,
mark:true,
marktext:'计',
intro:{
content:'本轮已声明过$',
},
},
forbidself:{
charlotte:true,
mod:{
targetEnabled:function(card,player,target){
if(player==target&&card.storage&&card.storage.dcshiji) return false;
},
},
}
}
},
dcsilun:{
audio:2,
trigger:{
player:['phaseZhunbeiBegin','damageEnd'],
},
frequent:true,
content:function(){
'step 0'
player.draw(4);
event.count=0;
event.equipCount={};
game.countPlayer(current=>{
event.equipCount[current.playerid]=current.countCards('e');
},true);
'step 1'
if(!player.countCards('he')) event.goto(5);
else player.chooseCard('四论:选择一张牌('+(event.count+1)+'/'+'4','然后选择将此牌置于场上或牌堆的两端',true,'he').set('ai',card=>{
var player=_status.event.player;
if(['equip','delay'].contains(get.type(card))&&player.hasValueTarget(card)) return 50;
return 50-get.value(card);
});
'step 2'
if(result.bool){
var card=result.cards[0];
event.card=card;
event.count++;
var choices=['牌堆顶','牌堆底'];
var type=get.type(card);
if(type=='equip'&&game.hasPlayer(current=>{
return current.canEquip(card);
})||type=='delay'&&game.hasPlayer(current=>{
return !current.storage._disableJudge&&!current.hasJudge(card.name);
})) choices.unshift('场上');
player.chooseControl(choices).set('prompt','请选择要将'+get.translation(card)+'置于的位置').set('ai',()=>{
return _status.event.choice;
}).set('choice',function(){
if(['equip','delay'].contains(get.type(card))&&player.hasValueTarget(card)&&choices.contains('场上')) return '场上';
var val=get.value(card);
var next=_status.currentPhase;
if(trigger.name=='damage') next=next.getNext();
if(get.attitude(player,next)>0&&val>=6||get.attitude(player,next)<0&&val<=4.5) return '牌堆顶';
return '牌堆底';
}());
}
'step 3'
if(result.control=='场上'){
var type=get.type(card);
player.chooseTarget('将'+get.translation(card)+'置于一名角色的场上',true,(card,player,target)=>{
return _status.event.targets.contains(target);
}).set('targets',game.filterPlayer(current=>{
if(type=='equip') return current.canEquip(card);
if(type=='delay') return !current.storage._disableJudge&&!current.hasJudge(card.name);
return false;
})).set('ai',target=>{
var player=_status.event.player;
var card=_status.event.card;
return get.attitude(player,target)*(get.type(card)=='equip'?get.value(card,target):get.effect(target,{
name:card.viewAs||card.name,
cards:[card],
},target,target));
}).set('card',card);
}
else{
player.$throw(card,1000);
var next=player.lose(card,ui.cardPile);
if(result.control=='牌堆顶') next.insert_card=true;
game.log(player,'将',card,'置于了','#y'+result.control);
}
'step 4'
if(result.bool&&result.targets&&result.targets.length){
var target=result.targets[0];
player.line(target);
player.$give(card,target,false);
if(get.type(card)=='equip'){
target.equip(card);
}
else{
target.addJudge(card);
}
}
if(event.count<4) event.goto(1);
'step 5'
game.countPlayer(current=>{
var count=current.countCards('e');
var prevCount=event.equipCount[current.playerid]||0;
if(count!=prevCount){
current.link(false);
current.turnOver(false);
}
});
}
},
//杜预
dcjianguo:{
audio:2,
@ -10669,6 +11170,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ruanji:'阮籍公元210年263年字嗣宗陈留尉氏今河南省开封市三国时期魏国诗人、竹林七贤之一。阮瑀之子门荫入仕累迁步兵校尉世称阮步兵。崇奉老庄之学政治上则采取谨慎避祸的态度。景元四年公元263年阮籍去世享年五十三岁。作为“正始之音”的代表著有《咏怀八十二首》、《大人先生传》等其著作收录在《阮籍集》中。',
ganfurenmifuren:'甘夫人,刘备起兵后于沛城娶之为妾。后来,甘夫人随刘备到荆州,生了阿斗(也就是后主刘禅)。223年四月刘备病死于白帝城追谥甘夫人为“昭烈皇后”。<br>糜夫人,刘备夫人。徐州别驾糜竺之妹。长坂兵败,她怀抱年仅两岁的刘禅在乱军中走散,被赵云发现;但麋夫人因为赵云只有一匹马,不肯上马,在将阿斗托付给赵云后投井而亡。',
sunlingluan:'孙翎鸾,孙坚与妾室丁氏的女儿,孙策的妹妹,孙权、孙尚香的姐姐。孙翎年幼时曾得杜夔点化,窥得音律玄妙,丝竹八音,擅长琵琶,每次弹奏琵琶时,经常引来百鸟,称为奇观。早年孙翎鸾出游,山林巧遇葛玄,葛玄观其面相为吉,特传授修行辟谷之法,可令其身心洗涤,容颜久存。孙翎鸾有恋人名张奋,两人情投意合,可惜造化弄人,张奋病死外域,孙翎鸾倚楼盼归,日复一日、年复一年。后有五彩孔雀自东南而来,绕楼而鸣,其声如慕,孙翎鸾泪染笑靥,与孔雀耳语几句后乘翎而去。',
zhoubuyi:'周不疑192年—208年字元直或作“文直”零陵重安今湖南衡阳县刘表别驾刘先的外甥少有异才聪明敏达在十七岁时就著有文论四首。曹冲死后曹操怀疑曹丕无法驾驭周不疑于是派人杀了周不疑。',
},
characterTitle:{
// wulan:'#b对决限定武将',
@ -10833,7 +11335,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dushi_info:'锁定技,你处于濒死状态时,其他角色不能对你使用【桃】。你死亡时,你选择一名其他角色获得〖毒逝〗。',
yuwei:'余威',
yuwei_info:'主公技,锁定技,其他群雄角色的回合内,你将〖诗怨〗改为“每回合每项限两次”。',
re_xinxianying:'辛宪英',
re_xinxianying:'新杀辛宪英',
rezhongjian:'忠鉴',
rezhongjian2:'忠鉴',
rezhongjian_info:'出牌阶段限一次,你可以选择一名本回合内未选择过的角色。你令其获得一项效果直至你的下回合开始:①其下次造成伤害后弃置两张牌,然后你摸一张牌。②其下次受到伤害后摸两张牌,然后你摸一张牌。',
@ -11055,7 +11557,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcwumei_info:'每轮限一次。回合开始时,你可以令一名角色记录场上所有角色的体力值并进行一个额外的回合,并将你的回合移至该回合后进行。该角色以此法进行的回合的结束阶段,将场上所有角色的体力值改为记录内的对应数值。',
dczhanmeng:'占梦',
dczhanmeng_info:'当你使用牌时你可以选择本回合未选择过的一项1.上一回合内若没有同名牌被使用过你获得一张非伤害牌2.下一回合内当同名牌首次被使用后你获得一张伤害牌3.令一名其他角色弃置两张牌若点数之和大于10你对其造成1点火焰伤害。',
dc_wangyun:'十周年王允',
dc_wangyun:'新杀王允',
dc_wangyun_ab:'王允',
dclianji:'连计',
dclianji_info:'出牌阶段限一次。你可以弃置一张手牌并选择一名其他角色其随机使用牌堆中的一张武器牌然后其选择一项1.对另一名其他角色使用一张【杀】并将武器牌交给其中一个目标2.令你视为对其使用一张【杀】,并将武器牌交给你。',
@ -11172,6 +11674,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dclingyue_info:'锁定技。一名角色于一轮内首次造成伤害后你摸一张牌。若此时是该角色回合外则改为摸X张牌X为本回合全场造成的伤害值。',
dcpandi:'盻睇',
dcpandi_info:'出牌阶段,你可以选择一名本回合内未造成过伤害的角色。你本阶段内使用的下一张牌改为以该角色为基准判断使用目标合法性,且使用者改为该角色。',
zhoubuyi:'周不疑',
dcshiji:'十计',
dcshiji_info:'一名角色的结束阶段,若其本回合未造成过伤害,你可以声明一种本轮未以此法声明过的普通锦囊牌,然后其可以将一张牌当你声明的牌使用(其不是此牌的合法目标)。',
dcsilun:'四论',
dcsilun_info:'准备阶段或当你受到伤害后,你可以摸四张牌,然后将四张牌依次置于场上或牌堆两端(对所有角色可见)。装备区牌数因此变化的角色复原其武将牌。',
dc_wangjun:'王濬',
dcmianyao:'免徭',
dcmianyao_info:'摸牌阶段结束时,你可以展示手牌中点数最小的一张牌并将此牌随机插入牌堆中。然后你于此回合结束时摸等同于此牌点数的牌。',
dcchangqu:'长驱',
dcchangqu_info:'出牌阶段限一次。你可以开一艘战舰(你从你的上家或下家开始选择任意名座位连续的其他角色,且起点角色获得“战舰”标记)。这些角色按照你选择的顺序依次执行:{若其有本次获得的“战舰”其选择一项1.交给你X张手牌然后将“战舰”移动给你选择的下一名目标角色2.令其下次受到的属性伤害值+X然后横置X为本次〖长驱〗中选项一被选择过的次数且至少为1。}。',
dctongye:'统业',
dctongye_info:'锁定技。游戏开始时或一名角色死亡后若场上势力数不大于4你的手牌上限+3不大于3你的攻击范围+3不大于2你使用【杀】的次数上限+3不大于1你摸牌阶段额定摸牌数+3。',
sp2_yinyu:'隐山之玉',
sp2_huben:'百战虎贲',

View File

@ -8804,6 +8804,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
mingjian:{
audio:2,
audioname:['re_caorui'],
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
@ -8916,6 +8918,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
huituo:{
audio:2,
audioname:['re_caorui'],
trigger:{player:'damageEnd'},
direct:true,
content:function(){
@ -13587,13 +13590,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xunyou:['re_xunyou','xunyou'],
xuezong:['tw_xuezong','xuezong'],
huanghao:['huanghao','dc_huanghao','old_huanghao'],
caorui:['caorui','old_caorui'],
caorui:['re_caorui','caorui','old_caorui'],
sunziliufang:['dc_sunziliufang','sunziliufang'],
liyan:['liyan','old_liyan'],
zhangsong:['re_zhangsong','zhangsong'],
},
translate:{
old_huaxiong:'华雄',
old_huaxiong:'将华雄',
old_huaxiong_ab:'华雄',
yufan:'虞翻',
xushu:'旧徐庶',
caozhi:'曹植',
@ -13653,7 +13657,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xin_yujin:'节钺于禁',
xin_liru:'李儒',
guohuanghou:'郭皇后',
liuyu:'刘虞',
liuyu:'OL刘虞',
sundeng:'孙登',
liyan:'李严',
sunziliufang:'孙资刘放',

View File

@ -3615,7 +3615,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xijue_xiaoguo:'骁果',
xijue_xiaoguo_info:'其他角色的结束阶段开始时你可以弃置一张基本牌令该角色选择一项1.弃置一张装备牌然后你摸一张牌2.受到你对其造成的1点伤害。',
xijue_xiaoguo_info_guozhan:'其他角色的结束阶段开始时你可以弃置一张基本牌令该角色选择一项1.弃置一张装备牌2.受到你对其造成的1点伤害。',
duyu:'杜预',
duyu:'OL杜预',
sanchen:'三陈',
sanchen_info:'出牌阶段限一次。你可选择一名本回合内未选择过的角色。其摸三张牌,然后弃置三张牌。若其未以此法弃置牌或以此法弃置的牌的类别均不相同,则其摸一张牌且〖三陈〗于此阶段内使用次数上限+1。',
sanchen_info_guozhan:'出牌阶段,你可选择一名本回合内未选择过的角色。其摸三张牌,然后弃置三张牌。若其未以此法弃置牌或以此法弃置的牌的类别均不相同,则其摸一张牌且你获得技能〖破竹〗直到回合结束。否则你本阶段内不能再发动〖三陈〗。',
@ -3754,7 +3754,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qimei_info:'准备阶段,你可以选择一名其他角色。你获得如下效果直到下回合开始:①每回合限一次,当你或其获得牌/失去手牌后,若你与其手牌数相等,则另一名角色摸一张牌。②每回合限一次,当你或其的体力值变化后,若你与其体力值相等,则另一名角色摸一张牌。',
ybzhuiji:'追姬',
ybzhuiji_info:'出牌阶段开始时你可选择一项①摸两张牌并于出牌阶段结束时失去1点体力②回复1点体力并于出牌阶段结束时弃置两张牌。',
jin_yanghu:'羊祜',
jin_yanghu:'OL羊祜',
huaiyuan:'怀远',
huaiyuanx:'绥',
huaiyuan_info:'①游戏开始时,你将你的手牌标记为“绥”。②当你失去一张“绥”后,你令一名角色执行一项:⒈其的手牌上限+1。⒉其的攻击范围+1。⒊其摸一张牌。③当你死亡时你可令一名其他角色的手牌上限+X且攻击范围+YX和Y为你自己被执行过〖怀远②〗的选项一和选项二的次数。',

View File

@ -20,7 +20,7 @@ window.config={
zhinang_tricks:['guohe','wuxie','wuzhong','dongzhuxianji'],
connect_zhinang_tricks:['guohe','wuxie','wuzhong','dongzhuxianji'],
all:{
sgscharacters:['standard','shenhua','xinghuoliaoyuan','refresh','yijiang','sp','sp2','xianding','huicui','extra','old','mobile','shiji','tw','yingbian','offline','sb','clan','collab'],
sgscharacters:['standard','shenhua','xinghuoliaoyuan','refresh','yijiang','sp','sp2','xianding','huicui','extra','old','mobile','shiji','tw','yingbian','offline','jsrg','sb','clan','collab'],
sgscards:['standard','extra','sp','guozhan','zhulu','yingbian','yongjian'],
sgsmodes:['identity','guozhan','versus','doudizhu','single','brawl','connect'],
stockmode:['identity','guozhan','versus','boss','doudizhu','single','chess','stone','connect','brawl','tafang'],
@ -133,7 +133,7 @@ window.config={
sort:'type_sort',
cards:['standard','extra'],
characters:['standard','shenhua','sp','sp2','yijiang','refresh','xinghuoliaoyuan','mobile','extra','yingbian','sb','tw','offline','clan','collab','xianding','huicui','shiji'],
characters:['standard','shenhua','sp','sp2','yijiang','refresh','xinghuoliaoyuan','mobile','extra','yingbian','sb','tw','offline','clan','collab','xianding','huicui','shiji','jsrg'],
connect_characters:['diy'],
connect_cards:['huanlekapai','guozhan','sp','zhulu','yingbian','yongjian'],
plays:[],

View File

@ -38765,7 +38765,7 @@
}
intro.innerHTML=get.translation(rarity);
}
if((button.link=='xushu'||button.link=='xin_xushu')&&button.node&&button.node.name&&button.node.group){
if((button.link=='xushu'||button.link=='xin_xushu'||button.link=='jsrg_guanyu')&&button.node&&button.node.name&&button.node.group){
if(button.classList.contains('newstyle')){
button.node.name.dataset.nature='watermm';
button.node.group.dataset.nature='water';
@ -52943,7 +52943,7 @@
return false;
},
double:function(name,array){
if(!lib.character[name]||!lib.character[name][4]||name.indexOf('gz_')!=0&&name.indexOf('db_')!=0) return false;
if(!lib.character[name]||!lib.character[name][4]||name.indexOf('gz_')!=0&&name.indexOf('db_')!=0&&name.indexOf('jsrg_')!=0) return false;
for(var i of lib.character[name][4]){
if(i.indexOf('doublegroup:')==0){
if(!array) return true;
@ -54341,6 +54341,9 @@
else if(str2.indexOf('手杀')==0){
str2=str2.slice(2);
}
else if(str2.indexOf('新杀')==0){
str2=str2.slice(2);
}
else if(str2.indexOf('界')==0&&lib.characterPack.refresh&&lib.characterPack.refresh[str]){
str2=str2.slice(1);
}
@ -54374,6 +54377,9 @@
else if(str2.indexOf('手杀')==0){
str2=str2.slice(2);
}
else if(str2.indexOf('新杀')==0){
str2=str2.slice(2);
}
return str2;
},
slimName:function(str){
@ -54398,6 +54404,9 @@
else if(str2.indexOf('手杀')==0){
str2=str2.slice(2);
}
else if(str2.indexOf('新杀')==0){
str2=str2.slice(2);
}
return get.verticalStr(str2,true);
},
time:function(){

View File

@ -18,6 +18,7 @@ window.noname_package={
tw:'外服武将',
collab:'联动卡',
offline:'线下武将',
jsrg:'江山如故',
old:'怀旧',
diy:'DIY',
ddd:'3D精选',

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB