あさはかなり!
160
character/diy.js
|
@ -70,6 +70,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ns_yuanxi:['male','qun',4,['nsshengyan','nsdaizhan']],
|
||||
ns_caoshuang:['male','wei',4,['nsjiquan','nsfuwei']],
|
||||
|
||||
ns_lijue:['male','qun','4/6',['nsfeixiong','nscesuan']],
|
||||
ns_zhangji:['male','qun',4,['nslulve']],
|
||||
ns_fanchou:['male','qun',4,['nsyangwu']],
|
||||
ns_jiaxu:['male','qun',3,['nsyice','luanwu']],
|
||||
ns_zhangwei:['female','shu',3,['nsqiyue','nsxuezhu']],
|
||||
ns_chendao:['male','shu',4,['nsjianglie']],
|
||||
|
@ -172,7 +175,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao"],
|
||||
diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"],
|
||||
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha"],
|
||||
diy_yongjian:["ns_chendao","yj_caoang","ns_jiaxu"],
|
||||
diy_official:["ns_chendao","yj_caoang","ns_jiaxu","ns_lijue","ns_zhangji","ns_fanchou"],
|
||||
diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang'],
|
||||
},
|
||||
},
|
||||
|
@ -6364,6 +6367,144 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
|
||||
nsyangwu:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterCard:{suit:'heart'},
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&target.countCards('h')>0;
|
||||
},
|
||||
filter:function(event,player){
|
||||
var info=lib.skill.nsyangwu;
|
||||
return player.countCards('h',info.filterCard)&&game.hasPlayer(function(target){
|
||||
return info.filterTarget(null,player,target);
|
||||
});
|
||||
},
|
||||
check:function(card){
|
||||
var num=0;
|
||||
var player=_status.event.player;
|
||||
game.countPlayer(function(current){
|
||||
if(current!=player&&get.attitude(player,current)<0) num=Math.max(num,current.countCards('h')-player.countCards('h'));
|
||||
});
|
||||
return Math.ceil((num+1)/2)*2+4-get.value(card);
|
||||
},
|
||||
content:function(){
|
||||
var num=Math.ceil((target.countCards('h')-player.countCards('h'))/2);
|
||||
if(num) player.gainPlayerCard(target,true,'h',num,'visible');
|
||||
},
|
||||
ai:{
|
||||
order:4,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
return player.countCards('h')-target.countCards('h');
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
nslulve:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer(function(current){
|
||||
return current.countCards('e')>0&¤t.countCards('e')<=player.countCards('he');
|
||||
});
|
||||
},
|
||||
filterCard:function(){
|
||||
if(ui.selected.targets.length) return false;
|
||||
return true;
|
||||
},
|
||||
position:'he',
|
||||
selectCard:[1,Infinity],
|
||||
complexSelect:true,
|
||||
complexCard:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&target.countCards('e')>0&&ui.selected.cards.length==target.countCards('e');
|
||||
},
|
||||
check:function(card){
|
||||
var player=_status.event.player;
|
||||
if(game.hasPlayer(function(current){
|
||||
return current!=player&¤t.countCards('e')>0&&ui.selected.cards.length==current.countCards('e')&&get.damageEffect(current,player,player)>0;
|
||||
})) return 0;
|
||||
switch(ui.selected.cards.length){
|
||||
case 0:return 8-get.value(card);
|
||||
case 1:return 6-get.value(card);
|
||||
case 2:return 3-get.value(card);
|
||||
default:return 0;
|
||||
}
|
||||
},
|
||||
content:function(){
|
||||
target.damage('nocard');
|
||||
},
|
||||
ai:{
|
||||
damage:true,
|
||||
order:2,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
return get.damageEffect(target,player);
|
||||
}
|
||||
},
|
||||
expose:0.3
|
||||
}
|
||||
},
|
||||
nsfeixiong:{
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>0&&game.hasPlayer(function(current){
|
||||
return current!=player&&player.canCompare(current);
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('nsfeixiong'),function(card,player,target){
|
||||
return player!=target&&player.canCompare(target);
|
||||
}).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
var hs=player.getCards('h').sort(function(a,b){
|
||||
return b.number-a.number;
|
||||
});
|
||||
var ts=target.getCards('h').sort(function(a,b){
|
||||
return b.number-a.number;
|
||||
});
|
||||
if(!hs.length||!ts.length) return 0;
|
||||
if(hs[0].number>ts[0].number) return get.damageEffect(target,player,player);
|
||||
return 0;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.logSkill('nsfeixiong',target);
|
||||
player.chooseToCompare(target);
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
if(!result.tie){
|
||||
var targets=[player,target];
|
||||
if(result.bool) targets.reverse();
|
||||
targets[0].damage(targets[1]);
|
||||
}
|
||||
},
|
||||
},
|
||||
nscesuan:{
|
||||
trigger:{player:'damageBegin3'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
trigger.cancel();
|
||||
event.lose=player.loseMaxHp();
|
||||
'step 1'
|
||||
if(event.lose&&event.lose.loseHp) player.draw();
|
||||
},
|
||||
ai:{
|
||||
filterDamage:true,
|
||||
skillTagFilter:function(player,tag,arg){
|
||||
if(arg&&arg.player){
|
||||
if(arg.player.hasSkillTag('jueqing',false,player)) return false;
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
nsyice:{
|
||||
trigger:{
|
||||
player:'loseAfter',
|
||||
|
@ -6377,7 +6518,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var evt=event.getParent();
|
||||
if(evt.name!='orderingDiscard'||!evt.relatedEvent||evt.relatedEvent.player!=player||!['useCard','respond'].contains(evt.relatedEvent.name)) return false;
|
||||
}
|
||||
return event.cards.filterInD('d').length>0;
|
||||
return (event.cards2||event.cards).filterInD('d').length>0;
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
|
@ -6385,7 +6526,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var evt=trigger.getParent().relatedEvent;
|
||||
if((trigger.name=='discard'&&!trigger.delay)||evt&&evt.name=='respond') game.delayx();
|
||||
'step 1'
|
||||
var cards=trigger.cards.filterInD('d');
|
||||
var cards=(trigger.cards2||trigger.cards).filterInD('d');
|
||||
player.$gain2(cards);
|
||||
if(cards.length==1) event._result={bool:true,links:cards};
|
||||
else{
|
||||
|
@ -12161,10 +12302,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ns_jiaxu:'贾诩',
|
||||
nsyice:'遗策',
|
||||
nsyice_info:'锁定技,当你使用/打出/弃置的牌进入弃牌堆后,你将这些牌以任意顺序置于你的武将牌上,称为“策”。若这些“策”中有点数相同的牌,则你获得这两张牌中的所有牌,将这两张牌置于牌堆两端。若场上没有处于濒死状态的角色,则你对一名角色造成1点伤害。',
|
||||
ns_lijue:'李傕',
|
||||
ns_zhangji:'张济',
|
||||
nsfeixiong:'飞熊',
|
||||
nsfeixiong_info:'出牌阶段开始时,你可以和一名其他角色拼点。赢的角色对没赢的角色造成1点伤害。',
|
||||
nscesuan:'策算',
|
||||
nscesuan_info:'锁定技,当你受到伤害时,你防止此伤害并失去一点体力上限。若你因以此法失去体力上限导致体力值减少,则你摸一张牌。',
|
||||
nslulve:'掳掠',
|
||||
nslulve_info:'出牌阶段限一次,你可以弃置X张牌并选择一名装备区内有牌的其他角色,然后对其造成1点伤害(X为其装备区内的牌数)。',
|
||||
ns_fanchou:'樊稠',
|
||||
nsyangwu:'扬武',
|
||||
nsyangwu_info:'出牌阶段限一次,你可以弃置一张♥手牌并选择一名手牌数大于你的其他角色。你观看其手牌并获得其中的X张牌(X为其与你手牌数之差的一半且向上取整)。',
|
||||
diy_tieba:'吧友设计',
|
||||
diy_default:'常规',
|
||||
diy_key:'论外',
|
||||
diy_yongjian:'其他官方武将',
|
||||
diy_official:'其他官方武将',
|
||||
diy_yijiang:'设计比赛2020',
|
||||
diy_fakenews:'假新闻',
|
||||
diy_trashbin:'垃圾桶',
|
||||
|
|
|
@ -6,7 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
connect:true,
|
||||
characterSort:{
|
||||
mobile:{
|
||||
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan"],
|
||||
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu"],
|
||||
mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning"],
|
||||
mobile_sunben:["re_sunben"],
|
||||
mobile_standard:["xin_xiahoudun"],
|
||||
|
@ -16,7 +16,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
character:{
|
||||
xin_zhuran:['male','wu',4,['mobiledanshou'],['unseen']],
|
||||
simashi:['male','wei',4,['baiyi','jinglve','shanli']],
|
||||
yanghuiyu:['female','wei',3,['hongyi','quanfeng']],
|
||||
xin_zhuran:['male','wu',4,['mobiledanshou']],
|
||||
xin_gongsunzan:['male','qun',4,['xinyicong','qiaomeng']],
|
||||
dingyuan:['male','qun',4,['beizhu']],
|
||||
xin_jianyong:['male','shu',3,['xinqiaoshui','xinjyzongshi']],
|
||||
|
@ -77,6 +79,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']],
|
||||
},
|
||||
characterIntro:{
|
||||
simashi:'司马师(208年~255年3月23日),字子元,河内温县(今河南省温县)人。三国时期曹魏权臣,西晋王朝的奠基人之一,晋宣帝司马懿与宣穆皇后张春华的长子,晋文帝司马昭的同母兄,晋武帝司马炎的伯父。司马师沉着坚强,雄才大略,早年与夏侯玄、何晏齐名。高平陵政变后,以功封长平乡侯,旋加卫将军。司马懿死后,以抚军大将军辅政,独揽朝廷大权,次年升为大将军。掌权后,他制定选拔官吏的法规,命百官推荐贤才,整顿纲纪,使其各有职掌,朝野肃然。司马师也有卓越的军事才能,曾用计于新城之战击溃吴国诸葛恪的大军。嘉平六年(254年),魏帝曹芳与中书令李丰等人密谋除司马师,事情泄露,司马师杀死参与者,迫郭太后废曹芳,改立高贵乡公曹髦为帝。次年,亲自率兵平定毌丘俭、文钦之乱。回师途中病死,时年四十八岁,谥号“忠武”。后被追尊为晋景王。西晋建立后,被追尊为景皇帝,庙号世宗。',
|
||||
yanghuiyu:'羊徽瑜(214年-278年),泰山南城(今山东新泰)人,晋景帝司马师第三任妻子。羊徽瑜出身官宦世家泰山羊氏,她是南阳太守羊续的孙女,上党太守羊衜之女;其母为东汉名士左中郎将蔡邕之女、蔡文姬的姐妹。羊徽瑜聪慧贤德,嫁给司马师后未有子女。以司马师之弟司马昭的次子司马攸为继子。司马师死后,司马攸侍奉羊徽瑜非常孝顺。泰始元年(265年),司马昭长子司马炎受禅登基,建立西晋,追谥伯父司马师为景皇帝。泰始二年(266年),尊奉羊徽瑜为景皇后,因居弘训宫,故称弘训太后。咸宁四年(278年),羊徽瑜去世,时年六十五岁,谥号景献皇后,与司马师合葬峻平陵。',
|
||||
dingyuan:'丁原(?—189年),字建阳,兖州泰山郡南城县(山东省平邑县郑城镇)人。东汉末年军阀,官拜执金吾、并州刺史。任并州刺史期间,他亲近、善待主簿吕布,又调遣部下张杨、张辽等名将到洛阳任职。汉灵帝驾崩后,带兵进入洛阳,担任执金吾,并与大将军何进谋划诛杀十常侍,但不久事情败露,何进被宦官杀死。在宦官被诛灭之后,丁原与军阀董卓在废帝问题上意见不合产生矛盾,于是董卓诱使吕布将其杀害,其势力亦被吞并。',
|
||||
furong:'傅肜(róng)(?-222年),义阳(今湖北枣阳)人,三国时蜀汉将领。刘备攻伐吴国时,傅肜为别督。后刘备被陆逊击败,傅肜率部断后,奋战至死。死前怒斥道:“吴狗!何有汉将军降者!”',
|
||||
zhengxuan:'郑玄(127年-200年),字康成。北海郡高密县(今山东省高密市)人。东汉末年儒家学者、经学大师。郑玄曾入太学攻《京氏易》、《公羊春秋》及《三统历》、《九章算术》,又从张恭祖学《古文尚书》、《周礼》和《左传》等,最后从马融学古文经。游学归里之后,复客耕东莱,聚徒授课,弟子达数千人,家贫好学,终为大儒。党锢之祸起,遭禁锢,杜门注疏,潜心著述。晚年守节不仕,却遭逼迫从军,最终病逝于元城,年七十四。郑玄治学以古文经学为主,兼采今文经学。他遍注儒家经典,以毕生精力整理古代文化遗产,使经学进入了一个“小统一时代”。著有《天文七政论》、《中侯》等书,共百万余言,世称“郑学”,为汉代经学的集大成者。唐贞观年间,列郑玄于二十二“先师”之列,配享孔庙。宋代时被追封为高密伯。后人建有郑公祠以纪念。',
|
||||
|
@ -298,8 +302,298 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
skills:["rw_zhuge_skill"],
|
||||
},
|
||||
},
|
||||
characterFilter:{},
|
||||
characterFilter:{
|
||||
simashi:function(mode){
|
||||
return !['boss','chess','tafang','stone','versus'].contains(mode);
|
||||
},
|
||||
},
|
||||
skill:{
|
||||
//司马师夫妇
|
||||
//垃圾
|
||||
baiyi:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:lib.filter.notMe,
|
||||
selectTarget:2,
|
||||
limited:true,
|
||||
skillAnimation:false,
|
||||
//animationColor:'thunder',
|
||||
filter:function(event,player){
|
||||
return player.isDamaged()&&game.players.length>2;
|
||||
},
|
||||
multitarget:true,
|
||||
multiline:true,
|
||||
changeSeat:true,
|
||||
contentBefore:function(){
|
||||
player.$fullscreenpop('败移','thunder');
|
||||
},
|
||||
content:function(){
|
||||
player.awakenSkill('baiyi');
|
||||
game.broadcastAll(function(target1,target2){
|
||||
game.swapSeat(target1,target2);
|
||||
},targets[0],targets[1])
|
||||
},
|
||||
},
|
||||
jinglve:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
if(player.hasSkill('jinglve2')) return false;
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=player&¤t.countCards('h')>0;
|
||||
});
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&target.countCards('h')>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(!player.storage.jinglve4) player.storage.jinglve4=[];
|
||||
player.storage.jinglve4.add(target);
|
||||
player.chooseButton(['选择一张牌作为「死士」',target.getCards('h')],true).set('ai',function(button){
|
||||
var target=_status.event.getParent().target;
|
||||
var card=button.link;
|
||||
var val=target.getUseValue(card);
|
||||
if(val>0) return val;
|
||||
return get.value(card);
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.storage.jinglve2=target;
|
||||
player.storage.jinglve3=result.links[0];
|
||||
player.addSkill('jinglve2');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:12,
|
||||
result:{
|
||||
target:-1,
|
||||
},
|
||||
},
|
||||
},
|
||||
jinglve2:{
|
||||
mark:true,
|
||||
intro:{
|
||||
name:'死士',
|
||||
mark:function(dialog,content,player){
|
||||
dialog.addText('记录目标');
|
||||
dialog.add([content]);
|
||||
if(player==game.me||player.isUnderControl()){
|
||||
dialog.addText('死士牌');
|
||||
dialog.add([player.storage.jinglve3]);
|
||||
}
|
||||
},
|
||||
},
|
||||
onremove:function(player){
|
||||
delete player.storage.jinglve2;
|
||||
delete player.storage.jinglve3;
|
||||
},
|
||||
trigger:{global:['dieBegin','loseAfter']},
|
||||
silent:true,
|
||||
lastDo:true,
|
||||
charlotte:true,
|
||||
filter:function(event,player){
|
||||
if(event.player!=player.storage.jinglve2) return false;
|
||||
return event.name=='die'||(event.cards.contains(player.storage.jinglve3)&&event.getParent().name!='useCard');
|
||||
},
|
||||
content:function(){
|
||||
player.removeSkill('jinglve2');
|
||||
},
|
||||
group:'jinglve3',
|
||||
},
|
||||
jinglve3:{
|
||||
audio:'jinglve',
|
||||
trigger:{global:['loseAfter','useCard','phaseAfter']},
|
||||
filter:function(event,player){
|
||||
if(event.player!=player.storage.jinglve2) return false;
|
||||
if(event.name=='phase') return event.player.getCards('hej').contains(player.storage.jinglve3);
|
||||
if(!event.cards.contains(player.storage.jinglve3)) return false;
|
||||
return event.name=='useCard'||get.position(player.storage.jinglve3,true)=='d';
|
||||
},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
if(trigger.name=='useCard'){
|
||||
trigger.all_excluded=true;
|
||||
trigger.targets.length=0;
|
||||
}
|
||||
else{
|
||||
var next=player.gain(player.storage.jinglve3,trigger.name=='phase'?'giveAuto':'gain2');
|
||||
if(trigger.name=='phase') next.source=trigger.player;
|
||||
}
|
||||
player.removeSkill('jinglve2');
|
||||
},
|
||||
},
|
||||
shanli:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
juexingji:true,
|
||||
forced:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'thunder',
|
||||
filter:function(event,player){
|
||||
return player.storage.baiyi&&player.getStorage('jinglve4').length>1;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.awakenSkill('shanli');
|
||||
player.loseMaxHp();
|
||||
player.chooseTarget(true,'选择【擅立】的目标').set('ai',function(target){
|
||||
return get.attitude(_status.event.player,target);
|
||||
});
|
||||
'step 1'
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.line(target,'green');
|
||||
game.log(player,'拥立',target);
|
||||
var list=[];
|
||||
if(!_status.characterlist){
|
||||
if(_status.connectMode) var list=get.charactersOL();
|
||||
else{
|
||||
var list=[];
|
||||
for(var i in lib.character){
|
||||
if(lib.filter.characterDisabled2(i)||lib.filter.characterDisabled(i)) continue;
|
||||
list.push(i);
|
||||
}
|
||||
}
|
||||
game.countPlayer2(function(current){
|
||||
list.remove(current.name);
|
||||
list.remove(current.name1);
|
||||
list.remove(current.name2);
|
||||
if(current.storage.rehuashen&¤t.storage.rehuashen.character) list.removeArray(current.storage.rehuashen.character)
|
||||
});
|
||||
_status.characterlist=list;
|
||||
}
|
||||
_status.characterlist.randomSort();
|
||||
var chara=[];
|
||||
var skills=[];
|
||||
for(var i of _status.characterlist){
|
||||
if(i=='key_yuri') continue;
|
||||
var character=lib.character[i];
|
||||
if(character&&character[3]){
|
||||
for(var j of character[3]){
|
||||
if(skills.contains(j)||j=='yuri_wangxi'||target.hasSkill('j')) continue;
|
||||
var info=get.info(j);
|
||||
if(info&&info.zhuSkill){
|
||||
skills.add(j);
|
||||
chara.add(i);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(skills.length>=3) break;
|
||||
}
|
||||
if(!skills.length){event.finish();return}
|
||||
event.chara=chara;
|
||||
event.skills=skills;
|
||||
player.chooseControl(skills).set('dialog',['选择令'+get.translation(target)+'获得一个技能',[chara,'character']]);
|
||||
'step 2'
|
||||
target.addSkillLog(result.control);
|
||||
target.storage.zhuSkill_shanli=[result.control];
|
||||
target.setAvatarQueue(target.name1||target.name,[event.chara[event.skills.indexOf(result.control)]]);
|
||||
},
|
||||
//表情暂时来不及做
|
||||
},
|
||||
hongyi:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return player.countCards('he')>=Math.min(2,game.dead.length);
|
||||
},
|
||||
selectCard:function(){
|
||||
return Math.min(2,game.dead.length);
|
||||
},
|
||||
filterCard:true,
|
||||
filterTarget:lib.filter.notMe,
|
||||
check:function(card){
|
||||
var num=Math.min(2,game.dead.length);
|
||||
if(!num) return 1;
|
||||
if(num==1) return 7-get.value(card);
|
||||
return 5-get.value(card);
|
||||
},
|
||||
position:'he',
|
||||
content:function(){
|
||||
player.addTempSkill('hongyi2',{player:'phaseBeginStart'});
|
||||
player.storage.hongyi2.add(target);
|
||||
player.markSkill('hongyi2');
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.hasJudge('lebu')) return -0.5;
|
||||
return -1-target.countCards('h');
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
hongyi2:{
|
||||
audio:'hongyi',
|
||||
trigger:{global:'damageBegin1'},
|
||||
charlotte:true,
|
||||
forced:true,
|
||||
logTarget:'source',
|
||||
filter:function(event,player){
|
||||
return player.storage.hongyi2.contains(event.source);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
trigger.source.judge();
|
||||
'step 1'
|
||||
if(result.color=='black') trigger.num--;
|
||||
else trigger.player.draw();
|
||||
},
|
||||
onremove:true,
|
||||
intro:{
|
||||
content:'已选中$为技能目标',
|
||||
},
|
||||
init:function(player,skill){
|
||||
if(!player.storage[skill]) player.storage[skill]=[];
|
||||
},
|
||||
},
|
||||
quanfeng:{
|
||||
audio:2,
|
||||
trigger:{global:'die'},
|
||||
filter:function(event,player){
|
||||
return event.player.getStockSkills('仲村由理','天下第一').filter(function(skill){
|
||||
var info=get.info(skill);
|
||||
return info&&!info.juexingji&&!info.zhuSkill&&!info.charlotte&&!info.limited;
|
||||
}).length>0;
|
||||
},
|
||||
logTarget:'player',
|
||||
skillAnimation:true,
|
||||
limited:true,
|
||||
forced:true,
|
||||
animationColor:'thunder',
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.awakenSkill('quanfeng');
|
||||
var list=trigger.player.getStockSkills('仲村由理','天下第一').filter(function(skill){
|
||||
var info=get.info(skill);
|
||||
return info&&!info.juexingji&&!info.zhuSkill&&!info.charlotte&&!info.limited;
|
||||
});
|
||||
if(list.length==1) event._result={control:list[0]};
|
||||
else player.chooseControl(list).set('prompt','选择获得'+get.translation(trigger.player)+'的一个技能').set('forceDie',true).set('ai',function(){
|
||||
return list.randomGet();
|
||||
});
|
||||
'step 1'
|
||||
player.addSkillLog(result.control);
|
||||
game.broadcastAll(function(skill){
|
||||
var list=[skill];game.expandSkills(list);
|
||||
for(var i of list){
|
||||
var info=lib.skill[i];
|
||||
if(!info) continue;
|
||||
if(!info.audioname2) info.audioname2={};
|
||||
info.audioname2.yanghuiyu='quanfeng';
|
||||
}
|
||||
},result.control);
|
||||
player.gainMaxHp();
|
||||
player.recover();
|
||||
},
|
||||
},
|
||||
//手杀朱然
|
||||
//设计师你改技能有瘾🐴
|
||||
mobiledanshou:{
|
||||
|
@ -307,42 +601,42 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:2,
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
if(player.countCards('he')>=event.player.countCards('h')) return true;
|
||||
return game.hasPlayer2(function(current){
|
||||
return current.getHistory('useCard',function(evt){
|
||||
return get.type(evt.card)!='equip'&&evt.targets.contains(player);
|
||||
if(player==event.player) return false;
|
||||
var num=event.player.getHistory('useCard',function(evt){
|
||||
return evt.targets.contains(player);
|
||||
}).length;
|
||||
});
|
||||
return num==0||event.player.isAlive()&&num<=player.countCards('he');
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=[];
|
||||
event.addIndex=0;
|
||||
var num=game.countPlayer2(function(current){
|
||||
return current.getHistory('useCard',function(evt){
|
||||
return get.type(evt.card)!='equip'&&evt.targets.contains(player);
|
||||
var num=trigger.player.getHistory('useCard',function(evt){
|
||||
return evt.targets.contains(player);
|
||||
}).length;
|
||||
});
|
||||
event.num=num;
|
||||
if(num) list.push('摸'+get.cnNumber(num)+'张牌');
|
||||
else event.addIndex++;
|
||||
var num2=trigger.player.countCards('h');
|
||||
event.num2=num2;
|
||||
if(num2&&player.countCards('he')>=num2) list.push('弃置'+get.cnNumber(num2)+'张牌并对'+get.translation(trigger.player)+'造成1点伤害');
|
||||
else if(!num2) list.push('对'+get.translation(trigger.player)+'造成1点伤害');
|
||||
player.chooseControl('cancel2').set('prompt',get.prompt('mobiledanshou')).set('choiceList',list);
|
||||
if(num==0){
|
||||
if(player.hasSkill('mobiledanshou')) event._result={bool:true};
|
||||
else player.chooseBool('是否发动【胆守】摸一张牌?',lib.translate.mobiledanshou_info);
|
||||
}
|
||||
else event.goto(2);
|
||||
'step 1'
|
||||
if(result.control!='cancel2'){
|
||||
player.logSkill('mobiledanshou',trigger.player);
|
||||
if(result.index+event.addIndex==0){
|
||||
player.draw(num);
|
||||
if(result.bool){
|
||||
player.logSkill('mobiledanshou');
|
||||
player.draw();
|
||||
}
|
||||
event.finish();
|
||||
}
|
||||
else if(event.num2) player.chooseToDiscard('he',true,event.num2);
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
player.chooseToDiscard(num,get.prompt('mobiledanshou',trigger.player),'弃置'+get.translation(num)+'张牌并对其造成1点伤害','he').set('ai',function(card){
|
||||
if(!_status.event.goon) return 0;
|
||||
var num=_status.event.getParent().num;
|
||||
if(num==1) return 8-get.value(card);
|
||||
if(num==2) return 6.5-get.value(card);
|
||||
return 5-get.value(card);
|
||||
}).set('goon',get.damageEffect(trigger.player,player,player)>0).logSkill=['mobiledanshou',trigger.player];
|
||||
'step 3'
|
||||
if(result.bool){
|
||||
player.addExpose(0.2);
|
||||
trigger.player.damage();
|
||||
}
|
||||
},
|
||||
},
|
||||
//丁原
|
||||
|
@ -2723,7 +3017,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(card) cards.push(card);
|
||||
else{
|
||||
var card=get.cardPile(function(x){
|
||||
return !cards.contains(card);
|
||||
return !cards.contains(x);
|
||||
});
|
||||
if(card) cards.push(card);
|
||||
}
|
||||
|
@ -3421,7 +3715,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt('liezhi'),'弃置至多两名角色区域内的各一张牌',[1,2],function(card,player,target){
|
||||
player.chooseTarget(get.prompt('liezhi'),'弃置至多两名其他角色区域内的各一张牌',[1,2],function(card,player,target){
|
||||
return target!=player&&target.countDiscardableCards(player,'hej')>0;
|
||||
}).ai=function(target){
|
||||
var player=_status.event.player;
|
||||
|
@ -5911,7 +6205,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
shouye:'守邺',
|
||||
shouye_info:'每回合限一次。当其他角色使用牌指定你为唯一目标时,你可以与其进行【对策】。若你赢,则你取消此牌的目标,且你于此牌结算完成后获得其对应的所有实体牌。',
|
||||
liezhi:'烈直',
|
||||
liezhi_info:'准备阶段,你可以依次弃置至多两名角色区域内的各一张牌。若你受到过伤害,则〖烈直〗于你的下个回合无效。',
|
||||
liezhi_info:'准备阶段,你可以依次弃置至多两名其他角色区域内的各一张牌。若你受到过伤害,则〖烈直〗于你的下个回合无效。',
|
||||
|
||||
xinzhanyi:'战意',
|
||||
xinzhanyi_info:'出牌阶段限一次,你可以弃置一张牌并失去1点体力,然后根据你弃置的牌获得以下效果直到回合结束:基本牌,你可以将一张基本牌当作杀、酒或桃使用,且你本回合第一次以此法使用的牌的回复值/伤害值+1;锦囊牌,摸三张牌且你使用的牌不能被【无懈可击】响应;装备牌,你使用【杀】指定目标角色后,其弃置两张牌,然后你获得其中的一张。',
|
||||
|
@ -6071,7 +6365,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
liechi_info:'锁定技,当你进入濒死状态时,伤害来源弃置一张牌。',
|
||||
xin_liaohua:'手杀廖化',
|
||||
redangxian:'当先',
|
||||
redangxian_info:'锁定技,回合开始时,你从弃牌堆中获得一张【杀】并进行一个额外的准备阶段。',
|
||||
redangxian_info:'锁定技,回合开始时,你从弃牌堆中获得一张【杀】并进行一个额外的出牌阶段。',
|
||||
refuli:'伏枥',
|
||||
refuli_info:'限定技,当你处于濒死状态时,你可以将体力值回复至X点(X为势力数)。然后若你的体力值为全场唯一最多,你翻面。',
|
||||
xin_caozhang:'手杀曹彰',
|
||||
|
@ -6090,7 +6384,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
beizhu_info:'出牌阶段限一次,你可以观看一名其他角色的手牌。若其中:没有【杀】,你弃置其一张牌,然后你可令其获得牌堆中的一张【杀】;有【杀】,其依次对你使用这些【杀】,当你因此受到1点伤害后,你摸一张牌。',
|
||||
xin_zhuran:'手杀朱然',
|
||||
mobiledanshou:'胆守',
|
||||
mobiledanshou_info:'一名角色的结束阶段开始时,你可选择一项:①摸X张牌(X为本回合内目标包含你的非装备牌的数量)。②弃置Y张牌并对当前回合角色造成1点伤害(Y为其手牌数)。',
|
||||
mobiledanshou_info:'一名其他角色的结束阶段开始时,若X:为0,你摸一张牌;不等于0,你可弃置X张牌并对其造成1点伤害(X为其本回合内使用的目标包含你的牌的数量)',
|
||||
yanghuiyu:'羊徽瑜',
|
||||
hongyi:'弘仪',
|
||||
hongyi2:'弘仪',
|
||||
hongyi_info:'出牌阶段限一次,你可以弃置X张牌并选择一名其他角色(X为场上已阵亡的角色数且至多为2)。你的下回合开始前,该角色造成伤害时进行判定,若结果为:黑色,此伤害-1。红色,受到伤害的角色摸一张牌。',
|
||||
quanfeng:'劝封',
|
||||
quanfeng_info:'锁定技,限定技,一名角色死亡时,你选择获得其的一个技能(主公技,限定技,觉醒技,带有Charlotte标签的技能除外),然后加1点体力上限并回复1点体力。',
|
||||
simashi:'司马师',
|
||||
baiyi:'败移',
|
||||
baiyi_info:'限定技,出牌阶段,若你已受伤,你可以交换两名角色的座次。',
|
||||
jinglve:'景略',
|
||||
jinglve2:'景略',
|
||||
jinglve3:'景略',
|
||||
jinglve_info:'出牌阶段限一次,你可以观看一名其他角色的手牌,将其中一张牌标记为「死士」。当其使用对应的实体牌中包含「死士」的牌时,你取消此牌的所有目标。当「死士」牌不因使用而进入弃牌堆,或其回合结束后,若「死士」牌仍在其区域内,则你获得此牌。',
|
||||
shanli:'擅立',
|
||||
shanli_info:'觉醒技,准备阶段,若你已发动过〖败移〗且对至少两名角色发动过〖景略〗,则你减1点体力上限并选择一名其他角色。系统随机选择三个不为〖忘隙(仲村由理)〗的主公技,然后你选择其中一个,令其获得之。',
|
||||
mobile_standard:'手杀异构·标准包',
|
||||
mobile_shenhua:'手杀异构·神话再临',
|
||||
mobile_yijiang1:'手杀异构·一将成名',
|
||||
|
|
1542
character/rank.js
|
@ -4126,8 +4126,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:'xinleiji',
|
||||
trigger:{player:'judgeAfter'},
|
||||
direct:true,
|
||||
disableReason:['暴虐','助祭','弘仪'],
|
||||
filter:function(event,player){
|
||||
return event.judgestr!='暴虐'&&event.judgestr!='助祭'&&['spade','club'].contains(event.result.suit);
|
||||
return !lib.skill.xinleiji_misa.disableReason.contains(event.judgestr)&&['spade','club'].contains(event.result.suit);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
|
@ -7957,7 +7958,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
olzhiba2:'制霸',
|
||||
xinleiji:'雷击',
|
||||
xinguidao:'鬼道',
|
||||
xinleiji_info:'①当你使用或打出【闪】或【闪电】时,你可以进行判定。<br>②当你不因〖暴虐〗或〖助祭〗而进行的判定的判定牌生效后,若结果为:黑桃,你可对一名其他角色造成2点雷电伤害;梅花:你回复1点体力并可对一名其他其他角色造成1点雷电伤害。',
|
||||
xinleiji_info:'①当你使用或打出【闪】或【闪电】时,你可以进行判定。<br>②当你不因〖暴虐〗或〖助祭〗或〖弘仪〗而进行的判定的判定牌生效后,若结果为:黑桃,你可对一名其他角色造成2点雷电伤害;梅花:你回复1点体力并可对一名其他其他角色造成1点雷电伤害。',
|
||||
xinguidao_info:'一名角色的判定牌生效前,你可以打出一张黑色牌作为判定牌并获得原判定牌。若你以此法打出的牌为黑桃2-9,则你摸一张牌。',
|
||||
reqiangxi:"强袭",
|
||||
"reqiangxi_info":"出牌阶段对每名其他角色限一次,你可以选择一项:1. 失去一点体力并对你攻击范围内的一名其他角色造成一点伤害;2. 弃置一张武器牌并对你攻击范围内的一名其他角色造成一点伤害。",
|
||||
|
|
|
@ -563,8 +563,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
event.finish();
|
||||
}else{
|
||||
var prompt;
|
||||
if(event.num==3) prompt="罪论:请按顺将卡牌置于牌堆顶(先选择的在上)";
|
||||
else prompt="罪论:请按顺将"+get.cnNumber(event.num)+"张卡牌置于牌堆顶(先选择的在上),然后获得其余的牌。";
|
||||
if(event.num==3) prompt="罪论:请按顺序将卡牌置于牌堆顶(先选择的在上)";
|
||||
else prompt="罪论:请按顺序将"+get.cnNumber(event.num)+"张卡牌置于牌堆顶(先选择的在上),然后获得其余的牌。";
|
||||
player.chooseCardButton(event.num,true,event.cards,prompt).set('ai',function(button){
|
||||
var player=_status.event.player;
|
||||
var next=player.getNext();
|
||||
|
|
|
@ -580,7 +580,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var info=get.info(skill);
|
||||
return info&&!info.juexingji&&!info.zhuSkill&&!info.charlotte&&!info.limited;
|
||||
});
|
||||
if(!list.length) event._result={control:list[0]};
|
||||
if(list.length==1) event._result={control:list[0]};
|
||||
else trigger.player.chooseControl(list).set('prompt','选择令'+get.translation(player)+'获得一个技能').set('forceDie',true).set('ai',function(){
|
||||
return list.randomGet();
|
||||
});
|
||||
|
@ -613,7 +613,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var info=get.info(skill);
|
||||
return info&&!info.juexingji&&!info.zhuSkill&&!info.charlotte&&!info.limited;
|
||||
});
|
||||
if(!list.length) event._result={control:list[0]};
|
||||
if(list.length==1) event._result={control:list[0]};
|
||||
else trigger.player.chooseControl(list).set('prompt','选择令'+get.translation(player)+'获得一个技能').set('forceDie',true).set('ai',function(){
|
||||
return list.randomGet();
|
||||
});
|
||||
|
@ -12404,7 +12404,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return player.hasSkill('duwu2')==false&&game.hasPlayer(function(current){
|
||||
return current.hp<=player.countCards('he')&&player.inRange(current);
|
||||
return current.hp>0&¤t.hp<=player.countCards('he')&&player.inRange(current);
|
||||
});
|
||||
},
|
||||
filterCard:function(){
|
||||
|
@ -12416,12 +12416,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
complexSelect:true,
|
||||
complexCard:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&player.inRange(target)&&ui.selected.cards.length==target.hp;
|
||||
return target!=player&&target.hp>0&&player.inRange(target)&&ui.selected.cards.length==target.hp;
|
||||
},
|
||||
check:function(card){
|
||||
var player=_status.event.player;
|
||||
if(game.hasPlayer(function(current){
|
||||
return current!=player&&player.inRange(current)&&ui.selected.cards.length==current.hp&&get.damageEffect(current,player,player)>0;
|
||||
return current!=player&¤t.hp>0&&player.inRange(current)&&ui.selected.cards.length==current.hp&&get.damageEffect(current,player,player)>0;
|
||||
})) return 0;
|
||||
switch(ui.selected.cards.length){
|
||||
case 0:return 8-get.value(card);
|
||||
|
|
|
@ -4,7 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
name:'sp2',
|
||||
connect:true,
|
||||
character:{
|
||||
liubian:['male','qun',3,['shiyuan','dushi'],['unseen']],
|
||||
liubian:['male','qun',3,['shiyuan','dushi']],
|
||||
xin_baosanniang:['female','shu',3,['xinfu_wuniang','decadexushen']],
|
||||
re_hejin:['male','qun',4,['spmouzhu']],
|
||||
hansui:['male','qun',4,['spniluan','spweiwu']],
|
||||
|
@ -67,7 +67,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sp_baigei:['re_panfeng','xingdaorong','caoxing'],
|
||||
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
|
||||
sp_huangjin:['liuhong','zhujun','re_hejin','hansui'],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_xinxianying','ol_yujin','re_maliang','xin_baosanniang'],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_xinxianying','ol_yujin','re_maliang','xin_baosanniang','liubian'],
|
||||
}
|
||||
},
|
||||
skill:{
|
||||
|
@ -792,6 +792,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
juanhui2:{
|
||||
charlotte:true,
|
||||
mark:true,
|
||||
mod:{
|
||||
cardUsable:function(card){
|
||||
if(card.name=='sha'&&_status.event.skill=='juanhui2_backup') return Infinity;
|
||||
},
|
||||
},
|
||||
intro:{
|
||||
markcount:function(storage,player){
|
||||
return player.getStorage('juanhui3').length;
|
||||
|
@ -813,7 +818,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
for(var i of vcard){
|
||||
if(i[2]=='sha'&&i[3]) str+=get.translation(i[3]);
|
||||
str+=get.translation(i[2]);
|
||||
str+='、'
|
||||
str+='、';
|
||||
}
|
||||
str=str.slice(0,str.length-1);
|
||||
}
|
||||
|
@ -827,7 +832,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
group:'juanhui3',
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return player.getStorage('juanhui3').length>0;
|
||||
return player.getStorage('juanhui3').length>0&&player.countCards('h')>0;
|
||||
},
|
||||
chooseButton:{
|
||||
dialog:function(event,player){
|
||||
|
@ -1417,7 +1422,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
check:function(button){
|
||||
var player=_status.event.player;
|
||||
if(player.countCards('h',button.link[2])) return 0;
|
||||
if(_status.event.getParent().type!='phase') return 1;
|
||||
if(_status.event.getParent().type!='phase'&&!_status.event.getParent().lvli6) return 1;
|
||||
return player.getUseValue({name:button.link[2]});
|
||||
},
|
||||
backup:function(links,player){
|
||||
|
@ -4696,6 +4701,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player:"phaseZhunbeiBegin",
|
||||
},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=player&¤t.hp<=player.hp;
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseTarget(get.prompt('xinfu_langxi'),'对一名体力值不大于你的其他角色造成0-2点随机伤害',function(card,player,target){
|
||||
|
@ -5805,7 +5815,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"xinfu_tunjun":"屯军",
|
||||
"xinfu_tunjun_info":"限定技,出牌阶段,你可以选择一名角色,令其随机使用牌堆中的X张装备牌。(X为你发动过“掠命”的次数)",
|
||||
"xinfu_tanbei":"贪狈",
|
||||
"xinfu_tanbei_info":"出牌阶段限一次,你可以令一名其他角色选择一项:<br>1.令你随机获得其区域内的一张牌,本回合内你不能对其使用牌。<br>2.令你此回合内对其使用牌没有次数与距离限制。",
|
||||
"xinfu_tanbei_info":"出牌阶段限一次,你可以令一名其他角色选择一项:1.令你随机获得其区域内的一张牌,本回合内你不能对其使用牌。2.令你此回合内对其使用牌没有次数与距离限制。",
|
||||
"xinfu_sidao":"伺盗",
|
||||
xinfu_sidaox:'伺盗',
|
||||
"xinfu_sidao_info":"出牌阶段限一次,当你对一名其他角色连续使用两张牌后,你可以将一张手牌当做【顺手牵羊】对其使用。",
|
||||
|
@ -5997,7 +6007,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
hmmanyi_info:'锁定技,【南蛮入侵】对你无效。',
|
||||
mansi_viewas:'蛮嗣',
|
||||
mansi:'蛮嗣',
|
||||
mansi_info:'出牌阶段限一次,你可以将所有手牌【南蛮入侵】使用;当有角色受到【南蛮入侵】的伤害后,你摸一张牌。',
|
||||
mansi_info:'出牌阶段限一次,你可以将所有手牌当做【南蛮入侵】使用;当有角色受到【南蛮入侵】的伤害后,你摸一张牌。',
|
||||
souying:'薮影',
|
||||
souying_info:'每回合限一次,当你对其他角色(或其他角色对你)使用【杀】或普通锦囊牌指定唯一目标后,若此牌不是本回合你对其(或其对你)使用的第一张【杀】或普通锦囊牌,你可以弃置一张牌,获得此牌对应的所有实体牌(或令此牌对你无效)。',
|
||||
zhanyuan:'战缘',
|
||||
|
@ -6086,7 +6096,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
decadezhennan_info:"当你成为锦囊牌的目标后,若此牌的目标数大于1,则你可以对一名其他角色造成1点伤害。",
|
||||
liubian:'刘辩',
|
||||
shiyuan:'诗怨',
|
||||
shiyuan_info:'每回合每项限一次, 当你成为其他角色使用牌的目标后: 1.若其体力值比你多,你摸三张牌; 2.若其体力值与你相同,你摸两张牌; 3.若其体力值比你少,你摸一张牌。',
|
||||
shiyuan_info:'每回合每项限一次,当你成为其他角色使用牌的目标后:①若其体力值大于你,你摸三张牌。②若其体力值等于你,你摸两张牌。③若其体力值小于你,你摸一张牌。',
|
||||
dushi:'毒逝',
|
||||
dushi_info:'锁定技,你处于濒死状态时,其他角色不能对你使用【桃】。你死亡时,你选择一名其他角色获得〖毒逝〗。',
|
||||
|
||||
|
|
|
@ -2267,7 +2267,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger.player.line(player);
|
||||
game.delay();
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
threaten:1.1,
|
||||
expose:0.25,
|
||||
},
|
||||
},
|
||||
qingxian:{
|
||||
audio:2,
|
||||
|
@ -7062,6 +7066,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
},
|
||||
qinwang_ai:{},
|
||||
zuoding:{
|
||||
trigger:{global:'useCardToPlayered'},
|
||||
filter:function(event,player){
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.106.1',
|
||||
'v1.9.106.2',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -635,6 +635,10 @@ window.noname_asset_list=[
|
|||
'audio/die/re_caoxiu.mp3',
|
||||
'audio/die/re_sunxiu.mp3',
|
||||
'audio/die/caoxing.mp3',
|
||||
'audio/die/gz_lukang.mp3',
|
||||
'audio/die/simashi.mp3',
|
||||
'audio/die/xin_zhuran.mp3',
|
||||
'audio/die/yanghuiyu.mp3',
|
||||
|
||||
'audio/skill/anguo1.mp3',
|
||||
'audio/skill/anguo2.mp3',
|
||||
|
@ -2804,6 +2808,22 @@ window.noname_asset_list=[
|
|||
'audio/skill/cxliushi2.mp3',
|
||||
'audio/skill/zhanwan1.mp3',
|
||||
'audio/skill/zhanwan2.mp3',
|
||||
'audio/skill/baiyi1.mp3',
|
||||
'audio/skill/baiyi2.mp3',
|
||||
'audio/skill/hongyi1.mp3',
|
||||
'audio/skill/hongyi2.mp3',
|
||||
'audio/skill/jinglve1.mp3',
|
||||
'audio/skill/jinglve2.mp3',
|
||||
'audio/skill/keshou1.mp3',
|
||||
'audio/skill/keshou2.mp3',
|
||||
'audio/skill/mobiledanshou1.mp3',
|
||||
'audio/skill/mobiledanshou2.mp3',
|
||||
'audio/skill/quanfeng1.mp3',
|
||||
'audio/skill/quanfeng2.mp3',
|
||||
'audio/skill/shanli1.mp3',
|
||||
'audio/skill/shanli2.mp3',
|
||||
'audio/skill/zhuwei1.mp3',
|
||||
'audio/skill/zhuwei2.mp3',
|
||||
|
||||
'font/huangcao.ttf',
|
||||
'font/shousha.ttf',
|
||||
|
@ -2833,6 +2853,7 @@ window.noname_asset_list=[
|
|||
'image/background/xiongxin_bg.jpg',
|
||||
'image/background/zhanyun_bg.jpg',
|
||||
'image/background/xinsha_bg.jpg',
|
||||
'image/background/xiaowu_bg.jpg',
|
||||
|
||||
'image/card/minguangkai.png',
|
||||
'image/card/db_atk1.jpg',
|
||||
|
@ -3454,6 +3475,13 @@ window.noname_asset_list=[
|
|||
'image/character/ns_caimao.jpg',
|
||||
'image/character/caoxing.jpg',
|
||||
'image/character/ns_jiaxu.jpg',
|
||||
'image/cahracter/liubian.jpg',
|
||||
'image/cahracter/ns_fanchou.jpg',
|
||||
'image/cahracter/ns_lijue.jpg',
|
||||
'image/cahracter/ns_zhangji.jpg',
|
||||
'image/cahracter/simashi.jpg',
|
||||
'image/cahracter/xin_zhuran.jpg',
|
||||
'image/cahracter/yanghuiyu.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
@ -4415,6 +4443,20 @@ window.noname_asset_list=[
|
|||
'image/emotion/xiaotao_emotion/18.gif',
|
||||
'image/emotion/xiaotao_emotion/19.gif',
|
||||
'image/emotion/xiaotao_emotion/20.gif',
|
||||
'image/emotion/xiaowu_emotion/1.gif',
|
||||
'image/emotion/xiaowu_emotion/2.gif',
|
||||
'image/emotion/xiaowu_emotion/3.gif',
|
||||
'image/emotion/xiaowu_emotion/4.gif',
|
||||
'image/emotion/xiaowu_emotion/5.gif',
|
||||
'image/emotion/xiaowu_emotion/6.gif',
|
||||
'image/emotion/xiaowu_emotion/7.gif',
|
||||
'image/emotion/xiaowu_emotion/8.gif',
|
||||
'image/emotion/xiaowu_emotion/9.gif',
|
||||
'image/emotion/xiaowu_emotion/10.gif',
|
||||
'image/emotion/xiaowu_emotion/11.gif',
|
||||
'image/emotion/xiaowu_emotion/12.gif',
|
||||
'image/emotion/xiaowu_emotion/13.gif',
|
||||
'image/emotion/xiaowu_emotion/14.gif',
|
||||
|
||||
'image/mode/boss/card/chixueqingfeng.png',
|
||||
'image/mode/boss/card/chiyanzhenhunqin.png',
|
||||
|
@ -5308,4 +5350,7 @@ window.noname_skin_list={
|
|||
key_rin:3,
|
||||
key_miki:1,
|
||||
key_shiroha:6,
|
||||
key_kyoko:1,
|
||||
key_kotori:1,
|
||||
key_shiina:1,
|
||||
};
|
16
game/game.js
|
@ -55,6 +55,7 @@
|
|||
ondb2:[],
|
||||
chatHistory:[],
|
||||
emotionList:{
|
||||
xiaowu_emotion:14,
|
||||
shibing_emotion:15,
|
||||
guojia_emotion:20,
|
||||
zhenji_emotion:20,
|
||||
|
@ -5848,9 +5849,9 @@
|
|||
init:true,
|
||||
onclick:function(bool){
|
||||
if(confirm('调整该设置将清除所有进度,是否继续?')){
|
||||
for(var i=1;i<6;i++) game.save('save'+i,null);
|
||||
game.saveConfig('chess_leader_allcharacter',bool,this._link.config.mode)
|
||||
game.reload();
|
||||
for(var i=1;i<6;i++) game.save('save'+i,null,'chess');
|
||||
game.saveConfig('chess_leader_allcharacter',bool,'chess')
|
||||
if(get.mode()=='chess') game.reload();
|
||||
return;
|
||||
}
|
||||
else this.classList.toggle('on');
|
||||
|
@ -5861,7 +5862,7 @@
|
|||
onclick:function(){
|
||||
var node=this;
|
||||
if(node._clearing){
|
||||
for(var i=1;i<6;i++) game.save('save'+i,null);
|
||||
for(var i=1;i<6;i++) game.save('save'+i,null,'chess');
|
||||
game.reload();
|
||||
return;
|
||||
}
|
||||
|
@ -9879,6 +9880,7 @@
|
|||
baiban:'白板',
|
||||
_disableJudge:"判定区",
|
||||
|
||||
xiaowu_emotion:'小无表情',
|
||||
guojia_emotion:'郭嘉表情',
|
||||
zhenji_emotion:'甄姬表情',
|
||||
shibing_emotion:'士兵表情',
|
||||
|
@ -15108,6 +15110,7 @@
|
|||
"step 0"
|
||||
game.log(player,'减少了'+get.cnNumber(num)+'点体力上限');
|
||||
player.maxHp-=num;
|
||||
event.loseHp=Math.max(0,player.hp-player.maxHp);
|
||||
player.update();
|
||||
"step 1"
|
||||
if(player.maxHp<=0){
|
||||
|
@ -40962,7 +40965,7 @@
|
|||
nodename2.setBackground(video.name2,'character');
|
||||
}
|
||||
var date=new Date(video.time);
|
||||
var str=date.getFullYear()+'.'+(date.getMonth()+2)+'.'+(date.getDay()+1)+' '+
|
||||
var str=date.getFullYear()+'.'+(date.getMonth()+1)+'.'+(date.getDate())+' '+
|
||||
date.getHours()+':';
|
||||
var minutes=date.getMinutes();
|
||||
if(minutes<10){
|
||||
|
@ -48013,9 +48016,10 @@
|
|||
cardid:card.cardid,
|
||||
wunature:card.wunature,
|
||||
storage:card.storage,
|
||||
cards:card.cards,
|
||||
};
|
||||
if(get.itemtype(cards)=='cards'&&!card.cards) next.cards=cards.slice(0);
|
||||
else next.cards=[card];
|
||||
else if(get.itemtype(card)=='card') next.cards=[card];
|
||||
return next;
|
||||
}
|
||||
else if(get.is.object(card)&&get.itemtype(cards)=='cards'&&!card.cards){
|
||||
|
|
|
@ -83,11 +83,14 @@ window.noname_package={
|
|||
},
|
||||
},
|
||||
background:{
|
||||
planetarian_bg:'星梦',
|
||||
ol_bg:'龙纹',
|
||||
planetarian_bg:'星梦',
|
||||
heaven_bg:'红烧',
|
||||
kyoani_bg:'京都',
|
||||
key_bg:'键社',
|
||||
xiaowu_bg:'小无',
|
||||
noname_bg:'璀璨',
|
||||
wuming_bg:'无名',
|
||||
zhulin_bg:'竹林',
|
||||
shengshi_bg:'盛世',
|
||||
taoyuan_bg:'桃园',
|
||||
|
@ -103,8 +106,6 @@ window.noname_package={
|
|||
wangshi_bg:'往事',
|
||||
xiongxin_bg:'雄心',
|
||||
xinsha_bg:'新杀',
|
||||
noname_bg:'璀璨',
|
||||
wuming_bg:'无名',
|
||||
},
|
||||
music:{
|
||||
music_phliosophy:'Philosophy of ours',
|
||||
|
|
|
@ -1,15 +1,18 @@
|
|||
window.noname_update={
|
||||
version:'1.9.106.1',
|
||||
update:'1.9.106',
|
||||
version:'1.9.106.2',
|
||||
update:'1.9.106.1',
|
||||
changeLog:[
|
||||
'S贾诩',
|
||||
'小无表情包、背景',
|
||||
'刘辩',
|
||||
'司马师,羊徽瑜,手杀朱然',
|
||||
'线下版李傕、张济、樊稠',
|
||||
'bug修复',
|
||||
],
|
||||
files:[
|
||||
//'card/extra.js',
|
||||
//'card/huanlekapai.js',
|
||||
//'card/sp.js',
|
||||
'card/standard.js',
|
||||
//'card/standard.js',
|
||||
//'card/swd.js',
|
||||
//'card/mtg.js',
|
||||
//'card/gujian.js',
|
||||
|
@ -24,15 +27,15 @@ window.noname_update={
|
|||
//'character/gujian.js',
|
||||
//'character/gwent.js',
|
||||
//'character/hearth.js',
|
||||
//'character/mobile.js',
|
||||
'character/mobile.js',
|
||||
//'character/mtg.js',
|
||||
//'character/old.js',
|
||||
'character/rank.js',
|
||||
'character/refresh.js',
|
||||
//'character/shenhua.js',
|
||||
'character/shenhua.js',
|
||||
'character/sp.js',
|
||||
'character/sp2.js',
|
||||
'character/tw.js',
|
||||
//'character/tw.js',
|
||||
//'character/standard.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.js',
|
||||
|
@ -44,7 +47,7 @@ window.noname_update={
|
|||
//'layout/nova/layout.css',
|
||||
//'mode/identity.js',
|
||||
//'mode/doudizhu.js',
|
||||
//'mode/guozhan.js',
|
||||
'mode/guozhan.js',
|
||||
'mode/chess.js',
|
||||
//'mode/tafang.js',
|
||||
//'mode/single.js',
|
||||
|
@ -57,7 +60,7 @@ window.noname_update={
|
|||
//'game/server.js',
|
||||
//'game/NoSleep.js',
|
||||
//'game/config.js',
|
||||
//'game/package.js',
|
||||
'game/package.js',
|
||||
//'game/asset.js',
|
||||
//'game/source.js',
|
||||
//'theme/style/hp/xinglass.css',
|
||||
|
|
After Width: | Height: | Size: 267 KiB |
After Width: | Height: | Size: 118 KiB |
After Width: | Height: | Size: 205 KiB |
After Width: | Height: | Size: 259 KiB |
After Width: | Height: | Size: 156 KiB |
After Width: | Height: | Size: 186 KiB |
After Width: | Height: | Size: 152 KiB |
After Width: | Height: | Size: 234 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 149 KiB |
After Width: | Height: | Size: 154 KiB |
|
@ -2172,13 +2172,22 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
}
|
||||
var length=Math.ceil(list.length/9);
|
||||
for(var i in lib.rank){
|
||||
if(Array.isArray(lib.rank[i])){
|
||||
lib.rank[i]=list.splice(0,length);
|
||||
for(var j=0;j<lib.rank[i].length;j++){
|
||||
if(!list.contains(lib.rank[i][j])){
|
||||
lib.rank[i].splice(j--,1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//var length=Math.ceil(list.length/9);
|
||||
//for(var i in lib.rank){
|
||||
// if(Array.isArray(lib.rank[i])){
|
||||
// lib.rank[i]=list.splice(0,length);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
'step 1'
|
||||
lib.rank.all=lib.rank.s.
|
||||
concat(lib.rank.ap).
|
||||
|
@ -2799,7 +2808,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
switch(difficulty){
|
||||
case 'leader_easy':list=lib.rank.d.concat(lib.rank.c).concat(lib.rank.bm);break;
|
||||
case 'leader_medium':list=lib.rank.b.concat(lib.rank.bp).concat(lib.rank.am);break;
|
||||
case 'leader_hard':list=lib.rank.a.concat(lib.rank.ap).concat(lib.rank.s);break;
|
||||
case 'leader_hard':list=lib.rank.a.concat(lib.rank.ap).concat(lib.rank.s).concat(lib.rank.am.randomGets(Math.floor(lib.rank.am.length/2)));break;
|
||||
}
|
||||
for(var i=0;i<lib.hiddenCharacters.length;i++){
|
||||
if(list.length<=number){
|
||||
|
@ -4571,6 +4580,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
unique:true,
|
||||
charlotte:true,
|
||||
firstDo:true,
|
||||
forced:true,
|
||||
popup:false,
|
||||
filter:function(event,player){
|
||||
return get.type(event.card)=='trick'&&event.player.isFriendOf(player);
|
||||
},
|
||||
|
|
|
@ -816,8 +816,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
return event.name=='damage'||(event.player.isAlive()&&!event.player.isFriendOf(player))
|
||||
},
|
||||
content:function(){
|
||||
var num=trigger.num||1;
|
||||
var list=_status.characterlist.randomRemove(num);
|
||||
var list=_status.characterlist.randomRemove(1);
|
||||
if(list.length){
|
||||
player.storage.yigui.character.addArray(list);
|
||||
lib.skill.gzhuashen.drawCharacter(player,list);
|
||||
|
@ -830,6 +829,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
xindiaodu:{
|
||||
audio:"diaodu",
|
||||
group:'xindiaodu_use',
|
||||
frequent:true,
|
||||
subSkill:{
|
||||
use:{
|
||||
trigger:{
|
||||
|
@ -943,15 +943,17 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
audio:['buyi',2],
|
||||
},
|
||||
keshou:{
|
||||
audio:2,
|
||||
trigger:{player:'damageBegin3'},
|
||||
direct:true,
|
||||
//direct:true,
|
||||
filter:function(event,player){
|
||||
return event.num>0;
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
var check=(player.countCards('h',{color:'red'})>1||player.countCards('h',{color:'black'})>1);
|
||||
player.chooseCard(get.prompt2('keshou'),'he',2,function(card){
|
||||
player.chooseCard(get.prompt('keshou'),'弃置两张颜色相同的牌,令即将受到的伤害-1','he',2,function(card){
|
||||
if(ui.selected.cards.length) return get.color(card)==get.color(ui.selected.cards[0]);
|
||||
return true;
|
||||
}).set('complexCard',true).set('ai',function(card){
|
||||
|
@ -964,14 +966,18 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
return 6-get.value(card);
|
||||
}).set('check',check);
|
||||
'step 1'
|
||||
var logged=false;
|
||||
if(result.cards){
|
||||
logged=true;
|
||||
player.logSkill('keshou');
|
||||
player.discard(result.cards);
|
||||
trigger.num--;
|
||||
if(trigger.num<=0) trigger.cancel();
|
||||
if(!game.hasPlayer(function(current){
|
||||
}
|
||||
if(!player.isUnseen()&&!game.hasPlayer(function(current){
|
||||
return current!=player&¤t.isFriendOf(player);
|
||||
})) player.judge(function(card){
|
||||
})){
|
||||
if(!logged) player.logSkill('keshou');
|
||||
player.judge(function(card){
|
||||
if(get.color(card)=='red') return 1;
|
||||
return 0;
|
||||
});
|
||||
|
@ -982,16 +988,19 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
zhuwei:{
|
||||
audio:2,
|
||||
trigger:{player:'judgeEnd'},
|
||||
filter:function(event){
|
||||
if(get.owner(event.result.card)) return false;
|
||||
if(event.nogain&&event.nogain(event.result.card)) return false;
|
||||
return event.result.card.name=='sha'||event.result.card.name=='juedou';
|
||||
return true;
|
||||
//return event.result.card.name=='sha'||event.result.card.name=='juedou';
|
||||
},
|
||||
frequent:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.gain(trigger.result.card,'gain2');
|
||||
player.chooseBool('是否令当前回合角色获得【筑围】的加成效果?').ai=function(){
|
||||
player.chooseBool('是否令'+get.translation(_status.currentPhase)+'本回合的手牌上限和使用【杀】的次数上限+1?').ai=function(){
|
||||
return get.attitude(player,_status.currentPhase)>0;
|
||||
};
|
||||
'step 1'
|
||||
|
@ -5124,7 +5133,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
if(player.hasSkill('huangjintianbingfu')){
|
||||
num+=player.storage.huangjintianbingfu.length;
|
||||
}
|
||||
player.chooseCardButton(num,true,get.cards(num),'按顺将卡牌置于牌堆顶(先选择的在上)').set('ai',function(button){
|
||||
player.chooseCardButton(num,true,get.cards(num),'按顺序将卡牌置于牌堆顶(先选择的在上)').set('ai',function(button){
|
||||
return get.value(button.link);
|
||||
});
|
||||
'step 1'
|
||||
|
@ -7359,9 +7368,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
gzbuyi_info:'每回合限一次,当一名与你势力相同的角色脱离濒死状态后,你可以选择一个“军令”,令伤害来源选择一项:执行该军令,或令该脱离濒死状态的角色回复一点体力。',
|
||||
gz_lukang:'陆抗',
|
||||
keshou:'恪守',
|
||||
keshou_info:'当你受到伤害时,你可以弃置两张颜色相同的牌。若如此做,此伤害-1。然后若场上没有与你势力相同的其他角色,则你进行判定,若结果为红色,你摸一张牌。',
|
||||
keshou_info:'当你受到伤害时,你发动此技能。你可弃置两张颜色相同的牌,若如此做,此伤害-1。你的势力已确定且场上没有与你势力相同的其他角色,则你进行判定,若结果为红色,你摸一张牌。',
|
||||
zhuwei:'筑围',
|
||||
zhuwei_info:'当你的判定牌生效后,若此牌为【杀】或【决斗】,你可以获得之。然后,你可令当前回合角色本回合内使用【杀】的次数上限和手牌上限+1。',
|
||||
zhuwei_info:'当你的判定牌生效后,你可以获得之。然后,你可令当前回合角色本回合内使用【杀】的次数上限和手牌上限+1。',
|
||||
gz_yuanshu:'袁术',
|
||||
gzweidi:'伪帝',
|
||||
gzweidi_info:'出牌阶段限一次,你可以指定一名本回合从牌堆获得过牌的其他角色并选择一个“军令”,令其选择一项:执行该军令;或令你获得其所有手牌,然后交给其等量的牌。',
|
||||
|
|