Our Song.

马上就要高考了,这次的版本更新应该是考前的最后一次更新了。
真的很感谢这段时间以来身边的大家。身边的老师和同学也好,Key圈的各位键子们也好,无名杀玩家们也好,正是有了你们的陪伴和支持,我才能够坚持下来,走到今天的这一步。
祝愿包括我自己在内的所有考生高考顺利,金榜题名吧!
最后,在这里复制粘贴一下《Angel Beats!》TV版的ED,某种意义上也是仲村ゆり的角色歌的《Brave Song》的歌词:
```
いつもひとりで歩いてた 振り返るとみんなは遠く
一路走来形单影只 转身回首望去 大家已经远去
それでもあたしは歩いた それが強さだった
即使如此我依然前行 这正是我的坚强
もう何も恐くない そう呟いてみせる
经历 使我无所畏惧 再多冷漠也是一句叹息
いつか人は一人になって 思い出の中に生きてくだけ
总有一天人将学会独立 在回忆中寻找自己的影子
孤独さえ愛し笑ってられるように あたしは戦うんだ
为了那笑容下与孤独作伴的勇气 我决定战斗到底
涙なんて見せないんだ
我已不再哭泣
いつもひとりで歩いてた 行く先には崖が待ってた
一路走来形单影只 而前方等着的却是山崖
それでもあたしは歩いた 強さの証明のため
即使如此我依然前行 为了证明这份坚强
吹き付ける強い風 汗でシャツが張りつく
强风吹过 汗水将衣服粘湿
いつか忘れてしまえるなら 生きることそれはたやすいもの
若有一天将一切尽数忘掉的话 生存其实并不困难
忘却の彼方へと落ちていくなら それは逃げることだろう
而若坠落在那忘却的彼端的话 那便成了逃避吧
生きた意味すら消えるだろう
就连生存的意义也会消失殆尽吧
風はやがて凪いでた 汗も乾いて
风终于停息 汗也干了
お腹が空いてきたな 何かあったっけ
肚子也饿了啊 有什么可吃的吗
賑やかな声と共にいい匂いがやってきた
同熙攘的声音一道 喷香的味道也传了过来
いつもひとりで歩いてた みんなが待っていた
一路走来形单影只 大家在前方等着我
いつか人は一人になって 思い出の中に生きてくだけ
总有一天人将学会独立 在回忆中寻找自己的影子
それでもいい 安らかなこの気持ちは それを仲間と呼ぶんだ
这倒也没什么 这种安宁的感情 称之为伙伴
いつかみんなと過ごした日々も忘れてどこかで生きてるよ
有一天我会忘掉和大家在一起度过的日子而生活在他乡
その時はもう強くなんかないよ
到了那时 我不会再坚强了
普通の女の子の弱さで涙を零すよ
像普通的女孩一样流下柔弱的泪水
```
This commit is contained in:
Spmario233 2020-07-03 13:22:31 +08:00 committed by GitHub
parent 4f52b77615
commit 59dbed1f6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 787 additions and 97 deletions

BIN
audio/die/ol_sunjian.mp3 Normal file

Binary file not shown.

BIN
audio/skill/bizheng1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/bizheng2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/fz_liegong.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/fz_wusheng.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
audio/skill/wulie1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/wulie2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/yidian1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/yidian2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -153,7 +153,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
result:{
target:function(player,target,card,isLink){
if(!isLink&&player.hasSkill('jiu')&&!target.hasSkillTag('filterDamage',null,{
if(!isLink&&player.hasSkill('jiu')){
if(!target.hasSkillTag('filterDamage',null,{
player:player,
card:card,
jiu:true,
@ -165,6 +166,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
return -4;
}
}
return -0.5;
}
return -1.5;
},
},
@ -1165,7 +1168,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
var es=target.getCards('e');
var noe=(es.length==0||target.hasSkillTag('noe'));
var noe2=(es.length==1&&es[0].name!='tengjia'&&get.value(es[0])<=0);
var noe2=(es.filter(function(esx){
return esx.name=='tengjia'||get.value(esx)>0
}).length==0);
var noh=(nh==0||target.hasSkillTag('noh'));
if(noh&&(noe||noe2)) return 0;
if(att<=0&&!target.countCards('he')) return 1.5;

View File

@ -51,6 +51,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_midori:['female','key',3,['midori_nonghuan','midori_tishen']],
key_kyoko:['female','key',3,['kyoko_juwu','kyoko_zhengyi']],
key_shizuru:['female','key',3,['shizuru_nianli','shizuru_benzhan']],
key_shiorimiyuki:['female','key',3,['shiorimiyuki_banyin','shiorimiyuki_tingxian']],
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
// diy_hanlong:['male','wei',4,['siji','ciqiu']],
diy_feishi:['male','shu',3,['shuaiyan','moshou']],
@ -133,7 +134,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy:{
diy_tieba:["diy_wenyang","ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_zhangwei"],
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_kagari","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"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_kagari","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"],
diy_yongjian:["ns_chendao","yj_caoang"],
},
},
@ -149,6 +150,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
},
characterTitle:{
key_shiorimiyuki:'#rAngel Beats!',
key_shizuru:'#bRewrite',
key_kyoko:'#bSummer Pockets',
sp_key_kanade:'#rAngel Beats!',
@ -234,6 +236,81 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_lucia:['key_shizuru'],
},
skill:{
shiorimiyuki_banyin:{
trigger:{player:['damageEnd','recoverEnd']},
direct:true,
filter:function(event,player){
return game.hasPlayer(function(current){
return current!=player&&current.isDamaged();
})
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('shiorimiyuki_banyin'),'令一名其他角色回复1点体力',lib.filter.notMe).set('ai',function(target){
var player=_status.event.player;
return get.recoverEffect(target,player,player);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('shiorimiyuki_banyin',target);
target.recover();
}
},
},
shiorimiyuki_tingxian:{
trigger:{player:'phaseUseBegin'},
direct:true,
content:function(){
'step 0'
player.chooseControl('一张','两张','三张','cancel2').set('prompt',get.prompt2('shiorimiyuki_tingxian')).set('ai',function(){
var player=_status.event.player;
var max=Math.min(player.hp+1,player.maxHp)
var min=Math.min(Math.max(max-2,max-player.hp),3);
if(min) return min-1;
return 3;
});
'step 1'
if(result.control=='cancel2'){event.finish();return;}
var num=1+result.index;
player.draw(num);
'step 2'
event.cards=result;
player.recover();
'step 3'
if(get.itemtype(cards)=='cards'){
trigger.shiorimiyuki_tingxian=cards;
player.addTempSkill('shiorimiyuki_tingxian2');
}
},
},
shiorimiyuki_tingxian2:{
trigger:{player:'phaseUseEnd'},
forced:true,
charlotte:true,
mod:{
aiOrder:function(player,card,num){
var cards=_status.event.getParent('phaseUse').shiorimiyuki_tingxian;
if(cards&&cards.contains(card)) return num+2;
},
aiValuetarget:function(player,card,num){
var cards=_status.event.getParent('phaseUse').shiorimiyuki_tingxian;
if(cards&&cards.contains(card)) return 0;
},
},
filter:function(event,player){
var hs=player.getCards('h');
return Array.isArray(event.shiorimiyuki_tingxian)&&event.shiorimiyuki_tingxian.filter(function(card){
return hs.contains(card);
}).length>0
},
content:function(){
var hs=player.getCards('h');
player.loseHp(trigger.shiorimiyuki_tingxian.filter(function(card){
return hs.contains(card);
}).length);
},
},
shizuru_nianli:{
enable:'chooseToUse',
prompt:'展示一张♦/♣/♥/♠手牌,然后视为使用一张雷杀/闪/桃/无懈可击',
@ -426,9 +503,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
player.chooseButton([get.prompt('kyoko_juwu'),[1,Infinity],trigger.cards.filter(function(card){
player.chooseButton([get.prompt('kyoko_juwu'),trigger.cards.filter(function(card){
return get.position(card,true)=='d'&&get.type(card,false)=='equip';
})]);
})],[1,Infinity]).set('ai',function(){return 1});
'step 1'
if(result.bool){
player.gain(result.links,'gain2','log');
@ -8722,6 +8799,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_midori:'西园美鸟',
key_kyoko:'岬镜子',
key_shizuru:'中津静流',
key_shiorimiyuki:'关根诗织&入江美雪',
key_shiorimiyuki_ab:'关根入江',
lucia_duqu:'毒躯',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
lucia_zhenren:'振刃',
@ -8932,9 +9011,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kyoko_shelie:'涉猎',
kyoko_zhiheng:'制衡',
shizuru_nianli:'念力',
shizuru_nianli_info:'每轮限一次,你可以展示一张♦/♣/♥/♠手牌,然后视为使用一张雷【杀】/【闪】/【桃】/【无懈可击】。',
shizuru_nianli_info:'每轮限一次,你可以展示一张♦/♣/♥/♠手牌,然后视为使用一张不计入次数限制和记录的雷【杀】/【闪】/【桃】/【无懈可击】。',
shizuru_benzhan:'奔战',
shizuru_benzhan_info:'当你使用或打出牌响应其他角色或其他角色使用或打出牌响应你后若此牌为基本牌你可令一名角色弃置两张牌或令一名角色摸两张牌非基本牌你可对一名角色造成1点伤害或令一名其他角色回复1点体力。',
shiorimiyuki_banyin:'伴音',
shiorimiyuki_banyin_info:'当你受到伤害或回复体力后你可令一名其他角色回复1点体力。',
shiorimiyuki_tingxian:'铤险',
shiorimiyuki_tingxian_info:'出牌阶段开始时你可以摸至多三张牌。若如此做你回复1点体力且此阶段结束时你失去X点体力。X为你获得的牌中仍在手牌区的牌的数量',
shiorimiyuki_tingxian2:'铤险',
yj_caoang:'SP曹昂',

View File

@ -7,11 +7,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
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"],
mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning"],
mobile_others:["re_jikang","old_bulianshi","old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","xin_yuanshao","re_liushan","xin_xiahoudun","re_sp_zhugeliang","re_heqi","re_guanqiujian","re_pangtong","old_liuzan","xin_chengpu","re_sunjian"],
mobile_sunben:["re_sunben"],
},
},
character:{
yj_zhanghe:['male','qun',4,['zhilve']],
yj_xuhuang:['male','qun',4,['xhzhiyan']],
re_sunjian:['male','wu',4,['gzyinghun','repolu']],
zhengxuan:['male','qun',3,['zhengjing']],
dengzhi:['male','shu',3,['jimeng','shuaiyan']],
@ -278,6 +281,130 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterFilter:{},
skill:{
//一 将 成 名
zhilve:{
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
content:function(){
'step 0'
if(!player.canMoveCard()) event._result={index:1};
else player.chooseControl().set('choiceList',[
'移动场上的一张牌',
'本回合的摸牌阶段多摸一张牌且第一张杀无距离次数限制',
]).set('ai',function(){return 1});
'step 1'
if(result.index==1){
player.addTempSkill('zhilve_yingzi');
if(!player.getHistory('useCard',function(card){
return card.card.name=='sha';
}).length) player.addTempSkill('zhilve_xiandeng');
event.finish();
}
else player.moveCard(true);
'step 2'
if(result.position=='e') player.loseHp();
else player.addTempSkill('zhilve_dis');
},
subSkill:{
dis:{
mod:{
maxHandcard:function(player,num){
return num-1;
},
},
},
yingzi:{
trigger:{player:'phaseDrawBegin2'},
popup:false,
forced:true,
filter:function(event,player){
return !event.numFixed;
},
content:function(){trigger.num++},
},
xiandeng:{
mod:{
targetInRange:function(card,player){
if(card.name=='sha') return true;
},
},
trigger:{player:'useCard1'},
forced:true,
popup:false,
firstDo:true,
filter:function(event,player){
return event.card.name=='sha';
},
content:function(){
player.removeSkill(event.name);
if(trigger.addCount!==false){
trigger.addCount=false;
var stat=player.getStat('card');
if(stat&&stat.sha) stat.sha--;
}
},
},
},
},
xhzhiyan:{
enable:'phaseUse',
filter:function(event,player){
return player.countCards('h')!=player.maxHp;
},
filterCard:true,
selectCard:function(){
var player=_status.event.player;
var num=Math.max(0,player.countCards('h')-player.maxHp);
return [num,num];
},
check:function(card){
var player=_status.event.player;
if(player.getUseValue(card)<=0&&game.hasPlayer(function(current){
return current!=player&&get.value(card,current)*get.attitude(player,current)>0;
})) return 1;
return 0;
},
content:function(){
'step 0'
if(!cards.length){
player.draw(player.maxHp-player.countCards('h'));
player.addTempSkill('zishou2');
event.finish();
}
else{
cards=cards.filterInD('d');
if(cards.length) player.chooseButton(['是否将其中的一张牌交给一名其他角色?',cards]).set('',function(button){
var player=_status.event.player;
if(game.hasPlayer(function(current){
return current!=player&&get.value(button.link,current)*get.attitude(player,current)>0;
})) return Math.abs(get.value(button.link));
return 0;
});
else event.finish();
}
'step 1'
if(result.bool){
event.card=result.links[0];
player.chooseTarget(true,lib.filter.notMe,'选择一名其他角色获得'+get.translation(event.card)).set('ai',function(target){
return get.value(_status.event.getParent().card,target)*get.attitude(_status.event.player,target);
});
}
else event.finish();
'step 2'
var target=result.targets[0];
player.line(target,'green');
target.gain(card,'gain2','log');
},
ai:{
order:function(obj,player){
if(player.countCards('h')>player.maxHp) return 10;
return 0.5;
},
result:{
player:1,
},
},
},
//水 果 忍 者
zhengjing_guanju:{audio:true},
zhengjing:{
@ -2830,7 +2957,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
global:"phaseDrawAfter",
},
filter:function (event,player){
if(!player.storage.xinfu_zhaoxin||!player.storage.xinfu_zhaoxin.length) return false;
if(!player.storage.xinfu_zhaoxin||player.storage.xinfu_zhaoxin.length) return false;
return player==event.player||player.inRange(event.player);
},
direct:true,
@ -4593,6 +4720,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhengjing:'整经',
zhengjing_info:'出牌阶段,你可以整理卡牌。然后,你将整理出的卡牌置于一名角色的武将牌上。该角色的准备阶段获得这些牌,跳过此回合的判定和摸牌阶段且本回合内不能发动【整经】。',
zhengjing2:'整经',
mobile_yijiang:'武将设计征集大赛',
yj_zhanghe:'SP张郃',
yj_zhangliao:'SP张辽',
yj_xuhuang:'SP徐晃',
yj_ganning:'SP甘宁',
xhzhiyan:'治严',
xhzhiyan_info:'出牌阶段,若你的手牌数不等于体力上限,则你可以将手牌摸至/弃至手牌上限,然后本回合不能对其他角色使用牌/可以将弃置的一张牌交给一名其他角色。',
zhilve:'知略',
zhilve_info:'锁定技准备阶段你选择一项1.移动场上装备区的一张牌并失去1点体力。2.移动场上判定区的一张牌并令本回合手牌上限-1。3.本回合摸牌阶段多摸一张牌且使用的第一张【杀】无距离限制且不计入次数限制。',
}
};
});

View File

@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
characterSort:{
old:{
old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_guanqiujian","xiahouyuan","weiyan","xiaoqiao"],
old_refresh:["old_zhangfei","old_huatuo","old_zhaoyun"],
old_refresh:["old_zhangfei","old_huatuo","old_zhaoyun","ol_huaxiong"],
old_yijiang1:["masu","xushu","fazheng","yujin","xin_yujin","old_xusheng","old_lingtong","ol_yujin"],
old_yijiang2:["old_madai","old_zhonghui","old_wangyi","old_guanzhang"],
old_yijiang3:["liru","old_zhuran","ol_manchong","old_fuhuanghou","old_caochong"],
@ -17,6 +17,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
ol_huaxiong:["male","qun",6,["new_reyaowu"]],
old_wangyun:['male','qun',4,['wylianji','moucheng']],
panfeng:['male','qun',4,['kuangfu']],
xiaoqiao:['female','wu',3,['tianxiang','hongyan']],
@ -882,6 +883,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_liuyu:'OL刘虞',
old_wangyun:'旧王允',
old_zhaoyun:'旧赵云',
ol_huaxiong:'旧华雄',
old_fuhun:'父魂',
old_fuhun_info:'摸牌阶段开始时,你可以放弃摸牌,改为从牌堆顶亮出两张牌并获得之,若亮出的牌颜色不同,你获得技能“武圣”、“咆哮”,直到回合结束。',

View File

@ -59,7 +59,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_sunshangxiang:['female','wu',3,['xiaoji','rejieyin']],
re_zhenji:['female','wei',3,['reluoshen','reqingguo']],
re_zhugeliang:['male','shu',3,['reguanxing','kongcheng']],
re_huaxiong:["male","qun",6,["new_reyaowu"]],
re_huaxiong:["male","qun",6,["reyaowu"]],
re_zhangjiao:['male','qun',3,['xinleiji','xinguidao','huangtian'],['zhu']],
xin_yuji:['male','qun',3,['reguhuo']],
@ -137,9 +137,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'damageBegin3'},
forced:true,
content:function(){
var num=Math.min(trigger.num,player.countMark('wulie2'));
trigger.num-=num;
player.removeMark('wulie2',num);
trigger.cancel();
player.removeMark('wulie2',1);
if(!player.storage.wulie2) player.removeSkill('wulie2');
},
},
@ -268,7 +267,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ollongdan:{
audio:'longdan_sha',
audioname:['re_zhaoyun','sp_zhaoyun'],
audioname:['re_zhaoyun'],
enable:['chooseToUse','chooseToRespond'],
prompt:'将杀当做闪,或将闪当做杀,或将桃当做酒,或将酒当做桃使用或打出',
viewAs:function(cards,player){
@ -3896,6 +3895,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
threaten:2,
},
},
reyaowu:{
trigger:{player:'damageBegin3'},
audio:'new_reyaowu',
forced:true,
filter:function(event){
return event.card&&(get.color(event.card)!='red'||event.source&&event.source.isAlive());
},
content:function(){
trigger[get.color(trigger.card)!='red'?'player':'source'].draw();
},
},
"new_reyaowu":{
trigger:{
player:"damageBegin3",
@ -3903,7 +3913,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//priority:1,
audio:2,
filter:function (event){
return event.card&&event.card.name=='sha';
return event.card&&event.card.name=='sha'&&(get.color(event.card)!='red'||event.source&&event.source.isAlive());
},
forced:true,
check:function (event){
@ -3918,11 +3928,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{
effect:{
target:function (card,player,target,current){
if(card.name=='sha'&&(get.color(card)=='red')){
return [1,-2];
if(card.name=='sha'&&(get.color(card)=='red')&&get.attitude(player,target)<=0){
return [1,0.8,1,0];
}
if(card.name=='sha'&&(get.color(card)=='black')){
return [0,-0.6];
return [1,0.4];
}
},
},
@ -6652,6 +6662,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"new_reqingnang_info":"出牌阶段,你可以弃置一张手牌,令一名本回合内未成为过〖青囊〗的目标的角色回复一点体力。若你弃置的是黑色牌,则你本回合内不能再发动〖青囊〗。",
"new_reyaowu":"耀武",
"new_reyaowu_info":"锁定技当一名角色使用【杀】对你造成伤害时若此杀为红色该角色回复1点体力或摸一张牌。否则则你摸一张牌。",
reyaowu:'耀武',
reyaowu_info:'锁定技,当你受到牌造成的伤害时,若此牌为红色,则伤害来源摸一张牌;否则你摸一张牌。',
reqingguo:'倾国',
reqingguo_info:'你可以将一张黑色牌当做【闪】使用或打出。',
@ -6862,7 +6874,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_sunjian:'界孙坚',
wulie:'武烈',
wulie2:'武烈',
wulie_info:'限定技,结束阶段,你可以失去任意点体力并指定等量的角色。这些角色各获得一枚「烈」。有「烈」的角色受到1点伤害时其移去一枚「烈」然后令伤害-1。',
wulie_info:'限定技,结束阶段,你可以失去任意点体力并指定等量的角色。这些角色各获得一枚「烈」。有「烈」的角色受到伤害时,其移去一枚「烈」,然后防止此伤害。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -177,8 +177,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.storage.zhengrong) player.storage.zhengrong=[];
player.storage.zhengrong.push(card);
player.markSkill('zhengrong');
game.delayx();
}
'step 3'
game.delayx();
},
marktext:'荣',
intro:{
@ -1587,13 +1588,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return (player.getHistory('useCard',function(evt){
return evt.getParent('phaseUse')==event;
}).length<game.countPlayer(function(current){return !current.inRange(player)}))&&game.hasPlayer(function(target){
return !target.inRange(player)&&target.countDiscardableCards(player,'he');
return target!=player&&!target.inRange(player)&&target.countDiscardableCards(player,'he');
});
},
content:function(){
'step 0'
player.chooseTarget("请选择〖掣政〗的目标","弃置一名攻击范围内不包含你的角色的一张牌",true,function(card,player,target){
return !target.inRange(player)&&target.countDiscardableCards(player,'he');
return target!=player&&!target.inRange(player)&&target.countDiscardableCards(player,'he');
}).ai=function(target){
return -get.attitude(player,target);
};
@ -2671,7 +2672,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
event.num=trigger.num;
'step 1'
player.chooseDrawRecover(get.prompt('xinkuanggu')).set('logSkill','xinkuanggu').set('prompt2','摸一张牌或回复1点体力');
player.chooseDrawRecover(get.prompt(event.name)).set('logSkill',event.name).set('prompt2','摸一张牌或回复1点体力');
'step 2'
if(result.control!='cancel2'){
event.num--;
@ -4511,7 +4512,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
yinghun:{
audio:2,
audioname:['re_sunjian','sunce','re_sunben','re_sunce'],
audioname:['re_sunjian','sunce','re_sunben','re_sunce','ol_sunjian'],
trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){
return player.hp<player.maxHp;
@ -4588,7 +4589,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
gzyinghun:{
audio:'yinghun',
audioname:['re_sunjian','sunce','re_sunben','re_sunce'],
audioname:['re_sunjian','sunce','re_sunben','re_sunce','ol_sunjian'],
trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){
return player.getDamagedHp()>0;

View File

@ -832,7 +832,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
direct:true,
filter:function(event,player){
return player.countCards('he')>0;
return player.countCards('h',function(card){
return _status.connectMode||get.type(card)!='basic';
})>0;
},
content:function(){
'step 0'
@ -841,7 +843,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
list.sortBySeat();
event.targets=list;
player.chooseToDiscard(get.prompt2('xiying'),'he').set('logSkill',['xiying',list]).set('ai',function(card){
player.chooseToDiscard(get.prompt2('xiying'),'h',function(card){
return get.type(card)!='basic';
}).set('logSkill',['xiying',list]).set('ai',function(card){
return _status.event.val-get.value(card)
}).set('val',function(){
return 4*Math.sqrt(game.countPlayer(function(current){
@ -876,11 +880,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
gangzhi:{
audio:2,
trigger:{player:'damageBefore'},
trigger:{
player:'damageBefore',
source:'damageBefore',
},
forced:true,
content:function(){
trigger.cancel();
player.loseHp(trigger.num);
trigger.player.loseHp(trigger.num);
},
},
beizhan:{
@ -1018,7 +1025,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
filterCard:true,
filterTarget:function(card,player,target){
//if(target.storage.mouzhi2&&target.storage.mouzhi2.contains(player)) return false;
if(target.storage.mouzhi2&&target.storage.mouzhi2.contains(player)) return false;
return target!=player;
},
delay:0,
@ -3607,7 +3614,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
next.target=trigger.player;
next.num=num;
next.setContent(function(){
if(target.isAlive()) player.chooseToDiscard(num,true);
if(target.isAlive()) player.chooseToDiscard(num,true,'he');
});
},
},
@ -6550,7 +6557,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
logTarget:'player',
check:function(event,player){
if(get.mode()=='guozhan'){
if(!event.player.isUnseen(1)&&get.guozhanRank(event.player.name2)<4) return false;
if(!event.player.isUnseen(1)&&get.guozhanRank(event.player.name2,event.player)<4) return false;
}
if(event.player.hasSkill('subplayer')) return false;
if(get.attitude(player,event.player)<0){
@ -6564,7 +6571,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.cancel();
if(trigger.player.countCards('e')){
trigger.player.chooseControl(function(event,player){
if(get.mode()=='guozhan'&&get.guozhanRank(player.name2)<4) return 1;
if(get.mode()=='guozhan'&&get.guozhanRank(player.name2,player)<4) return 1;
if(player.hp==1) return 1;
if(player.hp==2&&player.countCards('e')>=2) return 1;
return 0;
@ -7304,8 +7311,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ai:{
effect:{
player:function(card,player,target){
if(card.name=='sha'){
player:function(card,player,target,current,isLink){
if(!isLink&&card.name=='sha'){
if(player._duanbingtmp) return;
player._duanbingtmp=true;
if(get.effect(target,card,player,player)<=0){
@ -8691,7 +8698,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'饶舌',
content:'mark'
},
chat:['粗鄙之语','天地不容','谄谀之臣','皓首匹夫,苍髯老贼','二臣贼子','断脊之犬','我从未见过有如此厚无耻之人!'],
chat:['粗鄙之语','天地不容','谄谀之臣','皓首匹夫,苍髯老贼','二臣贼子','断脊之犬','我从未见过有如此厚无耻之人!'],
callback:function(){
'step 0'
if(event.num1<=event.num2){
@ -9194,8 +9201,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.hasSkill('xindangxian')){
list.push('xindangxian');
}
if(!player.hasSkill('zhiman')){
list.push('zhiman');
if(!player.hasSkill('rezhiman')){
list.push('rezhiman');
}
if(list.length){
player.draw();
@ -9223,6 +9230,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
intro:{
content:'已因$发动过技能',
},
derivation:['new_rewusheng','xindangxian','rezhiman'],
},
zhengnan:{
audio:1,
@ -9251,7 +9259,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ai:{
threaten:2.4
}
},
derivation:['wusheng','dangxian','zhiman'],
},
xiefang:{
mod:{
@ -14711,6 +14720,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
chongzhen:{
group:['chongzhen1','chongzhen2'],
audio:'chongzhen1',
ai:{
combo:'ollongdan',
mingzhi:false,
@ -18429,7 +18439,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mouzhi_info:'出牌阶段限一次,你可以将一张手牌交给一名角色,若如此做,当其于其下回合的出牌阶段内对一名角色造成伤害后,若是此阶段其第一次对该角色造成伤害,你摸一张牌。',
sp_shenpei:'SP审配',
gangzhi:'刚直',
gangzhi_info:'锁定技,当你即将受到伤害时,你防止此伤害,改为失去等量的体力。',
gangzhi_info:'锁定技,当你即将受到或造成伤害时,你防止此伤害,改为受到伤害的角色失去等量的体力。',
beizhan:'备战',
beizhan2:'备战',
beizhan_info:'结束阶段你可以令一名角色将手牌摸至体力上限至多为5。其下个回合开始时若其手牌数为全场最多则其此回合内使用的牌不能指定其他角色为目标。',

View File

@ -23,7 +23,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caochong:['male','wei',3,['chengxiang','renxin']],
xunyou:['male','wei',3,['qice','zhiyu']],
xin_xushu:['male','shu',3,['xinwuyan','xinjujian']],
xin_masu:['male','shu',3,['sanyao','zhiman']],
xin_masu:['male','shu',3,['resanyao','rezhiman']],
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo'],['die_audio']],
zhuran:['male','wu',4,['danshou']],
xusheng:['male','wu',4,['xinpojun']],
@ -43,7 +43,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
manchong:['male','wei',3,['xinjunxing','yuce']],
guanzhang:['male','shu',4,['fuhun']],
chenqun:['male','wei',3,['pindi','faen']],
sunluban:['female','wu',3,['chanhui','jiaojin']],
sunluban:['female','wu',3,['rechanhui','rejiaojin']],
guyong:['male','wu',3,['shenxing','bingyi']],
caifuren:['female','qun',3,['qieting','xianzhou']],
yj_jushou:['male','qun',3,['jianying','shibei']],
@ -62,7 +62,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
hanhaoshihuan:['male','wei',4,['shenduan','yonglve']],
caorui:['male','wei',3,['huituo','mingjian','xingshuai'],['zhu']],
caoxiu:['male','wei',4,['qianju','qingxi']],
caoxiu:['male','wei',4,['reqianju','reqingxi']],
zhongyao:['male','wei',3,['huomo','zuoding']],
liuchen:['male','shu',4,['zhanjue','qinwang'],['zhu']],
zhangyi:['male','shu',4,['wurong','shizhi']],
@ -4711,6 +4711,96 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
reqianju:{
mod:{
globalFrom:function(from,to,distance){
return distance-(Math.max(1,from.getDamagedHp()));
}
}
},
reqingxi:{
audio:'qingxi',
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
return event.card.name=='sha';
},
check:function(event,player){
return get.attitude(player,event.target)<0;
},
content:function(){
'step 0'
var num=game.countPlayer(function(current){
return player.inRange(current);
});
if(trigger.target.countCards('h')<num){
event.directfalse=true;
}
else{
trigger.target.chooseToDiscard(num,'弃置'+get.cnNumber(num)+'张手牌,或令杀的伤害+1').set('ai',function(card){
var player=_status.event.player;
if(player.hp==1){
if(get.type(card)=='basic'){
return 8-get.value(card);
}
else{
return 10-get.value(card);
}
}
else{
if(num>2){
return 0;
}
return 8-get.value(card);
}
});
}
'step 1'
if(!event.directfalse&&result.bool){
var e1=player.getEquip(1);
if(e1){
player.discard(e1,'notBySelf');
}
}
else{
var storage=trigger.target.storage;
var id=trigger.target.playerid;
var map=trigger.customArgs;
if(!map[id]) map[id]={};
if(!map[id].extraDamage) map[id].extraDamage=0;
map[id].extraDamage++;
if(!storage.reqingxi2) storage.reqingxi2=[];
storage.reqingxi2.push(trigger.card);
trigger.target.addTempSkill('reqingxi2');
}
}
},
reqingxi2:{
mod:{
cardEnabled:function(card,player){
if(card.name=='shan'&&player.storage.reqingxi2&&player.storage.reqingxi2.filter(function(cd){
return get.suit(cd)!=get.suit(card);
}).length) return false;
},
},
firstDo:true,
onremove:true,
trigger:{
player:['damage','damageCancelled','damageZero'],
target:['shaMiss','useCardToExcluded'],
},
charlotte:true,
filter:function(event,player){
return player.storage.reqingxi2&&event.card&&player.storage.reqingxi2.contains(event.card);
},
silent:true,
forced:true,
popup:false,
priority:12,
content:function(){
player.storage.reqingxi2.remove(trigger.card);
if(!player.storage.reqingxi2.length) player.removeSkill('reqingxi2');
},
},
qingxi:{
audio:2,
trigger:{source:'damageBegin1'},
@ -4924,8 +5014,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(arg.target!=player.storage.xinxianzhen) return false;
},
effect:{
player:function(card,player,target,current){
if(!player.storage.xinxianzhen) return;
player:function(card,player,target,current,lsLink){
if(isLink||!player.storage.xinxianzhen) return;
if(target!=player.storage.xinxianzhen&&['sha','guohe','shunshou','huogong','juedou'].contains(card.name)){
if(get.effect(player.storage.xinxianzhen,card,player,player)>0){
return [1,2];
@ -7914,6 +8004,80 @@ game.import('character',function(lib,game,ui,get,ai,_status){
order:7
}
},
rezhiman:{
audio:'zhiman',
audioname:['guansuo'],
trigger:{source:'damageBegin2'},
check:function(event,player){
if(get.damageEffect(event.player,player,player)<0) return true;
var att=get.attitude(player,event.player);
if(att>0&&event.player.countCards('j')) return true;
if(event.num>1){
if(att<0) return false;
if(att>0) return true;
}
var cards=event.player.getGainableCards(player,'he');
for(var i=0;i<cards.length;i++){
if(get.equipValue(cards[i])>=6) return true;
}
return false;
},
logTarget:'player',
content:function(){
if(trigger.player.countGainableCards(player,'hej')){
player.gainPlayerCard(trigger.player,'hej',true);
}
trigger.cancel();
}
},
resanyao:{
audio:'sanyao',
enable:'phaseUse',
usable:1,
selectCard:function(){
return [Math.max(1,ui.selected.targets.length),game.countPlayer(function(current){
return current.isMaxHp();
})];
},
selectTarget:function(){
return ui.selected.cards.length;
},
filterTarget:function(card,player,target){
return target.isMaxHp();
},
check:function(card){
if(game.countPlayer(function(current){
return current.isMaxHp()&&get.effect(current,'sanyao',player,player)>0;
})<=ui.selected.cards.length) return 0;
return 7-get.value(card);
},
position:'he',
filterCard:true,
content:function(){
target.damage('nocard');
},
ai:{
result:{
target:function(player,target){
var disbool=false;
if(player.hasSkill('rezhiman')){
if(target.countCards('j')&&get.attitude(player,target)>0){
return 1;
}
if(target.countCards('he',function(card){
return card.name=='tengjia'||get.value(card)>0;
})){
disbool=true;
}
}
var damage=get.damageEffect(target,player);
if(disbool&&get.attitude(player,target)<0) return Math.min(-1,damage);
return damage;
},
},
order:7
}
},
reqiaoshui:{
audio:'qiaoshui',
enable:'phaseUse',
@ -8450,6 +8614,90 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
rechanhui:{
audio:'chanhui',
trigger:{player:'useCardToPlayer'},
filter:function(event,player){
if(_status.currentPhase!=player) return false;
if(event.targets.length>1) return false;
var card=event.card;
if(card.name=='sha'||get.type(card)=='trick') return true;
return false;
},
direct:true,
content:function(){
"step 0"
player.chooseTarget(get.prompt2('rechanhui'),function(card,player,target){
if(player==target||target.hasSkill('rechanhui2')) return false;
var trigger=_status.event;
return player.canUse(trigger.card,target)&&trigger.targets.contains(target)==false;
}).set('ai',function(target){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
return get.effect(target,trigger.card,player,player)+0.01;
}).set('targets',trigger.targets).set('card',trigger.card);
"step 1"
if(result.bool){
//game.delay(0,200);
event.target=result.targets[0];
}
else{
event.finish();
}
"step 2"
player.logSkill('rechanhui',event.target);
event.target.chooseCard('交给'+get.translation(player)+'一张手牌,或成为'+
get.translation(trigger.card)+'的额外目标').set('ai',function(card){
return 5-get.value(card);
});
"step 3"
if(result.bool){
player.gain(result.cards,event.target,'giveAuto');
trigger.untrigger();
trigger.getParent().player=event.target;
game.log(event.target,'成为了',trigger.card,'的使用者');
}
else{
game.log(event.target,'成为了',trigger.card,'的额外目标');
trigger.getParent().targets.push(event.target);
target.addTempSkill('rechanhui2');
}
}
},
rechanhui2:{},
rejiaojin:{
audio:'jiaojin',
trigger:{target:'useCardToTargeted'},
filter:function(event,player){
return player.countCards('he',function(card){
return _status.connectMode||get.type(card)=='equip';
})&&event.player&&event.player.sex=='male';
},
direct:true,
content:function(){
"step 0"
var next=player.chooseToDiscard('he','骄矜:是否弃置一张装备牌令'+get.translation(trigger.card)+'对你无效?',function(card,player){
return get.type(card)=='equip';
});
next.set('ai',function(card){
if(_status.event.goon){
return 9-get.value(card);
}
else if(_status.event.goon2){
return 4-get.value(card);
}
return 0;
});
next.set('goon',lib.skill.zhenlie.check(trigger,player));
next.set('goon2',get.effect(player,trigger.card,trigger.player,player)<0)
next.logSkill='rejiaojin';
"step 1"
if(result.bool){
game.delay(0.5);
trigger.excluded.push(player);
}
}
},
chanhui2:{
trigger:{player:'phaseJieshuBegin'},
forced:true,
@ -11540,6 +11788,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qianju_info:'锁定技,若你已受伤,你计算与其他角色的距离时-XX为你已损失的体力值。',
qingxi:'倾袭',
qingxi_info:'当你使用【杀】对目标角色造成伤害时若你的装备区里有武器牌你可以令其选择一项1、弃置X张手牌X为此武器牌的攻击范围若如此做其弃置你的此武器牌2、令伤害值+1',
reqianju:'千驹',
reqianju_info:'锁定技,若你已受伤,你计算与其他角色的距离时-XX为你已损失的体力值且至少为1。',
reqingxi:'倾袭',
reqingxi_info:'当你使用【杀】指定目标后你可以令其选择一项1、弃置X张手牌X为你攻击范围内的角色数若如此做其弃置你的此武器牌2、令此【杀】伤害值+1且其不能使用与此牌花色不同的【闪】或转化的【闪】直到此【杀】结算完成。',
jieyue:'节钺',
jieyue1:'节钺',
jieyue2:'节钺',
@ -11687,8 +11939,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xiansi_info:'准备阶段开始时,你可以将一至两名角色的各一张牌置于你的武将牌上,称为“逆”;当一名角色需要对你使用【杀】时,其可以移去两张“逆”,然后视为对你使用了一张【杀】。',
chanhui:'谮毁',
chanhui_info:'出牌阶段限一次,当你使用【杀】或黑色普通锦囊牌指定唯一目标时,你可令可以成为此牌目标的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标。',
rechanhui:'谮毁',
rechanhui_info:'出牌阶段,当你使用【杀】或普通锦囊牌指定唯一目标时,你可令可以成为此牌目标的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标且本回合内不能再次成为〖谮毁〗的目标。',
jiaojin:'骄矜',
jiaojin_info:'当你受到男性角色造成的伤害时,你可以弃置一张装备牌,令此伤害-1。',
rejiaojin:'骄矜',
rejiaojin_info:'当你成为男性角色使用的牌的目标后,你可以弃置一张装备牌,令此牌对你无效。',
shenxing:'慎行',
shenxing_info:'出牌阶段,你可以弃置两张牌,然后摸一张牌。',
bingyi:'秉壹',
@ -11782,6 +12038,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
paiyi_backup:'排异',
sanyao:'散谣',
zhiman:'制蛮',
resanyao:'散谣',
rezhiman:'制蛮',
qianxi:'潜袭',
qianxi2:'潜袭',
qianxi2_bg:'袭',
@ -11802,6 +12060,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qianxi_info:'准备阶段你可以摸一张牌并弃置一张牌然后令一名距离为1的角色不能使用或打出与你弃置的牌颜色相同的手牌直到回合结束。',
zhiman_info:'当你对一名其他角色造成伤害时,你可以防止此伤害,然后获得其装备区或判定区的一张牌。',
sanyao_info:'出牌阶段限一次,你可以弃置一张牌并指定一名体力值最多(或之一)的角色你对其造成1点伤害。',
rezhiman_info:'当你对一名其他角色造成伤害时,你可以防止此伤害,然后获得其区域内的一张牌。',
resanyao_info:'出牌阶段限一次,你可以弃置任意张牌并指定等量体力值最多(或之一)的角色。你对这些角色依次造成1点伤害。',
paiyi_info:'出牌阶段限一次你可以移去一张“权”并选择一名角色令其摸两张牌然后若其手牌数大于你你对其造成1伤害。',
zili_info:'觉醒技准备阶段开始时若“权”的数量不小于3你减1点体力上限然后选择一项1、回复1点体力2、摸两张牌。然后你获得技能“排异”。',
quanji_info:'当你受到1点伤害后你可以摸一张牌然后将一张手牌置于武将牌上称为“权”你的手牌上限+XX为“权”的数量。',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.100.2',
'v1.9.100.3',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -573,6 +573,7 @@ window.noname_asset_list=[
'audio/die/re_zhonghui.mp3',
'audio/die/xin_chengpu.mp3',
'audio/die/zhengxuan.mp3',
'audio/die/ol_sunjian.mp3',
'audio/skill/anguo1.mp3',
'audio/skill/anguo2.mp3',
@ -2525,6 +2526,20 @@ window.noname_asset_list=[
'audio/skill/zhengjing_guanju.mp3',
'audio/skill/zhengjing1.mp3',
'audio/skill/zhengjing2.mp3',
'audio/skill/bizheng1.mp3',
'audio/skill/bizheng2.mp3',
'audio/skill/fz_liegong.mp3',
'audio/skill/fz_new_longdan.mp3',
'audio/skill/fz_new_paoxiao.mp3',
'audio/skill/fz_new_tieji.mp3',
'audio/skill/fz_wusheng.mp3',
'audio/skill/fz_xinkuanggu.mp3',
'audio/skill/wulie1.mp3',
'audio/skill/wulie2.mp3',
'audio/skill/yidian1.mp3',
'audio/skill/yidian2.mp3',
'audio/skill/yinghun_ol_sunjian1.mp3',
'audio/skill/yinghun_ol_sunjian2.mp3',
'font/huangcao.ttf',
'font/shousha.ttf',
@ -3096,6 +3111,10 @@ window.noname_asset_list=[
'image/character/key_kyoko.jpg',
'image/character/key_shizuru.jpg',
'image/character/ol_sunjian.jpg',
'image/character/key_shiorimiyuki.jpg',
'image/character/ol_huaxiong.jpg',
'image/character/yj_xuhuang.jpg',
'image/character/yj_zhanghe.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -13361,7 +13361,7 @@
var js=from.getCards('j');
for(var i=0;i<js.length;i++){
if(_status.event.nojudge) break;
if(!target.storage._disableJudge&&!target.hasJudge(js[i])) return true;
if(target.canAddJudge(js[i])) return true;
}
if(target.isMin()) return false;
var es=from.getCards('e');
@ -13385,7 +13385,7 @@
if(att>0){
if(!_status.event.nojudge&&target.countCards('j',function(card){
return game.hasPlayer(function(current){
return !current.hasJudge(card)&&get.attitude(player,current)<0;
return current.canAddJudge(card)&&get.attitude(player,current)<0;
})
})) return 14;
if(target.countCards('e',function(card){
@ -13420,7 +13420,7 @@
}
}
if(i==es.length&&(_status.event.nojudge||!ui.selected.targets[0].countCards('j',function(card){
return !target.hasJudge(card);
return target.canAddJudge(card);
}))){
return 0;
}
@ -13432,6 +13432,7 @@
if(event.prompt2) next.set('prompt2',event.prompt2);
if(event.forced) next.set('forced',true);
'step 1'
event.result=result;
if(result.bool){
player.line2(result.targets,'green');
event.targets=result.targets;
@ -13460,7 +13461,7 @@
var targets1=_status.event.targets1;
if(get.position(button.link)=='j'){
if(_status.event.nojudge) return false;
return !targets1.storage._disableJudge&&!targets1.hasJudge(button.link);
return targets1.canAddJudge(button.link);
}
else{
return targets1.isEmpty(get.subtype(button.link));
@ -13483,8 +13484,9 @@
event.targets[1].addJudge(link);
}
event.targets[0].$give(link,event.targets[1])
event.result.card=link;
event.result.position=get.position(link);
game.delay();
event.result={bool:true};
}
},
useCard:function(){
@ -18105,7 +18107,7 @@
var att2=get.attitude(player,current2);
if(att2>=0) return false;
}
return current!=current2&&!current2.storage._disableJudge&&!current2.hasJudge(js[i]);
return current!=current2&&current2.canAddJudge(js[i]);
})){
return true;
}
@ -18995,6 +18997,7 @@
return next;
},
canAddJudge:function(card){
if(this.storage._disableJudge) return false;
var name;
if(typeof card=='string'){
name=card;
@ -32324,7 +32327,7 @@
if(card.ai.basic.equipValue==undefined) card.ai.basic.equipValue=1;
}
if(card.ai.basic.value==undefined) card.ai.basic.value=function(card,player,index,method){
if(player.isDisabled(get.subtype(card))) return 0.1;
if(player.isDisabled(get.subtype(card))) return 0.01;
var value=0;
var info=get.info(card);
var current=player.getEquip(info.subtype);
@ -32337,11 +32340,13 @@
}
if(typeof equipValue=='function'){
if(method=='raw') return equipValue(card,player);
return equipValue(card,player)-value;
if(method=='raw2') return equipValue(card,player)-value;
return Math.max(0.1,equipValue(card,player)-value);
}
if(typeof equipValue!='number') equipValue=0;
if(method=='raw') return equipValue;
return equipValue-value;
if(method=='raw2') return equipValue-value;
return Math.max(0.1,equipValue-value);
}
if(!card.ai.result.keepAI) card.ai.result.target=function(player,target,card){
return get.equipResult(player,target,card.name);
@ -50560,7 +50565,7 @@
else return 0;
}
if(typeof value=='number') return value;
if(typeof value=='function') return value(card,player);
if(typeof value=='function') return value(card,player,null,'raw2');
return 0;
},
equipValueNumber:function(card){
@ -50652,7 +50657,7 @@
for(var i=0;i<skills1.length;i++){
temp1=get.info(skills1[i]).ai;
if(temp1&&typeof temp1.effect=='object'&&typeof temp1.effect.player=='function'){
temp1=temp1.effect.player(card,player,target,result1);
temp1=temp1.effect.player(card,player,target,result1,isLink);
}
else temp1=undefined;
if(typeof temp1=='object'){
@ -50687,10 +50692,10 @@
if(temp2&&temp2.threaten) temp3=temp2.threaten;
else temp3=undefined;
if(temp2&&typeof temp2.effect=='function'){
temp2=temp2.effect(card,player,target,result2);
temp2=temp2.effect(card,player,target,result2,isLink);
}
else if(temp2&&typeof temp2.effect=='object'&&typeof temp2.effect.target=='function'){
temp2=temp2.effect.target(card,player,target,result2);
temp2=temp2.effect.target(card,player,target,result2,isLink);
}
else temp2=undefined;
if(typeof temp2=='object'){

View File

@ -1,14 +1,15 @@
window.noname_update={
version:'1.9.100.2.1',
version:'1.9.100.3',
update:'1.9.100.2',
changeLog:[
'庆祝Summer Pockets REFLECTION BLUE发售',
'祝所有考生高考顺利,金榜题名!',
'players://["key_shiorimiyuki","yj_zhanghe","yj_xuhuang","caoxiu","xin_masu","sunluban","re_huaxiong","gaolan","sp_shenpei"]',
],
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',
@ -17,7 +18,7 @@ window.noname_update={
//'card/yunchou.js',
//'card/zhenfa.js',
//'card/zhulu.js',
//'character/diy.js',
'character/diy.js',
//'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
@ -25,31 +26,31 @@ window.noname_update={
//'character/hearth.js',
'character/mobile.js',
//'character/mtg.js',
//'character/old.js',
//'character/refresh.js',
//'character/shenhua.js',
//'character/sp.js',
'character/old.js',
'character/refresh.js',
'character/shenhua.js',
'character/sp.js',
//'character/tw.js',
//'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
//'character/yijiang.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
//'layout/default/layout.css',
//'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',
//'mode/stone.js',
//'mode/brawl.js',
'mode/brawl.js',
//'mode/versus.js',
//'mode/boss.js',
//'game/game.js',
'game/game.js',
//'game/NoSleep.js',
//'game/config.js',
//'game/package.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

View File

@ -1506,7 +1506,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var getList=function(){
var list=[['guanyu','guanping','guansuo','guanyinping'],
['caocao','caopi','caozhi','caorui'],['liubei','liushan','liuchen'],
['xiahouyuan','xiahouba','xiahoushi'],['sunjian','sunquan','sunce'],
['re_xiahouyuan','xiahouba','xiahoushi'],['sunjian','sunquan','sunce'],
['sp_zhangjiao','zhangliang','zhangbao'],['zhugeliang','zhugeguo','zhugejin','zhugeke'],
['mateng','machao','madai','mayunlu']];
list.randomSort();
@ -1567,6 +1567,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(lib.character[i][1]=='key') continue;
var surname=lib.translate[i];
for(var j=0;j<surname.length;j++){
if((surname[j]+surname[j+1])=='手杀'){j++;continue}
if(exclude.contains(surname[j])) continue;
if(!/[a-z]/i.test(surname[j])){
var index=list1.indexOf(surname[j]);

View File

@ -1291,7 +1291,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return get.value(card)<7;
})>1) rank=5;
if(skills.contains('qiaobian')&&player.countCards('h')>4) rank=6;
if((get.guozhanRank(player.name1)<rank&&!player.isUnseen(0))||(get.guozhanRank(player.name2)<rank&&!player.isUnseen(1))) return rank+1-get.value(card);
if((get.guozhanRank(player.name1,player)<rank&&!player.isUnseen(0))||(get.guozhanRank(player.name2,player)<rank&&!player.isUnseen(1))) return rank+1-get.value(card);
return -1;
};
}
@ -1305,7 +1305,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else if(list.length<2) event._result={control:list[0]};
else{
player.chooseControl(list).set('ai',function(){
return get.guozhanRank(player.name1)<get.guozhanRank(player.name2)?'主将':'副将';
return get.guozhanRank(player.name1,player)<get.guozhanRank(player.name2,player)?'主将':'副将';
}).prompt="请选择暗置一张武将牌";
}
}
@ -1828,7 +1828,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
gzxuanhuo:{
global:'gzxuanhuo_others',
derivation:['wusheng','new_paoxiao','new_longdan','new_tieji','liegong','xinkuanggu'],
derivation:['fz_wusheng','fz_new_paoxiao','fz_new_longdan','fz_new_tieji','fz_liegong','fz_xinkuanggu'],
ai:{
threaten:function(player,target){
if(game.hasPlayer(function(current){
@ -1884,7 +1884,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var list=['wusheng','new_paoxiao','new_longdan','new_tieji','liegong','xinkuanggu'];
for(var i=0;i<list.length;i++){
if(game.hasPlayer(function(current){
return current.hasSkill(list[i]);
return current.hasSkill(list[i])||current.hasSkill('fz_'+list[i]);
})) list.remove(list[i--]);
}
if(!list.length) event.finish();
@ -1894,7 +1894,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}).set('prompt','选择并获得一项技能直到回合结束');
'step 2'
player.popup(result.control);
player.addTempSkill(result.control);
player.addTempSkill('fz_'+result.control);
game.log(player,'获得了技能','#g【'+get.translation(result.control)+'】');
game.delay();
},
@ -1909,6 +1909,154 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
audio:['xuanhuo',2],
},
fz_new_paoxiao:{
audio:true,
inherit:'new_paoxiao',
},
fz_new_tieji:{
audio:true,
inherit:'new_tieji',
},
fz_wusheng:{
audio:true,
inherit:'wusheng',
},
fz_liegong:{
audio:true,
inherit:'liegong',
},
fz_xinkuanggu:{
audio:true,
inherit:'xinkuanggu',
},
fz_new_longdan:{
audio:true,
group:["fz_new_longdan_sha","fz_new_longdan_shan","fz_new_longdan_draw","fz_new_longdan_shamiss","fz_new_longdan_shanafter"],
subSkill:{
shanafter:{
sub:true,
audio:"fz_new_longdan",
trigger:{
player:"useCard",
},
//priority:1,
filter:function (event,player){
return event.skill=='fz_new_longdan_shan'&&event.getParent(2).name=='sha';
},
direct:true,
content:function (){
"step 0"
player.chooseTarget("是否发动【龙胆】令一名其他角色回复1点体力",function(card,player,target){
return target!=_status.event.source&&target!=player&&target.isDamaged();
}).set('ai',function(target){
return get.attitude(_status.event.player,target);
}).set('source',trigger.getParent(2).player);
"step 1"
if(result.bool&&result.targets&&result.targets.length){
player.line(result.targets[0],'green');
result.targets[0].recover();
}
},
},
shamiss:{
sub:true,
audio:"fz_new_longdan",
trigger:{
player:"shaMiss",
},
direct:true,
filter:function (event,player){
return event.skill=='fz_new_longdan_sha';
},
content:function (){
"step 0"
player.chooseTarget("是否发动【龙胆】对一名其他角色造成1点伤害",function(card,player,target){
return target!=_status.event.target&&target!=player;
}).set('ai',function(target){
return -get.attitude(_status.event.player,target);
}).set('target',trigger.target);
"step 1"
if(result.bool&&result.targets&&result.targets.length){
player.line(result.targets[0],'green');
result.targets[0].damage();
}
},
},
draw:{
trigger:{
player:["useCard","respond"],
},
audio:"fz_new_longdan",
forced:true,
filter:function(event,player){
if(!get.zhu(player,'shouyue')) return false;
return event.skill=='fz_new_longdan_sha'||event.skill=='fz_new_longdan_shan';
},
content:function (){
player.draw();
//player.storage.fanghun2++;
},
sub:true,
},
sha:{
audio:"fz_new_longdan",
enable:["chooseToUse","chooseToRespond"],
filterCard:{
name:"shan",
},
viewAs:{
name:"sha",
},
viewAsFilter:function (player){
if(!player.countCards('h','shan')) return false;
},
prompt:"将一张闪当杀使用或打出",
check:function (){return 1},
ai:{
effect:{
target:function (card,player,target,current){
if(get.tag(card,'respondSha')&&current<0) return 0.6
},
},
respondSha:true,
skillTagFilter:function (player){
if(!player.countCards('h','shan')) return false;
},
order:function (){
return get.order({name:'sha'})+0.1;
},
},
sub:true,
},
shan:{
audio:"fz_new_longdan",
enable:['chooseToRespond','chooseToUse'],
filterCard:{
name:"sha",
},
viewAs:{
name:"shan",
},
prompt:"将一张杀当闪使用或打出",
check:function (){return 1},
viewAsFilter:function (player){
if(!player.countCards('h','sha')) return false;
},
ai:{
respondShan:true,
skillTagFilter:function (player){
if(!player.countCards('h','sha')) return false;
},
effect:{
target:function (card,player,target,current){
if(get.tag(card,'respondShan')&&current<0) return 0.6
},
},
},
sub:true,
},
},
},
gzenyuan:{
locked:true,
audio:['enyuan',2],
@ -5711,7 +5859,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return player.hasViceCharacter();
},
check:function(event,player){
return player.hp<=1||get.guozhanRank(name)<=3;
return player.hp<=1||get.guozhanRank(player.name2,player)<=3;
},
content:function(){
'step 0'
@ -5853,7 +6001,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player.chooseControl('主将','副将',function(){
return _status.event.choice;
}).set('prompt','令'+get.translation(trigger.source)+'失去一张武将牌的所有技能').set('forceDie',true).set('choice',function(){
var rank=get.guozhanRank(trigger.source.name1)-get.guozhanRank(trigger.source.name2);
var rank=get.guozhanRank(trigger.source.name1,trigger.source)-get.guozhanRank(trigger.source.name2,trigger.source);
if(rank==0) rank=Math.random()>0.5?1:-1;
return (rank*get.attitude(player,trigger.source))>0?'副将':'主将';
}());
@ -7330,6 +7478,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
"new_mouduan_info":"结束阶段,若你于本回合内使用过四种花色或三种类别的牌,则你可以移动场上的一张牌。",
"new_longdan":"龙胆",
"new_longdan_info":"你可以将【杀】当【闪】【闪】当【杀】使用或打出。当你发动〖龙胆〗使用的【杀】被【闪】抵消时你可以对另一名角色造成1点伤害当你发动〖龙胆〗使用的【闪】抵消了【杀】时你可以令一名其他角色回复1点体力不能是【杀】的使用者。",
"fz_new_longdan":"龙胆",
"fz_new_longdan_info":"你可以将【杀】当【闪】【闪】当【杀】使用或打出。当你发动〖龙胆〗使用的【杀】被【闪】抵消时你可以对另一名角色造成1点伤害当你发动〖龙胆〗使用的【闪】抵消了【杀】时你可以令一名其他角色回复1点体力不能是【杀】的使用者。",
"new_paoxiao":"咆哮",
"new_paoxiao_info":"锁定技,你使用【杀】无数量限制;当你于一回合内使用第二张【杀】时,摸一张牌。",
"new_kurou":"苦肉",
@ -7870,12 +8020,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
mayChangeVice:function(){
'step 0'
player.chooseBool('是否变更副将?').set('ai',function(){
var name=player.name2;
var skills=lib.character[name][3].slice(0);
for(var i=0;i<skills.length;i++){
if(lib.skill[skills[i]].limited&&player.awakenedSkills.contains(skills[i])) return true;
}
return get.guozhanRank(name)<=3;
var player=_status.event.player;
return get.guozhanRank(player.name2,player)<=3;
});
'step 1'
if(result.bool){
@ -7990,6 +8136,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
dieAfter2:function(source){
var that=this;
if(source&&source.shijun){
source.discard(source.getCards('he'));
delete source.shijun;
@ -7998,7 +8145,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(source.identity=='ye') source.draw(3);
else if(source.shijun2){
source.draw(1+game.countPlayer(function(current){
return current.group==this.group
return current.group==that.group
}));
}
else if(this.identity=='ye') source.draw(1);
@ -8506,9 +8653,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(['gz_sunce','gz_jiangwei'].contains(name1)) return name2=='gz_zhoutai'||lib.character[name2][2]%2==1;
return false;
},
guozhanRank:function(name){
guozhanRank:function(name,player){
if(name.indexOf('gz_shibing')==0) return -1;
if(name.indexOf('gz_jun_')==0) return 7;
if(player){
var skills=lib.character[name][3].slice(0);
for(var i=0;i<skills.length;i++){
if(lib.skill[skills[i]].limited&&player.awakenedSkills.contains(skills[i])) return skills.length-1;
}
}
if(_status._aozhan){
for(var i in lib.aozhanRank){
if(lib.aozhanRank[i].contains(name)) return parseInt(i);