紫小鸟

This commit is contained in:
Spmario233 2021-06-10 23:27:23 +08:00
parent a058157456
commit 3afc21debd
53 changed files with 2528 additions and 2026 deletions

BIN
audio/die/cheliji.mp3 Normal file

Binary file not shown.

BIN
audio/die/jin_yanghuiyu.mp3 Normal file

Binary file not shown.

BIN
audio/die/panshu.mp3 Normal file

Binary file not shown.

BIN
audio/die/shibao.mp3 Normal file

Binary file not shown.

BIN
audio/die/weiguan.mp3 Normal file

Binary file not shown.

BIN
audio/skill/caiyuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/caiyuan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chexuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chexuan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/ciwei1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/ciwei2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/huirong1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/huirong2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jinzhi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jinzhi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shenpin1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shenpin2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/weiyi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/weiyi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhongyun1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhongyun2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhuosheng1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhuosheng2.mp3 Normal file

Binary file not shown.

View File

@ -20,7 +20,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
player.unmarkSkill('muniu_skill');
delete player.getStat('skill').muniu_skill;
if(!card||!card.cards||!card.cards.length) return;
if((event.getParent(2)&&event.getParent(2).name!='swapEquip')&&event.parent.type!='equip'){
if((event.getParent(2)&&event.getParent(2).name!='swapEquip')&&(event.parent.type!='equip'||event.parent.swapEquip)){
player.lose(card.cards,ui.discardPile);
player.$throw(card.cards,1000);
player.popup('muniu');

View File

@ -393,7 +393,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
'step 1'
if(result.bool){
player.logSkill('taigongyinfu_skill');
player.lose(result.cards,ui.discardPile);
player.lose(result.cards,ui.discardPile,'visible');
player.$throw(result.cards,1000);
game.log(player,'将',result.cards,'置入了弃牌堆');
player.draw();

View File

@ -2175,7 +2175,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
charlotte:true,
content:function(){
var list=['wei','shu','wu','qun'];
var list=['wei','shu','wu','qun','jin'];
for(var i of list){
if(!player.hasMark('kotori_yumo_'+i)){
player.addMark('kotori_yumo_'+i,1,false);
@ -2205,7 +2205,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseBegin'},
direct:true,
filter:function(event,player){
var list=['wei','shu','wu','qun','key'];
var list=['wei','shu','wu','qun','key','jin'];
for(var i in list){
if(player.hasMark('kotori_yumo_'+list[i])) return true;
}
@ -2213,7 +2213,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
var list=['wei','shu','wu','qun','key'];
var list=['wei','shu','wu','qun','key','jin'];
var list2=[];
for(var i of list){
if(player.hasMark('kotori_yumo_'+i)) list2.push('kotori_skill_'+i);
@ -2334,6 +2334,46 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
kotori_skill_jin:{
trigger:{player:'phaseDrawEnd'},
filter:function(event,player){
var hs=player.getCards('h');
return hs.length>0&&player.getHistory('gain',function(evt){
if(evt.getParent().name!='draw'||evt.getParent('phaseDraw')!=event) return false;
for(var i of evt.cards){
if(hs.contains(i)) return true;
}
return false;
}).length>0;
},
check:function(event,player){
var hs=player.getCards('h'),cards=[],suits=[];
player.getHistory('gain',function(evt){
if(evt.getParent().name!='draw'||evt.getParent('phaseDraw')!=event) return false;
for(var i of evt.cards){
if(hs.contains(i)){
cards.add(i);
suits.add(get.suit(i,player));
}
}
});
return cards.length==suits.length;
},
content:function(){
var hs=player.getCards('h'),cards=[],suits=[];
player.getHistory('gain',function(evt){
if(evt.getParent().name!='draw'||evt.getParent('phaseDraw')!=trigger) return false;
for(var i of evt.cards){
if(hs.contains(i)){
cards.add(i);
suits.add(get.suit(i,player));
}
}
});
player.showCards(cards,get.translation(player)+'发动了【晋势】');
if(cards.length==suits.length) player.draw();
},
},
kotori_qunxin_temp:{
onremove:true,
mod:{
@ -2362,12 +2402,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
marktext:'<span class="legendtext">魔</span>',
intro:{name:'<span class="legendtext">魔物</span>',content:'mark'},
},
kotori_yumo_jin:{
marktext:'<span class="icetext">魔</span>',
intro:{name:'<span class="icetext">魔物</span>',content:'mark'},
},
kotori_huazhan:{
charlotte:true,
enable:'chooseToUse',
filter:function(event,player){
var bool=false;
var list=['wei','shu','wu','qun','key'];
var list=['wei','shu','wu','qun','key','jin'];
for(var i of list){
if(player.hasMark('kotori_yumo_'+i)&&!player.getStorage('kotori_huazhan2').contains('kotori_yumo_'+i)){
bool=true;break;
@ -2380,7 +2424,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return ui.create.dialog('###花绽###'+lib.translate.kotori_huazhan_info);
},
chooseControl:function(event,player){
var list=['wei','shu','wu','qun','key'];
var list=['wei','shu','wu','qun','key','jin'];
var list2=[];
for(var i of list){
if(player.hasMark('kotori_yumo_'+i)&&!player.getStorage('kotori_huazhan2').contains('kotori_yumo_'+i)) list2.push('kotori_yumo_'+i);
@ -2390,7 +2434,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
check:function(){
var player=_status.event.player;
var list=['wei','shu','wu','qun','key'];
var list=['wei','shu','wu','qun','key','jin'];
var list2=[];
for(var i of list){
if(player.hasMark('kotori_yumo_'+i)&&!player.getStorage('kotori_huazhan2').contains('kotori_yumo_'+i)) list2.push('kotori_yumo_'+i);
@ -13572,7 +13616,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kotori_yumo:'驭魔',
kotori_yumo_damage:'驭魔',
kotori_yumo_gain:'驭魔',
kotori_yumo_info:'锁定技,游戏开始时,你获得蓝色、红色、绿色、黄色魔物各一个。当有角色受到伤害后,若你没有对应的标记,你根据其势力获得一个对应魔物:魏:蓝、蜀:红、吴:绿、群:黄、键:紫。回合开始时,你可以弃置一个对应的魔物并获得以下技能之一直到回合结束:蓝:魏业、红:蜀义、绿:吴耀、黄:群心、紫:键魂。',
kotori_yumo_info:'锁定技,游戏开始时,你获得蓝色、红色、绿色、黄色、灰色魔物各一个。当有角色受到伤害后,若你没有对应的标记,你根据其势力获得一个对应魔物:魏:蓝、蜀:红、吴:绿、群:黄、灰:晋、键:紫。回合开始时,你可以弃置一个对应的魔物并获得以下技能之一直到回合结束:蓝:魏业、红:蜀义、绿:吴耀、黄:群心、灰:晋势、紫:键魂。',
kotori_skill_wei:'魏业',
kotori_skill_wei_info:'回合开始时,你可以弃置一张牌并指定一名其他角色,该角色须弃置一张牌,否则你摸一张牌。',
kotori_skill_shu:'蜀义',
@ -13583,13 +13627,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kotori_skill_qun_info:'锁定技弃牌阶段开始时若你的手牌数比体力值多2或更多你本回合手牌上限+1若你已损失体力值大于1你手牌上限+1',
kotori_skill_key:'键魂',
kotori_skill_key_info:'出牌阶段限一次你可以摸一张牌并获得1点护甲。若如此做你于当前回合结束时失去1点体力。',
kotori_skill_jin:'晋势',
kotori_skill_jin_info:'摸牌阶段结束时,你可以展示你于此阶段内因摸牌而获得的牌。若这些牌的花色均不同,则你摸一张牌。',
kotori_yumo_wei:'<span class="thundertext">魔物</span>',
kotori_yumo_shu:'<span class="firetext">魔物</span>',
kotori_yumo_wu:'<span class="greentext">魔物</span>',
kotori_yumo_qun:'<span class="yellowtext">魔物</span>',
kotori_yumo_key:'<span class="legendtext">魔物</span>',
kotori_yumo_jin:'<span class="icetext">魔物</span>',
kotori_huazhan:'花绽',
kotori_huazhan_info:'每回合每种魔物限一次,你可将一个蓝色/红色/绿色/黄色/紫色魔物当做【树上开花】使用。',
kotori_huazhan_info:'每回合每种魔物限一次,你可将一个蓝色/红色/绿色/黄色/紫色/灰色魔物当做【树上开花】使用。',
jojiro_shensu:'神速',
jojiro_shensu_info:'你可以选择一至三项1. 跳过判定阶段和摸牌阶段2. 跳过出牌阶段并弃置一张装备牌3. 跳过弃牌阶段并将你的武将牌翻面。你每选择一项,视为你对一名其他角色使用一张没有距离限制的【杀】',
jojiro_shensu1:'神速',

View File

@ -343,7 +343,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skill:{
//狗剩
reduoji:{
audio:2,
audio:'duoji',
enable:'phaseUse',
usable:1,
filter:function(event,player){
@ -995,7 +995,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:'refubi_buff',
subSkill:{
buff:{
trigger:{global:'phaseUseBegin'},
trigger:{global:'phaseZhunbeiBegin'},
direct:true,
filter:function(event,player){
return event.player!=player&&event.player.hasMark('refubi');
@ -1009,7 +1009,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
]).set('ai',function(){
var player=_status.event.player,target=_status.event.getTrigger().player;
if(get.attitude(player,target)<=0) return 'cancel2';
if(target.countCards('h',function(card){
if(!target.hasJudge('lebu')&&target.countCards('h',function(card){
return get.name(card,target)=='sha'&&target.hasValueTarget(card);
})>target.getCardUsable('sha')) return 0;
return 1;

View File

@ -249,7 +249,7 @@ window.noname_character_rank={
'wolongfengchu',
'yanghuiyu',
'liubian',
'nanhualaoxian',
'panshu',
'key_misuzu',
'key_sunohara',
'key_umi',
@ -666,6 +666,7 @@ window.noname_character_rank={
're_zhoucang',
'ruanyu',
'wujing',
'nanhualaoxian',
],
b:[
'diy_feishi',
@ -843,6 +844,9 @@ window.noname_character_rank={
'jin_yanghuiyu',
'sp_mifuren',
'sp_xinpi',
'cheliji',
'shibao',
'zhangmiao',
],
bm:[
'diy_xizhenxihong',
@ -1135,6 +1139,7 @@ window.noname_character_rank={
'boss_zhaoyun',
'yanghuiyu',
'nanhualaoxian',
'panshu',
'key_yuri',
'key_yuzuru',
'sp_key_kanade',
@ -1635,6 +1640,7 @@ window.noname_character_rank={
'ns_chengpu',
're_zhoucang',
'sp_mifuren',
'cheliji',
],
junk:[
'sunshao',

View File

@ -5603,7 +5603,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shuangxiong2:{
audio:true,
audioname:['re_yanwen'],
enable:'phaseUse',
enable:'chooseToUse',
prompt:function(){
var player=_status.event.player;
var str='将一张'+(player.storage.shuangxiong!='red'?'红':'黑')+'色手牌当做【决斗】使用';
@ -7666,7 +7666,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qiangxi_info:'出牌阶段限一次,你可以失去一点体力或弃置一张武器牌,然后对你攻击范围内的一名其他角色造成一点伤害。',
qiangxix_info:'出牌阶段限两次,你可以失去一点体力或弃置一张武器牌,然后一名本阶段内未成为过〖强袭〗的目标的其他角色造成一点伤害。',
tianyi_info:'出牌阶段限一次,你可以和一名其他角色拼点。若你赢,你获得以下技能效果直到回合结束:你使用【杀】没有距离限制;可额外使用一张【杀】;使用【杀】时可额外指定一个目标。若你没赢,你不能使用【杀】直到回合结束。',
shuangxiong_info:'摸牌阶段,你可以改为进行一次判定:你获得此判定牌,且于此回合的出牌阶段,你可以将任意一张与此判定牌不同颜色的手牌当做【决斗】使用。',
shuangxiong_info:'摸牌阶段,你可以改为进行一次判定:你获得此判定牌,且你可以于此回合内将任意一张与此判定牌不同颜色的手牌当做【决斗】使用。',
luanji_info:'出牌阶段,你可以将任意两张相同花色的手牌当做【万箭齐发】使用。',
xueyi_info:'主公技,锁定技,场上每有一名其他群雄角色存活,你的手牌上限便+2。',
mengjin_info:'当你使用的【杀】被【闪】抵消时,你可以弃置目标角色的一张牌。',

View File

@ -18,7 +18,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterFilter:{},
character:{
panshu:['female','wu',3,['weiyi','jinzhi'],['unseen']],
panshu:['female','wu',3,['weiyi','jinzhi']],
sp_jiben:['male','qun',3,['spduanzhi','spduyi']],
sp_fuhuanghou:['female','qun',3,['spcangni','spmixin']],
sp_fuwan:['male','qun',3,['spfengyin','spchizhong']],

File diff suppressed because it is too large Load Diff

2027
character/yingbian.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.110.4',
'v1.9.110.5',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -719,6 +719,11 @@ window.noname_asset_list=[
'audio/die/sp_mifuren.mp3',
'audio/die/sp_xinpi.mp3',
'audio/die/wujing.mp3',
'audio/die/cheliji.mp3',
'audio/die/jin_yanghuiyu.mp3',
'audio/die/panshu.mp3',
'audio/die/shibao.mp3',
'audio/die/weiguan.mp3',
'audio/skill/decadezishou1.mp3',
'audio/skill/decadezishou2.mp3',
@ -3171,6 +3176,24 @@ window.noname_asset_list=[
'audio/skill/zaoyun2.mp3',
'audio/skill/zhuhai_gz_re_xushu1.mp3',
'audio/skill/zhuhai_gz_re_xushu2.mp3',
'audio/skill/caiyuan1.mp3',
'audio/skill/caiyuan2.mp3',
'audio/skill/chexuan1.mp3',
'audio/skill/chexuan2.mp3',
'audio/skill/ciwei1.mp3',
'audio/skill/ciwei2.mp3',
'audio/skill/huirong1.mp3',
'audio/skill/huirong2.mp3',
'audio/skill/jinzhi1.mp3',
'audio/skill/jinzhi2.mp3',
'audio/skill/shenpin1.mp3',
'audio/skill/shenpin2.mp3',
'audio/skill/weiyi1.mp3',
'audio/skill/weiyi2.mp3',
'audio/skill/zhongyun1.mp3',
'audio/skill/zhongyun2.mp3',
'audio/skill/zhuosheng1.mp3',
'audio/skill/zhuosheng2.mp3',
'audio/voice/male/0.mp3',
'audio/voice/male/1.mp3',
@ -3645,6 +3668,9 @@ window.noname_asset_list=[
'image/card/jintuiziru.png',
'image/card/jiwangkailai.png',
'image/card/zhadan.png',
'image/card/cheliji_feilunzhanyu.png',
'image/card/cheliji_sichengliangyu.png',
'image/card/cheliji_tiejixuanyu.png',
'image/character/shenpei.jpg',
'image/character/re_menghuo.jpg',
@ -3999,6 +4025,11 @@ window.noname_asset_list=[
'image/character/sp_mifuren.jpg',
'image/character/sp_xinpi.jpg',
'image/character/wujing.jpg',
'image/character/cheliji.jpg',
'image/character/panshu.jpg',
'image/character/shibao.jpg',
'image/character/weiguan.jpg',
'image/character/zhangmiao.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -14,7 +14,7 @@ window.config={
forbiddouble:['zhugedan','swd_kangnalishi','dongzhuo','wutugu','hs_siwangzhiyi','hs_ronghejuren','hs_shanlingjuren'],
forbidthreecard:['qiankunbiao','shenhuofeiya','gw_ciguhanshuang','gw_birinongwu','gw_qinpendayu','gw_poxiao'],
all:{
sgscharacters:['standard','shenhua','xinghuoliaoyuan','refresh','yijiang','sp','sp2','extra','old','mobile','tw'],
sgscharacters:['standard','shenhua','xinghuoliaoyuan','refresh','yijiang','sp','sp2','extra','old','mobile','tw','yingbian'],
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'],
@ -127,7 +127,7 @@ window.config={
sort:'type_sort',
cards:['standard','ex','extra','sp','classic','basic'],
characters:['standard','shenhua','sp','sp2','yijiang','refresh','xinghuoliaoyuan','mobile','extra'],
characters:['standard','shenhua','sp','sp2','yijiang','refresh','xinghuoliaoyuan','mobile','extra','yingbian'],
connect_characters:['diy'],
connect_cards:['huanlekapai','guozhan','sp','zhulu','yingbian'],
plays:[],

View File

@ -15563,6 +15563,16 @@
if(event.popup!==false){
player.$damagepop(num,'water');
}
if(_status.dying.contains(player)&&player.hp>0){
_status.dying.remove(player);
game.broadcast(function(list){
_status.dying=list;
},_status.dying);
var evt=event.getParent('_save');
if(evt&&evt.finish) evt.finish();
evt=event.getParent('dying');
if(evt&&evt.finish) evt.finish()
}
event.trigger('changeHp');
},
changeHujia:function(){
@ -16805,7 +16815,7 @@
if(this.classList.contains('minskin')&&this.node.name.querySelectorAll('br').length>=4){
this.node.name.classList.add('long');
}
if(info[4].contains('hiddenSkill')){
if(info[4].contains('hiddenSkill')&&!this.noclick){
if(!this.hiddenSkills) this.hiddenSkills=[];
this.hiddenSkills.addArray(skills);
skills=[];
@ -16869,7 +16879,7 @@
};
}
this.node.count.classList.add('p2');
if(info2[4].contains('hiddenSkill')){
if(info2[4].contains('hiddenSkill')&&!this.noclick){
if(!this.hiddenSkills) this.hiddenSkills=[];
this.hiddenSkills.addArray(info2[3]);
this.classList.add(_status.video?'unseen2_v':'unseen2');
@ -35041,7 +35051,7 @@
func=lib.filter.all;
}
var players=game.players.slice(0).concat(game.dead);
for(var i=0;i<game.players.length;i++){
for(var i=0;i<players.length;i++){
if(players[i].isOut()) continue;
if(func(players[i])){
list.add(players[i]);
@ -44500,6 +44510,7 @@
node.addEventListener('touchstart',ui.click.playertouchstart);
}
}
else node.noclick=true;
return node;
},

View File

@ -6,6 +6,7 @@ window.noname_package={
xinghuoliaoyuan:'星火燎原',
yijiang:'一将成名',
sp:'SP',
yingbian:'文德武备',
sp2:'系列专属',
extra:'神将',
mobile:'移动版',

View File

@ -33,6 +33,7 @@ window.noname_source_list=[
'character/xianjian.js',
'character/xinghuoliaoyuan.js',
'character/yijiang.js',
'character/yingbian.js',
'character/yxs.js',
'game/asset.js',
'game/codemirror.js',

View File

@ -1,26 +1,27 @@
window.noname_update={
version:'1.9.110.4',
update:'1.9.110.3',
version:'1.9.110.5',
update:'1.9.110.4',
changeLog:[
'君临天下EX',
'辛毗、糜夫人、吴景、SP荀谌',
'文德武备独立分包',
'彻里吉、石苞、潘淑、卫瓘、张邈',
'国战唐咨、刘琦、张鲁、士燮技能调整',
'bug修复',
],
files:[
//'card/extra.js',
'card/extra.js',
//'card/gujian.js',
//'card/guozhan.js',
//'card/gwent.js',
//'card/huanlekapai.js',
//'card/mtg.js',
//'card/sp.js',
'card/standard.js',
//'card/standard.js',
//'card/swd.js',
//'card/yunchou.js',
//'card/yingbian.js',
'card/yingbian.js',
//'card/zhenfa.js',
//'card/zhulu.js',
//'character/diy.js',
'character/diy.js',
//'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
@ -31,8 +32,8 @@ window.noname_update={
//'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,14 +41,15 @@ window.noname_update={
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
'character/yijiang.js',
'character/yxs.js',
'character/yingbian.js',
//'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
//'layout/default/layout.css',
//'layout/default/menu.css',
//'layout/nova/layout.css',
//'mode/boss.js',
//'mode/brawl.js',
'mode/brawl.js',
//'mode/chess.js',
//'mode/doudizhu.js',
'mode/guozhan.js',
@ -59,10 +61,10 @@ window.noname_update={
'game/game.js',
//'game/keyWords.js',
//'game/NoSleep.js',
//'game/config.js',
//'game/package.js',
'game/config.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: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
image/character/cheliji.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 94 KiB

BIN
image/character/panshu.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

BIN
image/character/shibao.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
image/character/weiguan.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

View File

@ -2248,7 +2248,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
['liubei','guanyu','zhangfei'],
['caocao','guojia','xunyu'],
['sunquan','zhangzhang','zhouyu'],
['re_yuanshao','guotufengji','yj_jushou']
['re_yuanshao','guotufengji','yj_jushou'],
['jin_simayi','jin_simazhao','jin_wangyuanji'],
];
if(_status.keyVerified) list.push(['key_yuri','key_yuzuru','sp_key_kanade'])
list.randomSort();
@ -2310,6 +2311,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
shu:[],
wu:[],
qun:[],
jin:[],
key:[],
};
var map3=[];
@ -2408,6 +2410,48 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player.addTempSkill('qunxin_temp','phaseDiscardEnd');
},
},
_jiazu_jin:{
trigger:{player:'phaseDrawEnd'},
popup:'晋势',
prompt2:'摸牌阶段结束时,你可以展示你于此阶段内因摸牌而获得的牌。若这些牌的花色均不同,则你摸一张牌。',
filter:function(event,player){
var hs=player.getCards('h');
return player.group=='jin'&&hs.length>0&&player.getHistory('gain',function(evt){
if(evt.getParent().name!='draw'||evt.getParent('phaseDraw')!=event) return false;
for(var i of evt.cards){
if(hs.contains(i)) return true;
}
return false;
}).length>0;
},
check:function(event,player){
var hs=player.getCards('h'),cards=[],suits=[];
player.getHistory('gain',function(evt){
if(evt.getParent().name!='draw'||evt.getParent('phaseDraw')!=event) return false;
for(var i of evt.cards){
if(hs.contains(i)){
cards.add(i);
suits.add(get.suit(i,player));
}
}
});
return cards.length==suits.length;
},
content:function(){
var hs=player.getCards('h'),cards=[],suits=[];
player.getHistory('gain',function(evt){
if(evt.getParent().name!='draw'||evt.getParent('phaseDraw')!=trigger) return false;
for(var i of evt.cards){
if(hs.contains(i)){
cards.add(i);
suits.add(get.suit(i,player));
}
}
});
player.showCards(cards,get.translation(player)+'发动了【晋势】');
if(cards.length==suits.length) player.draw();
},
},
_jiazu_key:{
enable:'phaseUse',
usable:1,
@ -2513,6 +2557,27 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player.draw();
},
},
_jiazu_awaken_jin:{
popup:'洛阳',
intro:{
content:'锁定技结束阶段若你手牌中的花色数小于3则你摸一张牌。',
},
trigger:{player:'phaseJieshuBegin'},
forced:true,
filter:function(event,player){
if(!player._jiazuAwaken||player.group!='jin') return false;
var hs=player.getCards('h'),suits=[];
if(hs.length<3) return true;
for(var i of hs){
suits.add(get.suit(i,player));
if(suits.length>2) return false;
}
return true;
},
content:function(){
player.draw();
},
},
_jiazu_awaken:{
trigger:{global:'die'},
forced:true,
@ -2557,6 +2622,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
popup:'群心',
prompt2:'锁定技弃牌阶段开始时若你的手牌数比体力值多2或更多你本回合手牌上限+1若你已损失体力值大于1你手牌上限+1',
},
_jiazu_jin:{
popup:'晋势',
prompt2:'摸牌阶段结束时,你可以展示你于此阶段内因摸牌而获得的牌。若这些牌的花色均不同,则你摸一张牌。',
},
_jiazu_key:{
popup:'键魂',
prompt2:'出牌阶段限一次你可以摸一张牌并获得1点护甲。若如此做你于当前回合结束时失去1点体力。',
@ -2585,6 +2654,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
content:'锁定技,当你使用锦囊牌指定其他角色为目标后,你摸一张牌。',
},
},
_jiazu_awaken_jin:{
popup:'洛阳',
intro:{
content:'锁定技结束阶段若你手牌中的花色数小于3则你摸一张牌。',
},
},
_jiazu_awaken_key:{
popup:'光坂',
intro:{

View File

@ -264,7 +264,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'4':[
'gz_re_lidian','gz_yuejin','gz_huangzhong',
'gz_menghuo','gz_sunshangxiang','gz_lvmeng',
'gz_lvbu',
'gz_lvbu','gz_shibao',
],
'3':[
'gz_simayi','gz_luxun','gz_wuguotai',
@ -296,6 +296,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'gz_lingtong','gz_sunshangxiang','gz_sunce',
'gz_re_yuanshao','gz_yuanshu','gz_hetaihou',
'gz_jin_simashi','gz_sp_duyu','gz_miheng',
'gz_shibao',
],
'6':[
'gz_zhenji','gz_guojia','gz_yujin',
@ -310,7 +311,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'gz_re_lusu','gz_sunquan','gz_ganning',
'gz_zhangxiu','gz_liqueguosi','gz_huatuo',
'gz_zhanghuyuechen','gz_re_xushu','gz_mifangfushiren',
'gz_wujing',
'gz_wujing','gz_weiguan',
],
'4':[
'gz_dianwei','gz_dengai','gz_xunyu',
@ -349,7 +350,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
guozhan_bian:["gz_liqueguosi","gz_zuoci","gz_bianfuren","gz_xunyou","gz_lingtong","gz_lvfan","gz_masu","gz_shamoke",],
guozhan_quan:["gz_cuimao","gz_yujin","gz_wangping","gz_fazheng","gz_wuguotai","gz_lukang","gz_yuanshu","gz_zhangxiu"],
guozhan_jun:["gz_jun_caocao","gz_jun_sunquan","gz_jun_liubei","gz_jun_zhangjiao"],
guozhan_jin:['gz_jin_simayi','gz_jin_simazhao','gz_jin_simashi','gz_jin_zhangchunhua','gz_jin_wangyuanji','gz_jin_xiahouhui','gz_duyu','gz_zhanghuyuechen','gz_jin_yanghuiyu','gz_simazhou'],
guozhan_jin:['gz_jin_simayi','gz_jin_simazhao','gz_jin_simashi','gz_jin_zhangchunhua','gz_jin_wangyuanji','gz_jin_xiahouhui','gz_duyu','gz_zhanghuyuechen','gz_jin_yanghuiyu','gz_simazhou','gz_shibao','gz_weiguan'],
guozhan_single:['gz_re_xushu','gz_yanbaihu','gz_wujing','gz_dongzhao'],
guozhan_double:['gz_tangzi','gz_liuqi','gz_mengda','gz_mifangfushiren','gz_zhanglu','gz_shixie'],
guozhan_yexinjia:['gz_zhonghui'],
@ -511,6 +512,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_zhanghuyuechen:['male','jin',4,['xijue']],
gz_jin_yanghuiyu:['female','jin',3,['ciwei','caiyuan']],
gz_simazhou:['male','jin',4,['caiwang','naxiang']],
gz_shibao:['male','jin',4,['zhuosheng']],
gz_weiguan:['male','jin',3,['zhongyun','shenpin']],
gz_key_ushio:['female','key',3,['ushio_huanxin','ushio_xilv'],['doublegroup:key:wei:shu:wu:qun:jin']],
}
@ -1093,7 +1096,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return num+(lib.skill.gzxingzhao.getNum()>2?4:0);
},
},
group:['gzxingzhao_xunxun','gzxingzhao_draw','gzxingzhao_lose'],
group:['gzxingzhao_xunxun','gzxingzhao_use','gzxingzhao_lose'],
subfrequent:['use'],
subSkill:{
xunxun:{
audio:2,
@ -1123,6 +1127,20 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
},
use:{
audio:'gzxingzhao',
trigger:{
player:['useCard','damageEnd'],
},
forced:true,
filter:function(event,player){
return (event.name=='damage'||get.type(event.card)=='equip')&&lib.skill.gzxingzhao.getNum()>1&&!player.isMaxHandcard();
},
frequent:true,
content:function(){
player.draw();
},
},
draw:{
audio:'gzxingzhao',
trigger:{player:'damageEnd'},
@ -1297,8 +1315,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else if(target.isIn()&&player.countCards('he',function(card){
return !card.hasGaintag('gzwenji');
})){
player.chooseCard('he',true,'交给'+get.translation(target)+'一张其他牌',function(card){
player.chooseCard('he','交给'+get.translation(target)+'一张其他牌,或弃置“问计”牌',function(card){
return !card.hasGaintag('gzwenji');
}).set('ai',function(card){
var player=_status.event.player,target=_status.event.getParent().target,val=get.value(card,target),hs=player.getCards('h',function(card){
return card.hasGaintag('gzwenji');
})[0];
if(get.attitude(player,target)>0||(hs&&get.value(hs)>val)) return 1/Math.min(0.1,val);
return 0;
});
}
else event.finish();
@ -1307,6 +1331,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
target.gain(result.cards,player,'give');
player.removeGaintag('gzwenji');
}
else{
var cards=player.getCards('h',function(card){
return card.hasGaintag('gzwenji');
});
if(cards.length) player.discard(cards);
}
},
subSkill:{
respond:{
@ -1381,6 +1411,48 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
gzbushi:{
audio:2,
trigger:{player:'damageEnd'},
frequent:true,
content:function(){
'step 0'
event.count=trigger.num;
'step 1'
event.count--;
player.draw();
'step 2'
if(event.count>0){
player.chooseBool(get.prompt2('gzbushi')).set('frequentSkill','gzbushi');
}
else event.finish();
'step 3'
if(result.bool) event.goto(1);
},
group:'gzbushi_draw',
subSkill:{
draw:{
trigger:{source:'damageSource'},
direct:true,
noHidden:true,
filter:function(event,player){
return event.player.isEnemyOf(player)&&event.player.isIn();
},
content:function(){
'step 0'
trigger.player.chooseBool('是否对'+get.translation(player)+'发动【米道】?','你摸一张牌,然后其摸一张牌');
'step 1'
if(result.bool){
player.logSkill('gzmidao',trigger.player);
game.asyncDraw([trigger.player,player]);
}
else event.finish();
'step 2'
game.delayx();
},
},
},
},
gzbushi_old:{
audio:2,
trigger:{
player:'damageEnd',
@ -1426,24 +1498,26 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
audio:2,
trigger:{global:'useCardToPlayered'},
direct:true,
noHidden:true,
//noHidden:true,
filter:function(event,player){
var target=event.player;
return event.isFirstTarget&&target.isFriendOf(player)&&
target.isPhaseUsing()&&(target==player||player.hasSkill('gzmidao'))&&
(['basic','trick'].contains(get.type(event.card))&&get.tag(event.card,'damage')>0)&&
event.cards&&event.cards.length&&!target.hasSkill('gzmidao2')&&target.countCards('h')>0;
event.cards&&event.cards.length&&!target.hasSkill('gzmidao2');
},
content:function(){
'step 0'
if(player==trigger.player) player.chooseBool(get.prompt('gzmidao'),'修改'+get.translation(trigger.card)+'的花色和伤害属性').ai=(()=>false);
else trigger.player.chooseCard('h','是否对'+get.translation(player)+'发动【米道】?','将一张手牌交给该角色,然后该角色可以修改'+get.translation(trigger.card)+'的花色和伤害属性').ai=(()=>-1);
//if(player==trigger.player) player.chooseBool(get.prompt('gzmidao'),'修改'+get.translation(trigger.card)+'的花色和伤害属性').ai=(()=>false);
//else
trigger.player.chooseBool('是否对'+get.translation(player)+'发动【米道】?','令该角色修改'+get.translation(trigger.card)+'的花色和伤害属性');//.ai=(()=>-1);
'step 1'
if(result.bool){
player.logSkill('gzmidao');
trigger.player.addTempSkill('gzmidao2');
if(player!=trigger.player){
trigger.player.line(player,'green');
player.gain(result.cards,trigger.player,'giveAuto');
//player.gain(result.cards,trigger.player,'giveAuto');
}
}
else event.finish();
@ -1643,7 +1717,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'step 2'
var list=['失去一点体力','令'+get.translation(player)+'摸两张牌'];
event.addIndex=0;
if(target.countCards('he',function(card){
if(target.countCards('h',function(card){
return lib.filter.cardDiscardable(card,target,'gzlixia');
})>1) list.unshift('弃置两张牌');
else event.addIndex++;
@ -1661,7 +1735,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'step 3'
switch(result.index+event.addIndex){
case 0:
target.chooseToDiscard(2,'he',true);
target.chooseToDiscard(2,'h',true);
break;
case 1:
target.loseHp();
@ -5117,7 +5191,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
for(var i=0;i<player.storage.qianhuan.length;i++){
suits.add(get.suit(player.storage.qianhuan[i]));
}
return player.sameIdentityAs(event.player)&&player.countCards('he',function(card){
return player.isFriendOf(event.player)&&player.countCards('he',function(card){
return !suits.contains(get.suit(card));
});
},
@ -5131,16 +5205,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player.chooseCard('he',get.prompt2('qianhuan'),function(card){
return !_status.event.suits.contains(get.suit(card));
}).set('ai',function(card){
if(!_status.event.temp){
return 9-get.value(card);
}
return 0;
}).set('temp',!player.hasStockSkill('qianhuan')).set('suits',suits);
}).set('suits',suits);
'step 1'
if(result.bool){
var card=result.cards[0]
player.storage.qianhuan.add(card);
player.lose(card,ui.special);
player.lose(card,ui.special,'toStorage');
player.$give(card,player,false);
player.markSkill('qianhuan',true);
player.logSkill('qianhuan');
@ -8868,24 +8939,27 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_shixie:'士燮',
gz_zhanglu:'张鲁',
gzxingzhao:'兴棹',
gzxingzhao_info:'锁定技①摸牌阶段开始时若X不小于1则你可以发动〖恂恂〗的效果。②当你受到伤害后若X不小于2且你和伤害来源的手牌数不相等则你于伤害来源中手牌数较少的角色摸一张牌。③若X不小于3则你的手牌上限+4。④当你失去装备区的牌后若X不小于4则你摸一张牌。X为场上有受伤角色的势力数',
gzxingzhao_info:'锁定技①摸牌阶段开始时若X不小于1则你可以发动〖恂恂〗的效果。②当你受到伤害后或使用装备牌时若X不小于2且你的手牌数不为全场最多则你摸一张牌。③若X不小于3则你的手牌上限+4。④当你失去装备区的牌后若X不小于4则你摸一张牌。X为场上有受伤角色的势力数',
gzxingzhao_old_info:'锁定技①摸牌阶段开始时若X不小于1则你可以发动〖恂恂〗的效果。②当你受到伤害后若X不小于2且你和伤害来源的手牌数不相等则你于伤害来源中手牌数较少的角色摸一张牌。③若X不小于3则你的手牌上限+4。④当你失去装备区的牌后若X不小于4则你摸一张牌。X为场上有受伤角色的势力数',
qiuan:'求安',
qiuan_info:'当你受到伤害后,若此伤害的渠道有对应的实体牌且你的武将牌上没有“函”,则你可以防止此伤害并将这些牌置于你的武将牌上,称为“函”。',
liangfan:'量反',
liangfan2:'量反',
liangfan_info:'锁定技准备阶段开始时若你的武将牌上有“函”则你获得这些牌然后失去1点体力。当你于此回合内因使用实体牌中包含“函”的牌且执行这些牌的效果而对目标角色造成伤害时你可以获得目标角色的一张牌。',
gzwenji:'问计',
gzwenji_info:'出牌阶段开始时,你可令一名其他角色交给你一张牌。然后若该角色:未确定势力或势力与你相同,则你于本回合内使用实体牌包含“问计”牌的牌无距离和次数限制,且不可被其他角色响应。与你势力不同,则你交给其一张不为“问计”牌的牌。',
gzwenji_info:'出牌阶段开始时,你可令一名其他角色交给你一张牌。然后若该角色:未确定势力或势力与你相同,则你于本回合内使用实体牌包含“问计”牌的牌无距离和次数限制,且不可被其他角色响应。与你势力不同,则你交给其一张不为“问计”牌的牌或弃置“问计”牌。',
gztunjiang:'屯江',
gztunjiang_info:'结束阶段若你于本回合的出牌阶段内使用过牌且这些牌均未指定其他角色为目标则你可摸X张牌X为势力数。',
gzbushi:'布施',
gzbushi_info:'锁定技当你受到1点伤害后你令一名与你势力相同的角色摸一张牌当你对其他角色造成伤害后你令一名与该角色势力相同的角色摸一张牌。',
gzbushi_info:'当你受到1点伤害后你可摸一张牌。当你对其他势力的角色造成伤害后其可摸一张牌然后你摸一张牌。',
gzbushi_old_info:'锁定技当你受到1点伤害后你令一名与你势力相同的角色摸一张牌当你对其他角色造成伤害后你令一名与该角色势力相同的角色摸一张牌。',
gzmidao:'米道',
gzmidao_info:'与你势力相同的其他角色的出牌阶段限一次。该角色使用伤害性基本牌或普通锦囊牌指定第一个目标后,其可交给你一张手牌,然后你可改变此牌的花色和伤害属性。',
gzmidao_info:'与你势力相同的角色的出牌阶段限一次。该角色使用伤害性基本牌或普通锦囊牌指定第一个目标后,其可令你改变此牌的花色和伤害属性。',
gzmidao_old_info:'与你势力相同的其他角色的出牌阶段限一次。该角色使用伤害性基本牌或普通锦囊牌指定第一个目标后,其可交给你一张手牌,然后你可改变此牌的花色和伤害属性。',
gzbiluan:'避乱',
gzbiluan_info:'锁定技,其他角色计算至你的距离时+XX为你装备区内的牌数且至少为1。',
gzlixia:'礼下',
gzlixia_info:'与你势力不同的角色的准备阶段开始时,其可弃置你装备区内的一张牌,然后其选择一项:①弃置两张牌。②失去1点体力。③令你摸两张牌。',
gzlixia_info:'与你势力不同的角色的准备阶段开始时,其可弃置你装备区内的一张牌,然后其选择一项:①弃置两张牌。②失去1点体力。③令你摸两张牌。',
mffengshi:'锋势',
mffengshi_info:'当你使用牌指定唯一目标后,或成为其他角色使用牌的唯一目标后,若此牌使用者的手牌数大于此牌目标的手牌数,则此牌的使用者可令你弃置自己和对方的各一张牌,并令此牌的伤害值+1。',
gzkuangcai:'狂才',