This commit is contained in:
Spmario233 2021-08-29 21:38:50 +08:00
parent 935d3af4e0
commit ec9d3864c4
68 changed files with 2719 additions and 2453 deletions

BIN
audio/die/caizhenji.mp3 Normal file

Binary file not shown.

BIN
audio/die/duxi.mp3 Normal file

Binary file not shown.

BIN
audio/die/gaogan.mp3 Normal file

Binary file not shown.

BIN
audio/die/shen_taishici.mp3 Normal file

Binary file not shown.

BIN
audio/die/sp_huaxin.mp3 Normal file

Binary file not shown.

BIN
audio/die/sp_xujing.mp3 Normal file

Binary file not shown.

BIN
audio/die/xiangchong.mp3 Normal file

Binary file not shown.

BIN
audio/die/xinzhongyong.mp3 Normal file

Binary file not shown.

BIN
audio/skill/bixiong1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/bixiong2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/boming1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/boming2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/buqi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/buqi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dangmo1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dangmo2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/debao1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/debao2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dulie1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dulie2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/ejian1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/ejian2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/guying1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/guying2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/hxrenshi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/hxrenshi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jihun1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jihun2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/juguan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/juguan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mjchenshi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mjchenshi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mjdingyi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mjdingyi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mjmouzhi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mjmouzhi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mjweipo1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mjweipo2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/muzhen1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/muzhen2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/quxi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/quxi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shenzhu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shenzhu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sheyi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sheyi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tianyin1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tianyin2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tspowei1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tspowei2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/yigui1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/yigui2.mp3 Normal file

Binary file not shown.

View File

@ -331,7 +331,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
subSkill:{
achieve:{
audio:'tspowei',
audio:'tspowei1',
trigger:{player:'useCardAfter'},
forced:true,
skillAnimation:true,
@ -348,7 +348,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
fail:{
audio:'tspowei',
audio:'tspowei2',
trigger:{player:'dying'},
forced:true,
content:function(){
@ -363,6 +363,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
tspowei1:{audio:true},
tspowei2:{audio:true},
shenzhu:{
audio:2,
mod:{

View File

@ -49,7 +49,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_chenzhen:['male','shu',3,['shameng']],
sp_sunshao:['male','wu',3,['mjdingyi','mjzuici','mjfubi']],
sp_xunchen:['male','qun',3,['mjweipo','mjchenshi','mjmouzhi']],
re_dengai:['male','wei',4,['mjweipo','mjchenshi','mjmouzhi']],
re_dengai:['male','wei',4,['retuntian','zaoxian']],
xin_fuhuanghou:['female','qun',3,['xinzhuikong','xinqiuyuan']],
xin_panzhangmazhong:['male','wu',4,['xinduodao','xinanjian']],
xin_guohuai:['male','wei',4,['mobilejingce']],
@ -552,6 +552,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
skill:{
mjweipo:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
@ -590,6 +591,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
mjweipo_effect:{
audio:'mjweipo',
enable:'chooseToUse',
hiddenCard:function(player,name){
return name==player.storage.mjweipo_effect&&player.countCards('h','sha')>0;
@ -825,7 +827,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
mjkuanji:{
audio:2,
audio:'fyjianyu',
usable:1,
trigger:{player:'loseAfter'},
direct:true,
@ -863,6 +865,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
mjdingyi:{
audio:2,
trigger:{
global:'gameDrawAfter',
player:'enterGame',
@ -965,6 +968,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
mjzuici:{
audio:'zuici',
trigger:{player:'damageEnd'},
filter:function(event,player){
if(!event.source||!event.source.isIn()) return false;
@ -998,6 +1002,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
mjfubi:{
audio:'fubi',
enable:'phaseUse',
filter:function(event,player){
if(player.hasSkill('mjfubi_round')) return false;
@ -1349,6 +1354,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
intro:{content:'已对$发动过此技能'},
},
hxrenshi:{
audio:2,
enable:'phaseUse',
filter:function(event,player){
return player.countCards('h')>0&&(!player.storage.hxrenshi2||game.hasPlayer(function(current){
@ -1391,6 +1397,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
onremove:true,
},
debao:{
audio:2,
trigger:{global:'gainAfter'},
forced:true,
filter:function(event,player){
@ -1426,6 +1433,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
buqi:{
audio:2,
trigger:{global:'dying'},
forced:true,
filter:function(event,player){
@ -4230,6 +4238,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.gain(card,player,'giveAuto');
}
},
mod:{
inRangeOf:function(from,to){
if(from.hasMark('taomie')) return true;
},
},
intro:{
content:'mark',
},
@ -10646,7 +10659,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
taomie2:'讨灭',
taomie3:'讨灭',
taomie4:'讨灭',
taomie_info:'当你受到伤害后或当你造成伤害后,你可以令伤害来源或受伤角色获得“讨灭”标记(如场上已有标记则转换给该角色);当你对有“讨灭”标记的角色造成伤害时选择一项1. 此伤害+12. 你获得其区域内的一张牌并可将之交给另一名角色3. 依次执行前两项并于伤害结算后弃置其“讨灭”标记。',
taomie_info:'当你受到伤害后或当你造成伤害后,你可以令伤害来源或受伤角色获得“讨灭”标记(如场上已有标记则转移给该角色);你视为在有“讨灭”标记的角色的攻击范围内,且当你对该角色造成伤害时选择一项1. 此伤害+12. 你获得其区域内的一张牌并可将之交给另一名角色3. 依次执行前两项并于伤害结算后弃置其“讨灭”标记。',
xin_guohuai:'手杀郭淮',
mobilejingce:'精策',
mobilejingce_info:'结束阶段,若此回合因使用或打出而置入弃牌堆的牌的数量不小于你的体力值,则你可以摸两张牌。',

2455
character/offline.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -693,6 +693,7 @@ window.noname_character_rank={
'tangji',
'gaogan',
'sp_xunchen',
'duxi',
],
b:[
'diy_feishi',
@ -1706,6 +1707,7 @@ window.noname_character_rank={
'tangji',
'gaogan',
'caizhenji',
'duxi',
],
junk:[
'sunshao',

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yangwan:['female','shu',3,['youyan','zhuihuan']],
tangji:['female','qun',3,['jielie','kangge']],
zhangheng:['male','qun',8,['dangzai','liangjue']],
jsp_liubei:['male','qun',4,['jsprende']],
duanwei:['male','qun',4,['langmie']],
re_niujin:['male','wei',4,['recuorui','reliewei']],
zhangmiao:['male','qun',4,['mouni','zongfan']],
@ -77,18 +76,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lvkuanglvxiang:['male','qun',4,['liehou','qigong']],
leitong:['male','shu',4,['kuiji']],
wulan:['male','shu',4,['wlcuorui']],
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_chendao:['male','shu',4,['nsjianglie']],
yj_caoang:['male','wei',4,['yjxuepin']],
mini_sunquan:['male','wu',4,['minizhiheng','jiuyuan'],['zhu']],
mini_zuoci:['male','qun',3,['minishendao','minixinsheng']],
mini_jiangwei:['male','shu',4,['minitiaoxin','zhiji']],
mini_diaochan:['female','qun',3,['minilijian','rebiyue']],
mini_zhangchunhua:['female','wei',3,['jueqing','minishangshi']],
ns_caoanmin:['male','wei',4,['nskuishe']],
},
characterSort:{
sp2:{
@ -105,9 +97,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_xuzhou:['re_taoqian','caosong','zhangmiao'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','zhaozhong','ruanyu','liangxing','re_niujin','tangji','re_dongzhao','re_hucheer','re_dongcheng','yangwan'],
sp_mini:["mini_sunquan","mini_zuoci","mini_jiangwei","mini_diaochan","mini_zhangchunhua"],
sp_luanwu:["ns_lijue","ns_zhangji","ns_fanchou"],
sp_yongjian:["ns_chendao","yj_caoang"],
sp_s:["ns_jiaxu","ns_caoanmin","jsp_liubei"],
}
},
skill:{
@ -630,164 +619,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.draw();
},
},
//群刘备
jsprende:{
audio:'rerende',
enable:'phaseUse',
filterCard:true,
selectCard:[1,Infinity],
discard:false,
lose:false,
delay:false,
filterTarget:function(card,player,target){
return player!=target;
},
onremove:true,
check:function(card){
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du') return 0;
if(!ui.selected.cards.length&&card.name=='du') return 20;
var player=get.owner(card);
if(ui.selected.cards.length>=Math.max(2,player.countCards('h')-player.hp)) return 0;
if(player.hp==player.maxHp||player.storage.jsprende<0||player.countCards('h')<=1){
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].hasSkill('haoshi')&&
!players[i].isTurnedOver()&&
!players[i].hasJudge('lebu')&&
get.attitude(player,players[i])>=3&&
get.attitude(players[i],player)>=3){
return 11-get.value(card);
}
}
if(player.countCards('h')>player.hp) return 10-get.value(card);
if(player.countCards('h')>2) return 6-get.value(card);
return -1;
}
return 10-get.value(card);
},
content:function(){
'step 0'
var evt=_status.event.getParent('phaseUse');
if(evt&&evt.name=='phaseUse'&&!evt.jsprende){
var next=game.createEvent('jsprende_clear');
_status.event.next.remove(next);
evt.after.push(next);
evt.jsprende=true;
next.player=player;
next.setContent(function(){
delete player.storage.jsprende;
});
}
target.gain(cards,player,'giveAuto');
if(typeof player.storage.jsprende!='number'){
player.storage.jsprende=0;
}
if(player.storage.jsprende>=0){
player.storage.jsprende+=cards.length;
if(player.storage.jsprende>=2){
var list=[];
if(lib.filter.cardUsable({name:'sha'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse('sha',current);
})){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
}
if(lib.filter.cardUsable({name:'tao'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse('tao',current);
})){
list.push(['基本','','tao']);
}
if(lib.filter.cardUsable({name:'jiu'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse('jiu',current);
})){
list.push(['基本','','jiu']);
}
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]};
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();
}
player.storage.jsprende=-1;
}
else{
event.finish();
}
}
else{
event.finish();
}
'step 1'
if(result&&result.bool&&result.links[0]){
var card={name:result.links[0][2],nature:result.links[0][3]};
player.chooseUseTarget(card,true);
}
},
ai:{
fireAttack:true,
order:function(skill,player){
if(player.hp<player.maxHp&&player.storage.jsprende<2&&player.countCards('h')>1){
return 10;
}
return 4;
},
result:{
target:function(player,target){
if(target.hasSkillTag('nogain')) return 0;
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du'){
if(target.hasSkillTag('nodu')) return 0;
return -10;
}
if(target.hasJudge('lebu')) return 0;
var nh=target.countCards('h');
var np=player.countCards('h');
if(player.hp==player.maxHp||player.storage.jsprende<0||player.countCards('h')<=1){
if(nh>=np-1&&np<=player.hp&&!target.hasSkill('haoshi')) return 0;
}
return Math.max(1,5-nh);
}
},
effect:{
target:function(card,player,target){
if(player==target&&get.type(card)=='equip'){
if(player.countCards('e',{subtype:get.subtype(card)})){
if(game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)>0;
})){
return 0;
}
}
}
}
},
threaten:0.8
}
},
//狼灭
langmie:{
trigger:{global:'phaseUseEnd'},
@ -1902,67 +1733,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.loseHp();
},
},
nskuishe:{
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return target!=player&&target.countCards('he')>0;
},
content:function(){
'step 0'
player.choosePlayerCard(target,'he',true).set('ai',get.buttonValue);
'step 1'
if(result.bool){
var card=result.cards[0];
event.card=card;
player.chooseTarget('将'+get.translation(target)+'的'+(get.position(card)=='h'&&!player.hasSkillTag('viewHandcard',null,target,true)?'手牌':get.translation(card))+'交给一名角色',true,function(target){
return target!=_status.event.getParent().target;
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(_status.event.du){
if(target.hasSkillTag('nodu')) return 0;
return -att;
}
if(target.hasSkillTag('nogain')) return 0.1;
if(att>0){
return att+Math.max(0,5-target.countCards('h'));
}
return att;
}).set('du',event.card.name=='du');
}
else event.finish();
'step 2'
if(result.bool){
var target2=result.targets[0];
target.line(target2,'green');
target2.gain(target,card,'giveAuto','bySelf');
}
else event.finish();
'step 3'
target.chooseToUse(function(card,player,event){
if(get.name(card)!='sha') return false;
return lib.filter.filterCard.apply(this,arguments);
},'是否对'+get.translation(player)+'使用一张杀?').set('targetRequired',true).set('complexSelect',true).set('filterTarget',function(card,player,target){
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
return lib.filter.filterTarget.apply(this,arguments);
}).set('sourcex',player);
},
ai:{
order:6,
expose:0.2,
result:{
target:-1.5,
player:function(player,target){
if(!target.canUse('sha',player)) return 0;
if(target.countCards('h')==1) return 0.1;
if(player.hasShan()) return -0.5;
if(player.hp<=1) return -2;
if(player.hp<=2) return -1;
return 0;
}
},
},
},
pianchong:{
audio:2,
trigger:{player:'phaseDrawBegin1'},
@ -2869,292 +2639,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.bool) player.drawTo(4);
},
},
nsyangwu:{
enable:'phaseUse',
usable:1,
filterCard:{suit:'heart'},
filterTarget:function(card,player,target){
return target!=player&&target.countCards('h')>player.countCards('h');
},
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&&current.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&&current.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',
global:'cardsDiscardAfter',
},
filter:function(event,player){
if(event.name=='lose'){
if(event.type!='discard') return false;
}
else{
var evt=event.getParent();
if(evt.name!='orderingDiscard'||!evt.relatedEvent||evt.relatedEvent.player!=player||!['useCard','respond'].contains(evt.relatedEvent.name)) return false;
}
return (event.cards2||event.cards).filterInD('d').length>0;
},
forced:true,
content:function(){
'step 0'
var evt=trigger.getParent().relatedEvent;
if((trigger.name=='discard'&&!trigger.delay)||evt&&evt.name=='respond') game.delayx();
'step 1'
var cards=(trigger.cards2||trigger.cards).filterInD('d');
player.$gain2(cards);
if(cards.length==1) event._result={bool:true,links:cards};
else{
var dialog=['遗策:选择要放置的卡牌','<div class="text center">(从左到右为从旧到新,后选择的后置入)</div>',cards];
var cards2=player.getStorage('nsyice');
if(cards2.length){
dialog.push('<div class="text center">原有“策”</div>');
dialog.push(cards2);
}
player.chooseButton(dialog,true,cards.length).set('filterButton',function(button){
return _status.event.cards.contains(button.link);
}).set('cards',cards);
}
'step 2'
game.cardsGotoSpecial(result.links);
player.markAuto('nsyice',result.links);
game.delayx();
'step 3'
var storage=player.storage.nsyice;
var bool=false;
for(var i=0;i<storage.length;i++){
for(var j=storage.length-1;j>i;j--){
if(get.number(storage[i])==get.number(storage[j])){
bool=true;
break;
}
}
if(bool) break;
}
if(bool){
event.cards=storage.slice(0);
event.cards=storage.splice(i,j-i+1);
player.unmarkAuto('nsyice',event.cards);
}
else event.finish();
'step 4'
var cardsx=[];
cardsx.push(cards.shift());
cardsx.push(cards.pop());
if(cards.length) player.gain(cards,'gain2');
event.cards=cardsx;
'step 5'
player.chooseButton(['将一张牌置于牌堆顶,将另一张牌置于牌堆底',cards],true);
'step 6'
ui.cardPile.insertBefore(result.links[0].fix(),ui.cardPile.firstChild);
cards.remove(result.links[0]);
ui.cardPile.appendChild(cards[0].fix());
game.updateRoundNumber();
if(_status.dying.length) event.finish();
'step 7'
player.chooseTarget('对一名角色造成1点伤害',true).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
'step 8'
if(result.bool){
var target=result.targets[0];
player.line(target);
target.damage('nocard');
}
},
marktext:'策',
intro:{content:'cards'},
},
yjxuepin:{
enable:'phaseUse',
usable:1,
filterTarget:function(event,player,target){
return player.inRange(target)&&target.countDiscardableCards(player,'he')>0;
},
content:function(){
'step 0'
player.loseHp();
'step 1'
if(target.countDiscardableCards(player,'he')>0) player.discardPlayerCard(target,2,'he',true);
else event.finish();
'step 2'
if(result.bool&&result.cards.length==2&&get.type2(result.cards[0],result.cards[0].original=='h'?target:false)==get.type2(result.cards[1],result.cards[1].original=='h'?target:false)) player.recover();
},
ai:{
order:4,
result:{
player:function(player,target){
if(player.hp==1) return -8;
if(target.countCards('e')>1) return 0;
if(player.hp>2||target.countCards('h')>1) return -0.5;
return -2;
},
target:function(player,target){
if(target.countDiscardableCards(player,'he')<2) return 0;
return -2;
},
},
},
},
nsjianglie:{
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
return event.card.name=='sha'&&event.target.countCards('h')>0;
},
check:function(event,player){
return get.attitude(player,event.target)<0;
},
logTarget:'target',
content:function(){
'step 0'
trigger.target.showHandcards();
'step 1'
var cards=trigger.target.getCards('h');
var list=[];
for(var i=0;i<cards.length;i++){
list.add(get.color(cards[i]));
}
if(list.length==1) event._result={control:list[0]};
else{
list.sort();
trigger.target.chooseControl(list).set('prompt','选择弃置一种颜色的所有手牌').set('ai',function(){
var player=_status.event.player;
if(get.value(player.getCards('h',{color:'red'}))>=get.value(player.getCards('h',{color:'black'}))) return 'black';
return 'red';
});
}
'step 2'
trigger.target.discard(trigger.target.getCards('h',{color:result.control}));
},
},
minsi:{
audio:2,
enable:'phaseUse',
@ -9180,7 +8664,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wangrong:'汉灵怀皇后王荣(?~181年赵国邯郸今河北邯郸市人。五官中郎将王苞孙女汉灵帝刘宏妃子汉献帝刘协生母。初以良家子选入掖庭封为美人服侍汉灵帝。光和四年181年生下陈留王刘协惨遭灵思皇后毒杀。王荣死后汉灵帝曾作《追德赋》、《令仪颂》。永汉元年189年其子刘协即位是为汉献帝追谥灵怀皇后葬于文昭陵。',
hanfu:'韩馥—191年字文节颍川郡今河南禹州人。东汉末年的诸侯冀州牧。韩馥担任过东汉的御史中丞之后被董卓举荐为冀州牧在各诸侯起兵讨伐董卓时韩馥也是其中之一的参与者。韩馥与袁绍也曾经有意立刘虞为皇帝。当时冀州民殷人盛兵粮优足于是袁绍便用计夺取冀州韩馥被迫投靠张邈之后张邈与袁绍的使者见面韩馥以为是要来杀害自己的于是在厕所中以刻书用的小刀自杀。',
guozhao:'郭照,电视剧《军师联盟》中的女主角之一,由唐艺昕饰演。原型为文德皇后郭氏(字女王),魏国皇后,张春华的义妹,深爱曹丕,替甄宓抚育曹叡,因甄宓之死被曹叡记恨,曹丕死后,成为皇太后,被曹叡逼上死路。自尽身亡。',
caoanmin:'曹安民(?-197年沛国谯县今安徽亳州字安民。东汉时期人物曹德之子曹操之侄曹昂的堂兄弟曹丕的堂兄死于宛城之战。按曹丕《典论》记载的“亡兄孝廉子脩、从兄安民遇害。”等情况来看安民应该是曹操侄子错不了曹丕是他们属于兄弟关系肯定不会弄错。另外从典论的记载来看安民是和子脩并提的子脩是曹昂的字安民则肯定也是字不是名至于三国志中记载则应取自曹丕之《典论》但陈寿又不知曹安民其名故写为“长子昂、弟子安民”。',
fanyufeng:'樊夫人东汉末年人物昔桂阳太守赵范寡嫂。赵云随刘备平定江南四郡后刘备以赵云为桂阳太守。赵范居心叵测要将自己的嫂嫂樊氏嫁给赵云但遭到赵云的拒绝。后来赵范逃走樊氏也下落不明。2001年应日本日中青少年文化中心成立50周年之邀北京京剧院赴日进行40场巡回演出这次访日的剧目都不同程度地进行了加工改编以符合日本观众的需求。《取桂阳》是根据老本重新排演的叶金援饰赵云王怡饰樊玉凤。剧中的樊玉凤成为文武双全的巾帼英雄被赵云收降后来在《龙凤呈祥》中也参与堵截东吴的追兵。',
zhaozhong:'赵忠—189年安平人东汉末年宦官赵延之兄。桓帝、灵帝时历为小黄门、中常侍、大长秋、车骑将军等职封都乡侯。在职时以搜刮暴敛、骄纵贪婪见称灵帝极为宠信常谓“赵常侍是我母”。中平六年189年何进谋诛宦官事泄他和其余几个常侍设计伏杀何进袁绍、袁术等人闻何进被杀入宫杀尽宦官后捕杀赵忠。',
caosong:'曹嵩—194年字巨高沛郡谯县今安徽省亳州市人。东汉大臣大长秋曹腾的养子曹操之父亲。门荫入仕历任司隶校尉、鸿胪卿、大司农位列九卿位高权重。中平四年187年靠着贿赂中官出任太尉位列三公。中平五年188年受累于黄巾之乱坐罪免官。兴平元年194年投奔兖州牧曹操遇害于徐州。延康元年220年追尊魏国太王。曹魏建立后追尊皇帝谥号为太。',
@ -9587,26 +9070,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jijing_info:'当你受到伤害后你可以进行一次判定然后若你弃置任意张点数之和与判定结果点数相同的牌你回复1点体力。',
zhuide:'追德',
zhuide_info:'当你死亡时,你可令一名其他角色从牌堆中获得四张名称各不相同的基本牌。',
yj_caoang:'SP曹昂',
yjxuepin:'血拼',
yjxuepin_info:'出牌阶段限一次你可以选择攻击范围内的一名角色并失去1点体力。你弃置其两张牌。若这两张牌类型相同你回复1点体力。',
ns_chendao:'SP陈到',
nsjianglie:'将烈',
nsjianglie_info:'当你使用【杀】指定目标后,你可以令其展示所有手牌,然后弃置其中一种颜色的牌。',
ns_jiaxu:'☆贾诩',
nsyice:'遗策',
nsyice_info:'锁定技,当你使用/打出/弃置的牌进入弃牌堆后你将这些牌以任意顺序置于你的武将牌上称为“策”。若这些“策”中有点数相同的牌则你获得这两张牌中的所有牌将这两张牌置于牌堆两端。若场上没有处于濒死状态的角色则你对一名角色造成1点伤害。',
ns_lijue:'SP李傕',
ns_zhangji:'SP张济',
nsfeixiong:'飞熊',
nsfeixiong_info:'出牌阶段开始时你可以和一名其他角色拼点。赢的角色对没赢的角色造成1点伤害。',
nscesuan:'策算',
nscesuan_info:'锁定技,当你受到伤害时,你防止此伤害并失去一点体力上限。若你因以此法失去体力上限导致体力值减少,则你摸一张牌。',
nslulve:'掳掠',
nslulve_info:'出牌阶段限一次你可以弃置X张牌并选择一名装备区内有牌的其他角色然后对其造成1点伤害X为其装备区内的牌数。',
ns_fanchou:'SP樊稠',
nsyangwu:'扬武',
nsyangwu_info:'出牌阶段限一次你可以弃置一张♥手牌并选择一名手牌数大于你的其他角色。你观看其手牌并获得其中的X张牌X为其与你手牌数之差的一半且向上取整。',
mini_sunquan:'SP孙权',
minizhiheng:'制衡',
minizhiheng_info:'出牌阶段结束时,你可以弃置任意张手牌。若如此做,你将手牌摸至四张。',
@ -9665,9 +9128,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zunwei:'尊位',
zunwei_backup:'尊位',
zunwei_info:"出牌阶段限一次你可选择本局游戏内未选择过的一项①若你已受伤则你可以选择一名体力值大于你的其他角色你将体力值回复至XX为你的体力上限与其体力值中的较小值②选择一名手牌数大于你的其他角色你将手牌数摸至与其相同至多摸五张③选择一名装备区内牌数大于你的其他角色。你令X=1。若你装备区内的('equip'+X)栏为空,则你使用牌堆中的一张副类别为('equip'+X)且能对自己使用的装备牌。你令X+1。若X不大于5且你装备区内的牌数仍小于目标角色则你重复此流程。",
ns_caoanmin:'曹安民',
nskuishe:'窥舍',
nskuishe_info:'出牌阶段限一次你可以选择一名其他角色A的一张牌并将此牌交给不为A的一名角色。然后A可以对你使用一张【杀】。',
re_chunyuqiong:'淳于琼',
recangchu:'仓储',
recangchu2:'仓储',
@ -9740,10 +9200,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
langmie:'狼灭',
langmie_damage:'狼灭',
langmie_info:'其他角色的出牌阶段结束时若其本阶段内使用过的牌中有类型相同的牌则你可以摸一张牌其他角色的结束阶段开始时若其本回合内造成的伤害大于1则你可以弃置一张牌并对其造成1点伤害。',
jsp_liubei:'群刘备',
jsp_liubei_ab:'刘备',
jsprende:'仁德',
jsprende_info:'出牌阶段,你可以将至少一张手牌交给其他角色;若你于此阶段内给出的牌首次达到两张,你可以视为使用一张基本牌',
zhangheng:'张横',
dangzai:'挡灾',
dangzai_info:'出牌阶段开始时,你可将一名其他角色判定区内的一张牌移动至你的判定区内。',
@ -9784,9 +9240,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_xuzhou:'徐州风云',
sp_decade:'其他新服武将',
sp_mini:'欢乐三国杀',
sp_luanwu:'文和乱武·线下',
sp_yongjian:'用间篇',
sp_s:'线下S系列',
},
};
});

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.110.8.4',
'v1.9.110.8.4.1',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -750,6 +750,14 @@ window.noname_asset_list=[
'audio/die/ol_jiangwei.mp3',
'audio/die/ol_zhurong.mp3',
'audio/die/zhongyan.mp3',
'audio/die/caizhenji.mp3',
'audio/die/duxi.mp3',
'audio/die/gaogan.mp3',
'audio/die/shen_taishici.mp3',
'audio/die/sp_huaxin.mp3',
'audio/die/sp_xujing.mp3',
'audio/die/xiangchong.mp3',
'audio/die/xinzhongyong.mp3',
'audio/skill/decadezishou1.mp3',
'audio/skill/decadezishou2.mp3',
@ -3322,6 +3330,52 @@ window.noname_asset_list=[
'audio/skill/yashi2.mp3',
'audio/skill/yifa1.mp3',
'audio/skill/yifa2.mp3',
'audio/skill/bixiong1.mp3',
'audio/skill/bixiong2.mp3',
'audio/skill/boming1.mp3',
'audio/skill/boming2.mp3',
'audio/skill/buqi1.mp3',
'audio/skill/buqi2.mp3',
'audio/skill/dangmo1.mp3',
'audio/skill/dangmo2.mp3',
'audio/skill/debao1.mp3',
'audio/skill/debao2.mp3',
'audio/skill/dulie1.mp3',
'audio/skill/dulie2.mp3',
'audio/skill/ejian1.mp3',
'audio/skill/ejian2.mp3',
'audio/skill/guying1.mp3',
'audio/skill/guying2.mp3',
'audio/skill/hxrenshi1.mp3',
'audio/skill/hxrenshi2.mp3',
'audio/skill/jihun1.mp3',
'audio/skill/jihun2.mp3',
'audio/skill/juguan1.mp3',
'audio/skill/juguan2.mp3',
'audio/skill/mjchenshi1.mp3',
'audio/skill/mjchenshi2.mp3',
'audio/skill/mjdingyi1.mp3',
'audio/skill/mjdingyi2.mp3',
'audio/skill/mjmouzhi1.mp3',
'audio/skill/mjmouzhi2.mp3',
'audio/skill/mjweipo1.mp3',
'audio/skill/mjweipo2.mp3',
'audio/skill/mobilezhongyong1.mp3',
'audio/skill/mobilezhongyong2.mp3',
'audio/skill/muzhen1.mp3',
'audio/skill/muzhen2.mp3',
'audio/skill/quxi1.mp3',
'audio/skill/quxi2.mp3',
'audio/skill/shenzhu1.mp3',
'audio/skill/shenzhu2.mp3',
'audio/skill/sheyi1.mp3',
'audio/skill/sheyi2.mp3',
'audio/skill/tianyin1.mp3',
'audio/skill/tianyin2.mp3',
'audio/skill/tspowei1.mp3',
'audio/skill/tspowei2.mp3',
'audio/skill/yigui1.mp3',
'audio/skill/yigui2.mp3',
'audio/voice/male/0.mp3',
'audio/voice/male/1.mp3',
@ -3437,6 +3491,8 @@ window.noname_asset_list=[
'image/card/hina_shenji.png',
'image/card/miki_binoculars.png',
'image/card/zhaoshu.png',
'image/card/tiaojiyanmei.png',
'image/card/binglinchengxiax.png',
'image/card/bagua.png',
'image/card/baihupifeng.png',
@ -4210,6 +4266,7 @@ window.noname_asset_list=[
'image/character/sp_xujing.jpg',
'image/character/xiangchong.jpg',
'image/character/xin_zhoucang.jpg',
'image/character/duxi.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -21,7 +21,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','extra','old','mobile','tw','yingbian'],
sgscharacters:['standard','shenhua','xinghuoliaoyuan','refresh','yijiang','sp','sp2','extra','old','mobile','tw','yingbian','offline'],
sgscards:['standard','extra','sp','guozhan','zhulu','yingbian'],
sgsmodes:['identity','guozhan','versus','doudizhu','single','brawl','connect'],
stockmode:['identity','guozhan','versus','boss','doudizhu','single','chess','stone','connect','brawl','tafang'],

View File

@ -10,6 +10,7 @@ window.noname_package={
sp2:'系列专属',
extra:'神将',
mobile:'移动版',
offline:'线下武将',
old:'怀旧',
diy:'DIY',
tw:'外服武将',

View File

@ -20,6 +20,7 @@ window.noname_source_list=[
'character/hearth.js',
'character/mobile.js',
'character/mtg.js',
'character/offline.js',
'character/old.js',
'character/ow.js',
'character/rank.js',

View File

@ -1,6 +1,6 @@
window.noname_update={
version:'1.9.110.8.4',
update:'1.9.110.8.3.3',
version:'1.9.110.8.4.1',
update:'1.9.110.8.4',
changeLog:[
'神太史慈、蔡贞姬、手杀华歆、向宠、手杀许靖、手杀周仓',
'手杀费祎、手杀荀谌、手杀孙邵',
@ -28,11 +28,12 @@ window.noname_update={
//'character/hearth.js',
'character/mobile.js',
//'character/mtg.js',
'character/offline.js',
//'character/old.js',
//'character/ow.js',
'character/rank.js',
'character/refresh.js',
'character/shenhua.js',
//'character/refresh.js',
//'character/shenhua.js',
'character/sp.js',
'character/sp2.js',
//'character/tw.js',
@ -40,12 +41,12 @@ window.noname_update={
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
'character/yingbian.js',
'character/yijiang.js',
//'character/yingbian.js',
//'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
'layout/default/layout.css',
'layout/newlayout/global.css',
//'layout/default/layout.css',
//'layout/newlayout/global.css',
//'layout/default/menu.css',
//'layout/nova/layout.css',
//'mode/boss.js',
@ -58,13 +59,13 @@ window.noname_update={
//'mode/stone.js',
//'mode/tafang.js',
//'mode/versus.js',
'game/game.js',
//'game/game.js',
//'game/keyWords.js',
//'game/NoSleep.js',
'game/config.js',
//'game/package.js',
'game/package.js',
//'game/asset.js',
//'game/source.js',
'game/source.js',
//'theme/style/hp/xinglass.css',
//'theme/style/hp/xinround.css',
//'theme/style/hp/image/xinglass1.png',

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
image/card/tiaojiyanmei.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
image/character/duxi.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB