凤咲夜

This commit is contained in:
Spmario233 2021-02-05 22:52:19 +08:00
parent e288dd0680
commit f5b1344147
82 changed files with 1031 additions and 103 deletions

BIN
audio/die/huaxin.mp3 Normal file

Binary file not shown.

BIN
audio/die/re_fazheng.mp3 Normal file

Binary file not shown.

BIN
audio/die/re_fuhuanghou.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reenyuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reenyuan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reqiuyuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reqiuyuan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rexuanhuo1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rexuanhuo2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rezhuikong1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rezhuikong2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/wanggui1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/wanggui2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/xibing1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/xibing2.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/0.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/1.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/10.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/11.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/12.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/13.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/14.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/15.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/16.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/17.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/18.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/19.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/2.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/20.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/21.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/22.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/3.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/4.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/5.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/6.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/7.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/8.mp3 Normal file

Binary file not shown.

BIN
audio/voice/female/9.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/0.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/1.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/10.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/11.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/12.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/13.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/14.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/15.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/16.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/17.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/18.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/19.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/2.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/20.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/21.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/22.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/3.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/4.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/5.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/6.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/7.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/8.mp3 Normal file

Binary file not shown.

BIN
audio/voice/male/9.mp3 Normal file

Binary file not shown.

View File

@ -813,7 +813,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['club',4,'bingliang'],
['club',4,'zhujinqiyuan',null,['yingbian_zhuzhan']],
['club',5,'sha',null,['yingbian_kongchao']],
['club',5,'sha'],
['club',5,'sha','thunder'],
['club',5,'dilu'],
['club',6,'sha'],
['club',6,'sha','thunder'],
@ -870,14 +870,14 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['diamond',10,'sha','fire'],
['diamond',10,'shan'],
['diamond',10,'shan'],
['diamond',11,'chuqibuyi'],
['diamond',11,'shan'],
['diamond',11,'shan'],
['diamond',11,'shan'],
['diamond',12,'tao'],
['diamond',12,'shan'],
['diamond',12,'chuqibuyi'],
['diamond',12,'wutiesuolian'],
['diamond',12,'wuxie'],
['diamond',13,'sha','fire'],
['diamond',13,'sha'],
['diamond',13,'zixin'],
['diamond',13,'hualiu'],
],

View File

@ -61,6 +61,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_shiroha:['female','key',3,['shiroha_yuzhao','shiroha_guying','shiroha_jiezhao']],
key_shizuku:['female','key',3,['shizuku_sizhi','shizuku_biyi','shizuku_sanhua']],
key_hiroto:['male','key',3,['hiroto_huyu','hiroto_tuolao']],
key_sakuya:['male','key',4,['youlong','luanfeng','sakuya_junbu']],
key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']],
key_misuzu:['female','key',3,['misuzu_hengzhou','misuzu_nongyin','misuzu_zhongxing']],
@ -171,7 +172,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_tieba:["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"],
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao"],
diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha","key_shizuku","key_hiroto"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha","key_shizuku","key_hiroto","key_sakuya"],
diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang','junk_simayi'],
},
},
@ -187,6 +188,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
},
characterTitle:{
key_sakuya:'#bRewrite',
key_hiroto:'#b神様になった日',
key_shizuku:'#bSummer Pockets',
key_shiroha:'#bSummer Pockets',
@ -348,6 +350,84 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_lucia:['key_shizuru'],
},
skill:{
sakuya_junbu:{
mod:{
targetInRange:function(card,player){
if(player.countDisabled()>=1) return true;
},
cardUsable:function(card,player){
if(player.countDisabled()>=2) return true;
},
},
trigger:{player:'useCard2'},
direct:true,
filter:function(event,player){
if(player.countDisabled()>=4) return true;
return lib.skill.sakuya_junbu.filter2.apply(this,arguments);
},
filter2:function(event,player){
if(player.countDisabled()<3) return false;
var card=event.card;
var info=get.info(card);
if(info.allowMultiple==false) return false;
if(event.targets&&!info.multitarget){
if(game.hasPlayer(function(current){
return !event.targets.contains(current)&&lib.filter.targetEnabled2(card,player,current);
})){
return true;
}
}
return false;
},
content:function(){
'step 0'
if(player.countDisabled()>=4){
trigger.directHit.addArray(game.players);
if(!lib.skill.sakuya_junbu.filter2(trigger,player)){
event.finish();
return;
}
}
var prompt2='为'+get.translation(trigger.card)+'增加一个目标';
player.chooseTarget(get.prompt('sakuya_junbu'),function(card,player,target){
var player=_status.event.player;
return !_status.event.targets.contains(target)&&lib.filter.targetEnabled2(_status.event.card,player,target);
}).set('prompt2',prompt2).set('ai',function(target){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
return get.effect(target,trigger.card,player,player);
}).set('card',trigger.card).set('targets',trigger.targets);
'step 1'
if(result.bool){
if(!event.isMine()) game.delayx();
event.targets=result.targets;
}
else{
event.finish();
}
'step 2'
if(event.targets){
player.logSkill('sakuya_junbu',event.targets);
trigger.targets.addArray(event.targets);
}
},
group:'sakuya_junbu_damage',
subSkill:{
damage:{
trigger:{source:'damageBegin1'},
forced:true,
sub:true,
filter:function(event,player){
return player.countDisabled()>=5&&event.getParent().type=='card';
},
logTarget:'player',
content:function(){
player.loseHp();
trigger.num++;
},
},
},
},
hiroto_huyu:{
trigger:{global:'phaseUseEnd'},
direct:true,
@ -6185,8 +6265,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
lucia_duqu:{
mod:{
cardSavable:function(card,player){
if(player.isDying()&&card.name=='du'&&!player.hasSkill('lucia_duqu_terra')) return true;
cardSavable:function(card,player,target){
if(player==target&&card.name=='du'&&!player.hasSkill('lucia_duqu_terra')) return true;
},
},
trigger:{
@ -6224,6 +6304,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ai:{
usedu:true,
save:true,
skillTagFilter:function(player,tag,target){
return player==target&&player.hasUsableCard('du')&&!player.hasSkill('lucia_duqu_terra');
},
},
subSkill:{terra:{sub:true}}
},
@ -11751,6 +11835,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_shiroha:'鸣濑白羽',
key_shizuku:'水织静久',
key_hiroto:'铃木央人',
key_sakuya:'凤咲夜',
lucia_duqu:'毒躯',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
lucia_zhenren:'振刃',
@ -12058,6 +12143,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
hiroto_zonglve_info:'锁定技,你的手牌上限+3。出牌阶段限一次你可以将一张手牌背面朝下放置并展示一名其他角色的一张手牌。若这两张牌颜色相同你对其造成1点伤害并弃置其展示的牌。颜色不同你获得该角色区域内的两张牌。',
hiroto_tuolao:'脱牢',
hiroto_tuolao_info:'觉醒技,回合结束后,若此回合不是你的第一个回合且你本轮内未因〖虎驭〗失去过牌,则你摸三张牌,失去〖虎驭〗并获得〖纵略〗。',
sakuya_junbu:'均步',
sakuya_junbu_info:'锁定技若你已废除的装备栏数量≥1你使用牌无距离限制。≥2你使用牌无次数限制。≥3你使用牌时可以多指定一个目标。≥4你使用的牌不可被响应。≥5你使用牌造成伤害时失去1点体力令此伤害+1。',
key_kud:'库特莉亚芙卡',
kud_qiaoshou:'巧手',

View File

@ -1367,7 +1367,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
player.chooseTarget('请选择【诤荐】的目标',lib.translate.zhengjian_info).set('ai',function(target){
if(target.hasSkill('zhengjian')) return 0;
if(target.hasSkill('zhengjian_mark')) return 0;
if(player==target) return 0.5;
return get.attitude(_status.event.player,target)*(1+target.countCards('h'));
});
@ -1379,6 +1379,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
group:'zhengjian_draw',
ai:{
notemp:true,
},
},
zhengjian_draw:{
audio:'zhengjian',
@ -5832,7 +5835,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var player=_status.event.player;
if(player.hasSkill('xinxhzhiyan_true')) return 0;
var num=Math.max(0,player.countCards('h')-player.hp);
if(ui.selected.cards.length||player.hasSkill('xinxhzhiyan_false')) return [num,num];
if(ui.selected.cards.length||player.hasSkill('xinxhzhiyan_false')||player.countCards('h')>=player.maxHp) return [num,num];
return [0,num]
},
filterTarget:lib.filter.notMe,

View File

@ -7,7 +7,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_standard:['ol_yuanshu'],
old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_guanqiujian","xiahouyuan","weiyan","xiaoqiao","pangde"],
old_refresh:["old_zhangfei","old_huatuo","old_zhaoyun","ol_huaxiong"],
old_yijiang1:["masu","xushu","yujin","xin_yujin","old_xusheng","old_lingtong"],
old_yijiang1:["masu","xushu","yujin","xin_yujin","old_xusheng","old_lingtong","fazheng"],
old_yijiang2:["old_zhonghui"],
old_yijiang3:["liru","old_zhuran","old_fuhuanghou","old_caochong"],
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan"],
@ -18,6 +18,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
fazheng:['male','shu',3,['enyuan','xuanhuo']],
ol_xinxianying:['female','wei',3,['caishi','zhongjian']],
ol_yuanshu:['male','qun',4,['wangzun','tongji']],
pangde:['male','qun',4,['mashu','mengjin']],
@ -790,6 +791,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oldxuanfeng_info:'每当你失去一次装备区里的牌时你可以执行下列两项中的一项1.视为对任意一名其他角色使用一张【杀】此【杀】不计入每回合的使用限制2.对与你距离1以内的一名其他角色造成一点伤害',
ol_yuanshu:'旧袁术',
ol_xinxianying:'旧辛宪英',
fazheng:'旧法正',
old_standard:'标准包',
old_shenhua:'神话再临',

View File

@ -35,6 +35,7 @@ window.noname_character_rank={
'key_hina',
'sp_key_kanade',
'key_shizuru',
'key_sakuya',
],
ap:[
'gjqt_aruan',
@ -444,6 +445,8 @@ window.noname_character_rank={
'key_shizuku',
'wangrong',
'mini_lvbu',
're_fazheng',
'huaxin',
],
bp:[
'chess_diaochan',
@ -631,6 +634,7 @@ window.noname_character_rank={
'mini_sunquan',
'mini_zuoci',
'mini_jiangwei',
're_fuhuanghou',
],
b:[
'diy_feishi',
@ -939,6 +943,7 @@ window.noname_character_rank={
'hucheer',
'jin_xiahouhui',
'xin_zhangfei',
'wolongfengchu',
],
c:[
'xiahoudun',
@ -1108,6 +1113,7 @@ window.noname_character_rank={
'key_shiina',
'key_shiroha',
'key_hina',
'key_sakuya',
],
epic:[
'pal_yueqi',
@ -1535,6 +1541,8 @@ window.noname_character_rank={
'xin_hansui',
'duyu',
'zhanghuyuechen',
're_fazheng',
're_fuhuanghou',
],
junk:[
'sunshao',
@ -1552,6 +1560,7 @@ window.noname_character_rank={
'xin_chengpu',
'junk_zhangrang',
'junk_simayi',
'wolongfengchu',
],
}
};

View File

@ -9,15 +9,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refresh_huo:["ol_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","ol_pangtong","ol_yuanshao","ol_pangde","re_taishici"],
refresh_lin:['re_zhurong','re_menghuo','ol_sunjian','re_caopi','re_xuhuang','ol_dongzhuo'],
refresh_shan:['re_dengai','re_jiangwei','re_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce','ol_dengai'],
refresh_yijiang1:['re_wuguotai','re_gaoshun','re_caozhi','yujin_yujin','re_masu','xin_xusheng','xin_fazheng','xin_lingtong'],
refresh_yijiang1:['re_wuguotai','re_gaoshun','re_caozhi','yujin_yujin','re_masu','xin_xusheng','re_fazheng','xin_lingtong'],
refresh_yijiang2:['old_madai','wangyi','guanzhang','re_handang','re_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_bulianshi','xin_liubiao'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','re_yufan','re_liru','re_manchong'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','re_yufan','re_liru','re_manchong','re_fuhuanghou'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan'],
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu'],
},
},
connect:true,
character:{
re_fuhuanghou:['female','qun',3,['rezhuikong','reqiuyuan']],
re_fazheng:['male','shu',3,['reenyuan','rexuanhuo']],
xin_lingtong:['male','wu',4,['decadexuanfeng','yongjin']],
xin_liubiao:['male','qun',3,['decadezishou','decadezongshi']],
re_caoxiu:['male','wei',4,['qianju','reqingxi']],
@ -30,7 +32,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_bulianshi:['female','wu',3,['reanxu','zhuiyi']],
re_hanhaoshihuan:['male','wei',4,['reshenduan','reyonglve']],
re_panzhangmazhong:['male','wu',4,['reduodao','reanjian']],
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo'],['die_audio']],
wangyi:['female','wei',3,['zhenlie','miji']],
old_madai:['male','shu',4,['mashu','qianxi']],
guanzhang:['male','shu',4,['fuhun']],
@ -127,6 +128,310 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sunben:['zhouyu','taishici','daqiao'],
},
skill:{
rezhuikong:{
audio:2,
trigger:{global:'phaseZhunbeiBegin'},
check:function(event,player){
if(get.attitude(player,event.player)<-2){
var cards=player.getCards('h');
if(cards.length>player.hp) return true;
for(var i=0;i<cards.length;i++){
var useful=get.useful(cards[i]);
if(useful<5) return true;
if(cards[i].number>7&&useful<7) return true;
}
}
return false;
},
logTarget:'player',
filter:function(event,player){
return player.hp<player.maxHp&&player.canCompare(event.player);
},
content:function(){
"step 0"
player.chooseToCompare(trigger.player).set('small',(player.hp>1&&get.effect(player,{name:'sha'},trigger.player,player)>0&&Math.random()<0.9));
"step 1"
if(result.bool){
trigger.player.addTempSkill('zishou2');
event.finish();
}
else if(result.target&&get.position(result.target)=='d') player.gain(result.target,'gain2','log');
"step 2"
var card={name:'sha',isCard:true};
if(trigger.player.canUse(card,player,false)) trigger.player.useCard(card,player,false);
},
},
reqiuyuan:{
audio:2,
trigger:{target:'useCardToTarget'},
direct:true,
filter:function(event,player){
return event.card.name=='sha';
},
content:function(){
"step 0"
player.chooseTarget(get.prompt2('reqiuyuan'),function(card,player,target){
return target!=player&&!_status.event.targets.contains(target)&&_status.event.playerx.canUse('sha',target,false);
}).set('ai',function(target){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
return get.effect(target,trigger.card,trigger.player,player)+0.1;
}).set('targets',trigger.targets).set('playerx',trigger.player);
"step 1"
if(result.bool){
var target=result.targets[0];
player.logSkill('reqiuyuan',target);
event.target=target;
target.chooseCard(function(card,player){
var name=get.name(card,player);
return name!='sha'&&get.type(name)=='basic';
},'h','交给'+get.translation(player)+
'一张不为【杀】的基本牌,或成为此杀的额外目标且不可响应此【杀】').set('ai',function(card){
return get.attitude(target,_status.event.sourcex)>=0?1:-1;
}).set('sourcex',player);
game.delay();
}
else{
event.finish();
}
"step 2"
if(result.bool){
player.gain(result.cards,event.target,'give');
game.delay();
}
else{
trigger.getParent().targets.push(event.target);
trigger.getParent().triggeredTargets2.push(event.target);
trigger.directHit.push(event.target);
game.log(event.target,'成为了',trigger.card,'的额外目标');
}
},
ai:{
expose:0.2,
effect:{
target:function(card,player,target){
if(card.name!='sha') return;
var players=game.filterPlayer();
if(get.attitude(player,target)<=0){
for(var i=0;i<players.length;i++){
var target2=players[i];
if(player!=target2&&target!=target2&&player.canUse(card,target2,false)&&
get.effect(target2,{name:'shacopy',nature:card.nature,suit:card.suit},player,target)>0&&
get.effect(target2,{name:'shacopy',nature:card.nature,suit:card.suit},player,player)<0){
if(target.hp==target.maxHp) return 0.3;
return 0.6;
}
}
}
else{
for(var i=0;i<players.length;i++){
var target2=players[i];
if(player!=target2&&target!=target2&&player.canUse(card,target2,false)&&
get.effect(target2,{name:'shacopy',nature:card.nature,suit:card.suit},player,player)>0){
if(player.canUse(card,target2)) return;
if(target.hp==target.maxHp) return [0,1];
return [0,0];
}
}
}
}
}
}
},
reenyuan:{
audio:2,
group:['reenyuan1','reenyuan2'],
},
reenyuan1:{
audio:'reenyuan',
trigger:{player:'gainEnd'},
filter:function(event,player){
if(!event.source||event.source==player||!event.source.isIn()) return false;
var evt=event.getl(event.source);
return evt&&evt.cards2&&evt.cards2.length>1;
},
check:function(event,player){
return get.attitude(player,event.source)>0;
},
logTarget:'source',
prompt2:'令该角色摸一张牌',
content:function(){
trigger.source.draw();
},
},
reenyuan2:{
audio:'reenyuan',
trigger:{player:'damageEnd'},
logTarget:'source',
filter:function(event,player){
return event.source&&event.source!=player&&event.source.isAlive();
},
check:function(event,player){
var att=get.attitude(player,event.source);
var num=event.source.countCards('h');
if(att<=0) return true;
if(num>2) return true;
if(num) return att<4;
return false;
},
prompt2:'令该角色选择一项①失去1点体力。②交给你一张手牌。若此牌不为♥则你摸一张牌。',
content:function(){
'step 0'
event.count=trigger.num;
'step 1'
var target=trigger.source;
event.count--;
if(!target.countCards('h')) event._result={bool:false};
else target.chooseCard('h','恩怨:将一张手牌交给'+get.translation(player)+'或失去1点体力').set('ai',function(card){
if(get.attitude(_status.event.player,_status.event.getParent().player)>0){
if(get.suit(card)!='heart') return 15-get.value(card);
return 11-get.value(card);
}
else{
var num=12-_status.event.player.hp*2;
if(get.suit(card)!='heart') num-=2;
return num-get.value(card);
}
});
'step 2'
var target=trigger.source;
if(result.bool){
var card=result.cards[0];
event.card=card;
player.gain(card,target,'giveAuto');
}
else{
target.loseHp();
event.goto(4);
}
'step 3'
if(get.suit(card)!='heart') player.draw();
'step 4'
var target=trigger.source;
if(target.isAlive()&&event.count>0) player.chooseBool(get.prompt('reenyuan',target),'令该角色选择一项①失去1点体力。②交给你一张手牌。若此牌不为♥则你摸一张牌。').set('ai',function(){
var evt=_status.event.getTrigger();
return lib.skill.reenyuan2.check(evt.player,evt.source);
});
else event.finish();
'step 5'
if(result.bool){
player.logSkill('reenyuan2',trigger.source);
event.goto(1);
}
},
},
rexuanhuo:{
audio:2,
trigger:{player:'phaseDrawEnd'},
direct:true,
filter:function(event,player){
return player.countCards('h')>1&&game.countPlayer()>2;
},
content:function(){
'step 0'
var ai2=function(target){
var player=_status.event.player;
if(get.attitude(player,target)<=0) return 0;
var list=[null,'fire','thunder','ice','juedou'];
if(target.hasSkill('ayato_zenshen')) list.push('kami');
var num=Math.max.apply(Math,list.map(function(i){
if(i=='juedou') return target.getUseValue({name:'juedou',isCard:true},false);
var card={name:'sha',nature:i,isCard:true};
return target.getUseValue(card,false);
}));
if(target.hasSkillTag('nogain')) num/=4;
return num;
};
player.chooseCardTarget({
prompt:get.prompt2('rexuanhuo'),
filterCard:true,
selectCard:2,
position:'h',
filterTarget:lib.filter.notMe,
goon:game.hasPlayer(function(current){
return current!=player&&ai2(player,current)>0;
}),
ai1:function(card){
if(!_status.event.goon) return 0;
return 7-get.value(card);
},
ai2:ai2,
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('rexuanhuo',target);
target.gain(result.cards,player,'giveAuto');
}
else event.finish();
'step 2'
if(game.hasPlayer(function(current){
return current!=player&&current!=target;
})) player.chooseTarget(function(card,player,target){
return target!=player&&target!=_status.event.target;
},'选择'+get.translation(target)+'使用【杀】或【决斗】的目标',true).set('target',target).set('ai',function(target){
var evt=_status.event;
var list=[null,'fire','thunder','ice','juedou'];
if(evt.target.hasSkill('ayato_zenshen')) list.push('kami')
return Math.max.apply(Math,list.map(function(i){
var card={name:'sha',isCard:true};
if(i=='juedou') card.name='juedou';
else if(i) card.nature=i;
if(!evt.target.canUse(card,target,false)) return 0;
return get.effect(target,card,evt.target,evt.player);
}));
});
else event.finish();
'step 3'
var target2=result.targets[0];
event.target2=target2;
player.line(target2);
game.log(player,'选择了',target2);
var list=[null,'fire','thunder','ice'];
var vcards=[];
if(target.hasSkill('ayato_zenshen')) list.push('kami');
for(var i of list){
if(target.canUse({name:'sha',isCard:true,nature:i},target2,false)) vcards.push(['基本','','sha',i]);
}
if(target.canUse({name:'juedou',isCard:true},target2,false)) vcards.push(['基本','','juedou']);
if(!vcards.length){
if(!target.countCards('h')) event.finish();
else event._result={index:1};
}
else if(!target.countCards('h')){
event._result={index:0};
}
else{
event.vcards=vcards;
target.chooseControl().set('choiceList',[
'视为对'+get.translation(target2)+'使用任意一种【杀】或【决斗】',
'将所有手牌交给'+get.translation(player),
]);
}
'step 4'
if(result.index==0){
if(event.vcards.length==1) event._result={links:event.vcards,bool:true};
else target.chooseButton(['请选择要对'+get.translation(event.target2)+'使用的牌',[event.vcards,'vcard']],true).set('ai',function(button){
var player=_status.event.player;
return get.effect(_status.event.getParent().target2,{name:button.link[2],isCard:true,nature:button.link[3]},player,player);
});
}
else{
player.gain(target.getCards('h'),target,'giveAuto');
event.finish();
}
'step 5'
if(result.bool) target.useCard({name:result.links[0][2],isCard:true,nature:result.links[0][3]},false,event.target2);
},
ai:{
expose:0.17,
fireAttack:true,
skillTagFilter:function(player){
return player.hasFriend();
},
},
},
decadezongshi:{
audio:2,
mod:{
@ -421,7 +726,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 2"
if(result.bool){
if(!event.logged){
player.logSkill('xuanfeng',result.targets);
player.logSkill('decadexuanfeng',result.targets);
event.logged=true;
}
else player.line(result.targets[0],'green');
@ -8264,7 +8569,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_madai:'界马岱',
wangyi:'界王异',
guanzhang:'界关兴张苞',
xin_fazheng:'界法正',
rezishou:'自守',
rezishou2:'自守',
//rezishou_info:'摸牌阶段你可以多摸X张牌。若如此做本回合你对其他角色造成伤害时防止此伤害且结束阶段若你本回合没有使用牌指定其他角色为目标则你可以将场上的一张装备牌移动到自己的装备区。X为场上势力数',
@ -8330,6 +8634,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_caozhen:'界曹真',
residi:'司敌',
residi_info:'结束阶段你可以摸一张牌并将一张牌置于你的武将牌上称为“司”。其他角色的出牌阶段开始时你可以移去任意张“司”。若如此做其本阶段内不能使用或打出与这些“司”颜色相同的牌且此阶段结束时若X不大于2你视为对其使用【杀】不大于1你摸两张牌不大于0你将牌堆顶的一张牌置于你的武将牌上称为“司”。X为该角色本阶段内使用过牌的类型数',
re_fazheng:'界法正',
reenyuan:'恩怨',
reenyuan1:'恩怨',
reenyuan2:'恩怨',
reenyuan_info:'当你获得一名其他角色的至少两张牌后你可以令其摸一张牌。当你受到1点伤害后你可令伤害来源选择一项①失去1点体力。②交给你一张手牌。若此牌不为♥则你摸一张牌。',
rexuanhuo:'眩惑',
rexuanhuo_info:'摸牌阶段结束时你可以交给一名其他角色两张手牌然后该角色选择一项1. 视为对你选择的另一名角色使用任意一种【杀】2. 交给你所有手牌。',
re_fuhuanghou:'界伏皇后',
reqiuyuan:'求援',
reqiuyuan_info:'当你成为【杀】的目标时,你可选择另一名其他角色。除非该角色交给你一张除【杀】以外的基本牌,否则其也成为此【杀】的目标且该角色不能响应此【杀】。',
rezhuikong:'惴恐',
rezhuikong_info:'其他角色的回合开始时,若你已受伤,你可与其拼点:若你赢,本回合该角色只能对自己使用牌;若你没赢,你获得其拼点的牌,然后其视为对你使用一张【杀】。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -1087,6 +1087,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pretao:true,
directHit_ai:true,
skillTagFilter:function(player,tag,arg){
if(tag=='pretao') return true;
if(player._wanglie_temp) return false;
player._wanglie_temp=true;
var bool=function(){

View File

@ -5,18 +5,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
sp:{
sp_default:["caoying","simahui","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","xujing","yuantanyuanshang","sunshao","zhangling",'guansuo','baosanniang','ol_zhangchangpu','caoshuang','sp_zhangliao'],
sp_default:["caoying","simahui","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","xujing","yuantanyuanshang","sunshao","zhangling",'guansuo','baosanniang','ol_zhangchangpu','caoshuang','sp_zhangliao','wolongfengchu'],
sp_zhongdan:["cuiyan","huangfusong"],
sp_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"],
sp_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'],
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan"],
sp_guozhan2:["mifuren","mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","kongrong","bianfuren","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi"],
sp_guozhan2:["mifuren","mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","kongrong","bianfuren","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi","huaxin"],
sp_single:["niujin"],
sp_others:["hanba","caiyang"],
},
},
characterFilter:{},
character:{
huaxin:['male','wei',3,['wanggui','xibing']],
wolongfengchu:['male','shu',4,['youlong','luanfeng']],
sp_zhangliao:['male','qun',4,['mubing','ziqu','diaoling']],
caoshuang:['male','wei',4,['retuogu','shanzhuan']],
ol_zhangchangpu:['female','wei',3,['yanjiao','olxingshen']],
@ -150,6 +152,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//kaisa:["male","western",4,["zhengfu"]],
},
characterIntro:{
wolongfengchu:'沙比武将,懒得复制粘贴,自己去看诸葛亮和庞统的介绍吧。',
huaxin:'华歆157年232年1月30日字子鱼汉族。平原郡高唐县人今山东省高唐县。汉末至三国曹魏初年名士、重臣。华歆早年拜太尉陈球为师与卢植、郑玄、管宁等为同门又与管宁、邴原共称一龙华歆为龙头。汉灵帝时华歆被举为孝廉任郎中因病去官。又被大将军何进征召为尚书郎。后任豫章太守甚得民心。孙策率军南下华歆举郡投降被奉为上宾。官渡之战时被征为议郎、参司空军事。入为尚书、侍中又代荀彧为尚书令。丞相曹操讨孙权时授华歆为军师。后为魏王国的御史大夫。曹丕即王位拜华歆为相国封安乐乡侯。曹魏建立后其相国职名改称司徒。魏明帝即位升任太尉晋封博平侯。太和五年十二月232年1月华歆去世年七十五谥号“敬”。有文集三十卷今佚失其余见《全三国文》。',
caoshuang:'曹爽249年2月9日字昭伯沛国谯县今安徽亳州市人。三国时期魏国权臣大司马曹真长子。曹爽体态肥胖凭借宗室身份出入宫廷交好太子曹叡。魏明帝即位起家员外散骑侍郎累迁城门校尉、散骑常侍转武卫将军。太和五年231年袭封邵陵侯。景初三年239年魏明帝曹叡病危拜大将军、假黄钺与司马懿并为托孤大臣。少帝曹芳即位加侍中改封武安侯。势倾四海声震天下。任用私人专权乱政侵吞公产。伐蜀失败虚耗国力。起居逾制软禁郭太后。正始十年太傅司马懿发动高平陵政变掌握魏国大权。曹爽失去大将军职务以谋反之罪处死夷灭三族。',
zhangling:'张道陵34年2月22日—156年字辅汉原名陵道教正一道实际创立者汉朝东汉时期丰邑今江苏徐州丰县人。太上老君降临蜀地“授以三天正法命为天师”张道陵整合当时的黄老派、方仙道、文始派等先秦修道团体创立道教称正一盟威之道。后世尊称为“老祖天师”、“正一真人”、“三天扶教大法师”、高明上帝、张天师。著作《老子想尔注》弟子有3000多人设立24治奠基天师道。张道陵、葛玄、许逊、萨守坚合称四大天师。张道陵创建道教的背景当时在巴蜀一带原有巴人信奉原始巫教大规模的淫祀而害民。而这些祀奉鬼妖学名为妖邪的法教巫师聚众敛财无恶不作。张天师携王长、赵升二位弟子和黄帝九鼎丹经来到北邙山修行平定了那些祸害百姓的巫妖之教。川渝一带流传的张天师以太上老君剑印符箓大破鬼兵的故事就是以此为原型的。',
caiyang:'蔡阳201年又作蔡扬东汉丞相曹操部下武将汝南太守。于建安六年201奉曹操之命攻击与刘备联合的汝南贼龚都等人兵败被刘备所杀。明代小说《三国演义》改编为“云长擂鼓斩蔡阳”。',
@ -391,6 +395,335 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//华歆
wanggui:{
audio:2,
trigger:{
player:'damageEnd',
source:'damageSource',
},
direct:true,
filter:function(event,player){
return player.hasSkill('wanggui')&&!player.hasSkill('wanggui2');
},
content:function(){
'step 0'
player.addTempSkill('wanggui2');
var bool;
var guozhan=get.mode()=='guozhan';
if(guozhan) bool=player.isUnseen(2);
else bool=!player._xibing;
if(bool){
player.chooseTarget('望归:是否对一名'+(guozhan?'势力不同的':'其他')+'角色造成1点伤害',guozhan?function(card,player,target){
return target.isEnemyOf(player);
}:lib.filter.notMe).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
}
else event.goto(2);
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('wanggui',target);
target.damage();
}
event.finish();
'step 2'
if(get.mode()=='guozhan'){
player.chooseBool('望归:是否令所有与自己势力相同的角色各摸一张牌?');
}
else player.chooseTarget('望归:是否令至多三名角色各摸一张牌?',[1,3]).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(target.hasSkill('nogain')&&target!=_status.currentPhase) att/=10;
return att;
});
'step 3'
if(result.bool){
var targets=result.targets;
if(get.mode()=='guozhan') targets=game.filterPlayer(function(current){
return current.isFriendOf(player);
});
targets.sortBySeat();
player.logSkill('wanggui',targets);
game.asyncDraw(targets);
}
else event.finish();
'step 4'
game.delayx();
},
},
wanggui2:{},
xibing:{
audio:2,
trigger:{global:'useCardToPlayered'},
filter:function(event,player){
if(player==event.player||event.targets.length!=1||event.player.countCards('h')>=event.player.hp) return false;
var bool=function(card){
return (card.name=='sha'||get.type(card,false)=='trick')&&get.color(card,false)=='black';
};
if(!bool(event.card)) return false;
var evt=event.getParent('phaseUse');
if(evt.player!=event.player) return false;
return event.player.getHistory('useCard',function(evtx){
return bool(evtx.card)&&evtx.getParent('phaseUse')==evt;
})[0]==event.getParent();
},
logTarget:'player',
check:function(event,player){
var target=event.player;
var att=get.attitude(player,target);
var num=target.countCards('h',function(card){
return target.hasValueTarget(card,null,true);
});
if(!num) return att>0;
var num2=Math.min(5,target.hp-target.countCards('h'));
return num>num2;
},
content:function(){
'step 0'
trigger.player.draw(Math.min(5,trigger.player.hp-trigger.player.countCards('h')));
trigger.player.addTempSkill('xibing2');
player._xibing=true;
if(get.mode()!='guozhan'||player.isUnseen(2)||trigger.player.isUnseen(2)) event.finish();
'step 1'
var target=trigger.player;
var players1=[player.name1,player.name2];
var players2=[target.name1,target.name2];
player.chooseButton(2,[
'是否暗置自己和'+get.translation(target)+'的各一张武将牌?',
'<div class="text center">你的武将牌</div>',
[players1,'character'],
'<div class="text center">'+get.translation(target)+'的武将牌</div>',
[players2,'character'],
]).set('players',players1).set('complexSelect',true).set('filterButton',function(button){
return (ui.selected.buttons.length==0)==(_status.event.players.contains(button.link));
});
'step 2'
if(result.bool){
var target=trigger.player;
player.hideCharacter(player.name1==result.links[0]?0:1);
target.hideCharacter(target.name1==result.links[1]?0:1);
player.addTempSkill('xibing3');
target.addTempSkill('xibing3');
}
},
},
xibing2:{
mod:{
cardEnabled2:function(card){
if(get.position(card)=='h') return false;
},
},
},
xibing3:{
ai:{nomingzhi:true},
},
//卧龙凤雏双头祈福
youlong:{
enable:'chooseToUse',
audio:2,
audioname:['key_sakuya'],
zhuanhuanji:true,
init:function(player){
player.storage.youlong=false;
if(!player.storage.youlong2) player.storage.youlong2=[];
},
hiddenCard:function(player,name){
if(player.storage.youlong2.contains(name)||player.countDisabled()>=5) return false;
if(player.hasSkill('youlong_'+(player.storage.youlong||false))) return false;
var type=get.type(name);
if(player.storage.youlong) return type=='basic';
return type=='trick';
},
filter:function(event,player){
if(player.storage.youlong2.contains(name)||player.countDisabled()>=5) return false;
if(player.hasSkill('youlong_'+(player.storage.youlong||false))) return false;
var type=player.storage.youlong?'basic':'trick';
for(var name of lib.inpile){
if(player.storage.youlong2.contains(name)) continue;
if(get.type(name)!=type) continue;
if(event.filterCard({name:name,isCard:true},player,event)) return true;
}
return false;
},
chooseButton:{
dialog:function(event,player){
var dialog=ui.create.dialog('游龙','hidden');
var table=document.createElement('div');
table.classList.add('add-setting');
table.style.margin='0';
table.style.width='100%';
table.style.position='relative';
for(var i=1;i<6;i++){
if(player.isDisabled(i)) continue;
var td=ui.create.div('.shadowed.reduce_radius.pointerdiv.tdnode');
td.innerHTML='<span>'+get.translation('equip'+i)+'</span>';
td.link=i;
td.addEventListener(lib.config.touchscreen?'touchend':'click',ui.click.button);
for(var j in lib.element.button){
td[j]=lib.element.button[i];
}
table.appendChild(td);
dialog.buttons.add(td);
}
dialog.content.appendChild(table);
var type=player.storage.youlong?'basic':'trick';
var list=[];
for(var name of lib.inpile){
if(player.storage.youlong2.contains(name)) continue;
if(get.type(name)!=type) continue;
if(event.filterCard({name:name,isCard:true},player,event)){
list.push([type,'',name]);
if(name=='sha'){
list.push([type,'',name,'fire']);
list.push([type,'',name,'thunder']);
list.push([type,'',name,'ice']);
}
}
}
dialog.add([list,'vcard']);
return dialog;
},
filter:function(button){
if(ui.selected.buttons.length&&typeof button.link==typeof ui.selected.buttons[0].link) return false;
return true;
},
select:2,
check:function(button){
var player=_status.event.player;
if(typeof button.link=='number'){
var card=player.getEquip(button.link);
if(card){
var val=get.value(card);
if(val>0) return 0;
return 5-val;
}
switch(button.link){
case 3:return 4.5;break;
case 4:return 4.4;break;
case 5:return 4.3;break;
case 2:return (3-player.hp)*1.5;break;
case 1:{
if(game.hasPlayer(function(current){
return (get.realAttitude||get.attitude)(player,current)<0&&get.distance(player,current)>1;
})) return 0;
return 3.2;
}
}
}
var name=button.link[2];
var evt=_status.event.getParent();
if(get.type(name)=='basic'){
if(name=='shan') return 2;
if(evt.type=='dying'){
if(get.attitude(player,evt.dying)<2) return false;
if(name=='jiu') return 2.1;
return 1.9;
}
if(evt.type=='phase') return player.getUseValue({name:name,nature:button.link[3],isCard:true});
return 1;
}
if(!['chuqibuyi','shuiyanqijunx','juedou','nanman','wanjian','shunshou','zhujinqiyuan'].contains(name)) return 0;
var card={name:name,isCard:true};
if(['shunshou','zhujinqiyuan'].contains(card.name)){
if(!game.hasPlayer(function(current){
return get.attitude(player,current)!=0&&get.distance(player,current)<=1&&player.canUse(card,current)&&get.effect(current,card,player,player)>0;
})) return 0;
return player.getUseValue(card)-7;
}
return player.getUseValue(card)-4;
},
backup:function(links,player){
if(typeof links[1]=='number') links.reverse();
var equip=links[0];
var name=links[1][2];
var nature=links[1][3];
return {
filterCard:function(){return false},
selectCard:-1,
equip:equip,
viewAs:{
name:name,
nature:nature,
isCard:true,
},
popname:true,
precontent:function(){
player.logSkill('youlong');
player.disableEquip(lib.skill.youlong_backup.equip);
delete event.result.skill;
player.addTempSkill('youlong_'+(player.storage.youlong||false),'roundStart');
player.storage.youlong=!player.storage.youlong;
player.storage.youlong2.add(event.result.card.name);
},
}
},
prompt:function(links,player){
if(typeof links[1]=='number') links.reverse();
var equip='equip'+links[0];
var name=links[1][2];
var nature=links[1][3];
return '废除自己的'+get.translation(equip)+'栏,视为使用'+(get.translation(nature)||'')+get.translation(name);
},
},
ai:{
respondSha:true,
respondShan:true,
skillTagFilter:function(player,tag,arg){
if(arg=='respond') return false;
if(!player.storage.youlong||player.hasSkill('youlong_true')) return false;
var name=(tag=='respondSha'?'sha':'shan');
return !player.storage.youlong2.contains(name);
},
order:1,
result:{
player:1,
},
},
},
youlong_true:{},
youlong_false:{},
luanfeng:{
audio:2,
audioname:['key_sakuya'],
trigger:{global:'dying'},
filter:function(event,player){
return event.player.maxHp>=player.maxHp&&event.player.hp<1;
},
limited:true,
skillAnimation:true,
animationColor:'soil',
logTarget:'player',
check:function(event,player){
if(get.attitude(player,event.player)<4) return false;
if(player.countCards('h',function(card){
var mod2=game.checkMod(card,player,'unchanged','cardEnabled2',player);
if(mod2!='unchanged') return mod2;
var mod=game.checkMod(card,player,event.player,'unchanged','cardSavable',player);
if(mod!='unchanged') return mod;
var savable=get.info(card).savable;
if(typeof savable=='function') savable=savable(card,player,event.player);
return savable;
})>=1-event.player.hp) return false;
if(event.player==player||event.player==get.zhu(player)) return true;
return !player.hasUnknown();
},
content:function(){
'step 0'
player.awakenSkill('luanfeng');
trigger.player.recover(3-trigger.player.hp);
'step 1'
var num=trigger.player.countDisabled();
if(num){
for(var i=1;i<6;i++){
if(trigger.player.isDisabled(i)) trigger.player.enableEquip(i);
}
}
trigger.player.drawTo(6-num);
if(player==trigger.player) player.storage.youlong2=[];
},
},
//曹爽,韩遂,何进
xiaoxi:{
audio:2,
@ -12668,7 +13001,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.storage.songci) player.storage.songci=[];
},
filterTarget:function(card,player,target){
return (!player.storage.songci||!player.storage.songci.contains(target))&&target.countCards('h')!=target.hp;
return (!player.storage.songci||!player.storage.songci.contains(target));
},
content:function(){
if(target.countCards('h')>target.hp){
@ -12687,11 +13020,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ai:{
order:7,
threaten:1.5,
threaten:1.6,
expose:0.2,
result:{
target:function(player,target){
if(target.countCards('h')<target.hp){
if(target.countCards('h')<=target.hp){
return 1;
}
else if(target.countCards('h')>target.hp){
@ -12699,7 +13032,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
}
}
},
group:'songci_draw',
},
songci_draw:{
audio:'songci',
trigger:{player:'phaseDiscardEnd'},
forced:true,
filter:function(event,player){
if(!player.storage.songci) return false;
return !game.hasPlayer(function(current){
return !player.storage.songci.contains(current);
});
},
content:function(){
player.draw();
},
},
baobian:{
audio:2,
@ -14689,7 +15037,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
listm=listm.concat(listv);
var func=function(skill){
var info=get.info(skill);
if(info.charlotte||info.zhuSkill||(info.unique&&!info.limited)) return false;
if(info.charlotte||info.zhuSkill||(info.unique&&!info.limited)||info.juexingji) return false;
return true;
};
for(var i=0;i<listm.length;i++){
@ -14729,6 +15077,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
str+='牌,令此伤害-1。';
return str;
},
youlong:function(player){
if(player.storage.youlong) return '转换技,阴,每轮限一次,你可以废除你的一个装备栏,视为使用一张未以此法使用过的普通锦囊牌;<span class="bluetext">阳,每轮限一次,你可以废除你的一个装备栏,视为使用一张未以此法使用过的基本牌。</span>';
return '转换技,<span class="bluetext">阴,每轮限一次,你可以废除你的一个装备栏,视为使用一张未以此法使用过的普通锦囊牌;</span>阳,每轮限一次,你可以废除你的一个装备栏,视为使用一张未以此法使用过的基本牌。';
},
},
characterReplace:{
caoshuang:['caoshuang','ns_caoshuang'],
@ -15320,6 +15672,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
bifa:'笔伐',
bifa2:'笔伐',
songci:'颂词',
songci_draw:'颂词',
baobian:'豹变',
lihun:'离魂',
chongzhen:'冲阵',
@ -15512,7 +15865,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lihun_info:'出牌阶段限一次你可以弃置一张牌并选择一名其他男性角色。若如此做你将武将牌翻面并获得其所有手牌。出牌阶段结束时你交给其X张牌。X为该角色的体力值',
chongzhen_info:'当你发动〖龙胆〗使用或打出一张牌时,你可以获得对方的一张手牌。',
bifa_info:'结束阶段开始时你可以将一张手牌移出游戏并指定一名其他角色。该角色的准备阶段开始时其观看你移出游戏的牌并选择一项交给你一张与此牌类型相同的手牌并获得此牌或将此牌置入弃牌堆然后失去1点体力。',
songci_info:'出牌阶段,你可以选择一项:令一名手牌数小于其体力值的角色摸两张牌;或令一名手牌数大于其体力值的角色弃置两张牌。每局游戏每名角色限一次。',
songci_info:'①出牌阶段,你可以选择一名未以此法选择过的角色。若其手牌数:大于其体力值,其弃置两张牌;不小于其体力值,其摸两张牌。②弃牌阶段结束时,若你已对场上所有存活角色发动过〖颂词①〗,则你摸一张牌。',
yongsi_info:'锁定技摸牌阶段你多摸X张牌。弃牌阶段开始时你弃置X张牌。X为场上势力数',
yicong_info:'锁定技当你的体力值大于2时你计算与其他角色的距离时-1当你的体力值不大于2时其他角色计算与你的距离时+1。',
baobian_info:'锁定技若你的体力值为3或更少你视为拥有技能〖挑衅〗若你的体力值为2或更少你视为拥有技能〖咆哮〗若你的体力值为1你视为拥有技能〖神速〗。',
@ -15585,6 +15938,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xiaoxi:'骁袭',
xiaoxi_info:'当你登场时,你可以视为使用一张【杀】。',
quyi:'OL麴义',
wolongfengchu:'卧龙凤雏',
youlong:'游龙',
youlong_info:'转换技,阴,每轮限一次,你可以废除你的一个装备栏,视为使用一张未以此法使用过的普通锦囊牌;阳,每轮限一次,你可以废除你的一个装备栏,视为使用一张未以此法使用过的基本牌。',
luanfeng:'鸾凤',
luanfeng_info:'限定技一名角色进入濒死状态时若其体力上限不小于你你可令其回复至3点体力恢复其被废除的装备栏令其手牌补至6-X张X为以此法恢复的装备栏数量。若该角色是你重置你因“游龙”使用过的牌名。',
huaxin:'华歆',
wanggui:'望归',
wanggui_info:'每回合限触发一次当你受到或造成伤害后若你本局游戏内未发动过〖息兵〗则你可对一名其他角色造成1点伤害。已发动过〖息兵〗则你可令至多三名角色各摸一张牌。',
wanggui_info_guozhan:'每回合限触发一次当你造成或受到伤害后若你仅明置了此武将牌则你可对与你势力不同的一名角色造成1点伤害武将牌均明置则你可令与你势力相同的角色各摸一张牌。',
xibing:'息兵',
xibing_info:'当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力值(至多摸五张)且本回合不能再使用手牌。',
xibing_info_guozhan:'当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力(至多摸五张)值且本回合不能再使用手牌。若你与其均明置了所有武将牌,则你可以暗置你与其各一张武将牌且本回合不能再明置此武将牌。',
sp_default:"常规",
sp_zhongdan:"忠胆英杰",

View File

@ -301,7 +301,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.recover(num);
}
'step 1'
player.drawTo(Math.min(player.maxHp,5)).gaintag=['tairan'];
if(player.countCards('h')<Math.min(player.maxHp,5)) player.drawTo(Math.min(player.maxHp,5)).gaintag=['tairan'];
},
},
tairan2:{
@ -966,8 +966,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
hfjieying2:{
mod:{
playerEnabled:function(card,player,target){
if(player.storage.hfjieying2&&player!=target) return false;
cardEnabled:function(card,player){
if(player.storage.hfjieying2) return false;
},
cardSavable:function(card,player){
if(player.storage.hfjieying2) return false;
},
targetInRange:function(card,player){
if(player==_status.currentPhase&&(card.name=='sha'||get.type(card)=='trick')) return true;
@ -1024,7 +1027,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mark:true,
intro:{
content:function(player){
if(player) return '不能对其他角色使用牌直到回合结束';
if(player) return '不能使用牌直到回合结束';
return '使用【杀】或普通锦囊牌时无距离限制且可以多指定一个目标';
},
},

View File

@ -2362,7 +2362,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audioname:['re_huatuo'],
enable:'chooseToUse',
viewAsFilter:function(player){
return player!=_status.currentPhase&&player.countCards('h',{color:'red'})>0;
return player!=_status.currentPhase&&player.countCards('he',{color:'red'})>0;
},
filterCard:function(card){
return get.color(card)=='red';

View File

@ -6,7 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//connectBanned:['qinmi'],
characterSort:{
yijiang:{
yijiang_2011:['caozhi','re_yujin','zhangchunhua','fazheng','xin_masu','xin_xushu','xusheng','lingtong','wuguotai','chengong','gaoshun'],
yijiang_2011:['caozhi','re_yujin','zhangchunhua','xin_fazheng','xin_masu','xin_xushu','xusheng','lingtong','wuguotai','chengong','gaoshun'],
yijiang_2012:['old_wangyi','xunyou','zhonghui','madai','liaohua','old_guanzhang','bulianshi','handang','chengpu','liubiao','old_huaxiong','caozhang'],
yijiang_2013:['manchong','guohuai','caochong','guanping','liufeng','jianyong','yufan','panzhangmazhong','zhuran','xin_liru','fuhuanghou'],
yijiang_2014:['hanhaoshihuan','chenqun','caozhen','zhangsong','wuyi','zhoucang','zhuhuan','guyong','sunluban','yj_jushou','caifuren'],
@ -16,7 +16,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
fazheng:['male','shu',3,['enyuan','xuanhuo']],
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo'],['die_audio']],
old_guanzhang:['male','shu',4,['old_fuhun']],
old_wangyi:['female','wei',3,['oldzhenlie','oldmiji']],
caozhang:['male','wei',4,['jiangchi']],
@ -12125,7 +12125,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhangchunhua:['jin_zhangchunhua','zhangchunhua','mini_zhangchunhua'],
yujin:['yujin_yujin','re_yujin','ol_yujin','xin_yujin','yujin'],
xushu:['re_xushu','xin_xushu','xushu'],
fazheng:['xin_fazheng','fazheng'],
fazheng:['re_fazheng','xin_fazheng','fazheng'],
masu:['xin_masu','re_masu','masu'],
xusheng:['xin_xusheng','re_xusheng','xusheng','old_xusheng'],
wuguotai:['re_wuguotai','wuguotai'],
@ -12149,7 +12149,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yufan:['re_yufan','yufan'],
zhuran:['re_zhuran','xin_zhuran','zhuran','old_zhuran'],
liru:['re_liru','xin_liru','liru'],
fuhuanghou:['fuhuanghou','old_fuhuanghou'],
fuhuanghou:['re_fuhuanghou','fuhuanghou','old_fuhuanghou'],
chenqun:['chenqun','old_chenqun'],
hanhaoshihuan:['re_hanhaoshihuan','hanhaoshihuan'],
caozhen:['caozhen','old_caozhen'],
@ -12180,7 +12180,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yujin:'毅重于禁',
masu:'旧马谡',
xin_masu:'马谡',
fazheng:'法正',
xin_fazheng:'法正',
wuguotai:'吴国太',
chengong:'陈宫',
xusheng:'徐盛',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.108.3.3',
'v1.9.108.4',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -675,6 +675,9 @@ window.noname_asset_list=[
'audio/die/xushao.mp3',
'audio/die/zhanghuyuechen.mp3',
'audio/die/zhangling.mp3',
'audio/die/re_fazheng.mp3',
'audio/die/re_fuhuanghou.mp3',
'audio/die/huaxin.mp3',
'audio/skill/decadezishou1.mp3',
'audio/skill/decadezishou2.mp3',
@ -2955,6 +2958,65 @@ window.noname_asset_list=[
'audio/skill/zlhuji2.mp3',
'audio/skill/zlshoufu1.mp3',
'audio/skill/zlshoufu2.mp3',
'audio/skill/reenyuan1.mp3',
'audio/skill/reenyuan2.mp3',
'audio/skill/reqiuyuan1.mp3',
'audio/skill/reqiuyuan2.mp3',
'audio/skill/rexuanhuo1.mp3',
'audio/skill/rexuanhuo2.mp3',
'audio/skill/rezhuikong1.mp3',
'audio/skill/rezhuikong2.mp3',
'audio/skill/wanggui1.mp3',
'audio/skill/wanggui2.mp3',
'audio/skill/xibing1.mp3',
'audio/skill/xibing2.mp3',
'audio/voice/male/0.mp3',
'audio/voice/male/1.mp3',
'audio/voice/male/2.mp3',
'audio/voice/male/3.mp3',
'audio/voice/male/4.mp3',
'audio/voice/male/5.mp3',
'audio/voice/male/6.mp3',
'audio/voice/male/7.mp3',
'audio/voice/male/8.mp3',
'audio/voice/male/9.mp3',
'audio/voice/male/10.mp3',
'audio/voice/male/11.mp3',
'audio/voice/male/12.mp3',
'audio/voice/male/13.mp3',
'audio/voice/male/14.mp3',
'audio/voice/male/15.mp3',
'audio/voice/male/16.mp3',
'audio/voice/male/17.mp3',
'audio/voice/male/18.mp3',
'audio/voice/male/19.mp3',
'audio/voice/male/20.mp3',
'audio/voice/male/21.mp3',
'audio/voice/male/22.mp3',
'audio/voice/female/0.mp3',
'audio/voice/female/1.mp3',
'audio/voice/female/2.mp3',
'audio/voice/female/3.mp3',
'audio/voice/female/4.mp3',
'audio/voice/female/5.mp3',
'audio/voice/female/6.mp3',
'audio/voice/female/7.mp3',
'audio/voice/female/8.mp3',
'audio/voice/female/9.mp3',
'audio/voice/female/10.mp3',
'audio/voice/female/11.mp3',
'audio/voice/female/12.mp3',
'audio/voice/female/13.mp3',
'audio/voice/female/14.mp3',
'audio/voice/female/15.mp3',
'audio/voice/female/16.mp3',
'audio/voice/female/17.mp3',
'audio/voice/female/18.mp3',
'audio/voice/female/19.mp3',
'audio/voice/female/20.mp3',
'audio/voice/female/21.mp3',
'audio/voice/female/22.mp3',
'font/huangcao.ttf',
'font/shousha.ttf',
@ -3659,6 +3721,11 @@ window.noname_asset_list=[
'image/character/zhangling.jpg',
'image/character/xin_zhangfei.jpg',
'image/character/junk_simayi.jpg',
'image/character/huaxin.jpg',
'image/character/key_sakuya.jpg',
'image/character/re_fazheng.jpg',
'image/character/re_fuhuanghou.jpg',
'image/character/wolongfengchu.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -13675,7 +13675,7 @@
if(att>0){
if(!_status.event.nojudge&&target.countCards('j',function(card){
return game.hasPlayer(function(current){
return current.canAddJudge(card)&&get.attitude(player,current)<0;
return current!=target&&current.canAddJudge(card)&&get.attitude(player,current)<0;
})
})) return 14;
if(target.countCards('e',function(card){
@ -13711,10 +13711,10 @@
}
if(i==es.length&&(_status.event.nojudge||!ui.selected.targets[0].countCards('j',function(card){
return target.canAddJudge(card);
}))){
})||att2<=0)){
return 0;
}
return -att*get.attitude(player,ui.selected.targets[0]);
return -att*att2;
});
next.set('multitarget',true);
next.set('targetprompt',_status.event.targetprompt||['被移走','移动目标']);
@ -15892,7 +15892,7 @@
if(player.hasSkillTag('save',true,target,true)) return true;
for(var i in lib.card){
if(lib.inpile.contains(i)||player.countCards('h',i)){
if(lib.filter.cardSavable({name:i},player,target)&&(_status.connectMode||player.hasUsableCard(i))) return true;
if(lib.card[i].savable&&lib.filter.cardSavable({name:i},player,target)&&(_status.connectMode||player.hasUsableCard(i))) return true;
}
}
return false;
@ -15976,8 +15976,10 @@
}
},this,this.name,this.sex,num,this.group);
for(var i=0;i<skills.length;i++){
this.hiddenSkills.remove(skills[i]);
this.addSkill(skills[i]);
if(this.hiddenSkills.contains(skills[i])){
this.hiddenSkills.remove(skills[i]);
this.addSkill(skills[i]);
}
}
this.checkConflict();
},
@ -16503,6 +16505,7 @@
this.nickname=name;
this.avatar=character;
this.node.nameol.innerHTML='';
if(lib.character[character]) this.sex=lib.character[character][0];
},
uninitOL:function(){
this.node.avatar.hide();
@ -16510,6 +16513,7 @@
this.node.identity.firstChild.innerHTML='';
delete this.nickname;
delete this.avatar;
delete this.sex;
},
initRoom:function(info,info2){
if(!this.node.gaming){
@ -16893,7 +16897,7 @@
}
setTimeout(function(){
dialog.delete();
},2000);
},lib.quickVoice.indexOf(str)!=-1?3800:2000);
var name=get.translation(this.name);
var info=[name?(name+'['+this.nickname+']'):this.nickname,str];
lib.chatHistory.push(info);
@ -16905,6 +16909,9 @@
delete _status.addChatEntry;
}
}
if(lib.config.background_speak&&lib.quickVoice.indexOf(str)!=-1){
game.playAudio('voice',(this.sex=='female'?'female':'male'),lib.quickVoice.indexOf(str));
}
},
showGiveup:function(){
if(this==game.me){
@ -27164,6 +27171,31 @@
jin:'thunder',
},
phaseName:['phaseZhunbei','phaseJudge','phaseDraw','phaseUse','phaseDiscard','phaseJieshu'],
quickVoice:[
'我从未见过如此厚颜无耻之人!',
'这波不亏',
'请收下我的膝盖',
'你咋不上天呢',
'放开我的队友,冲我来',
'你随便杀,闪不了算我输',
'见证奇迹的时刻到了',
'能不能快一点啊,兵贵神速啊',
'主公,别开枪,自己人',
'小内再不跳,后面还怎么玩儿啊',
'你们忍心,就这么让我酱油了?',
'我,我惹你们了吗',
'姑娘,你真是条汉子',
'三十六计,走为上,容我去去便回',
'人心散了,队伍不好带啊',
'昏君,昏君啊!',
'风吹鸡蛋壳,牌去人安乐',
'小内啊,您老悠着点儿',
'不好意思,刚才卡了',
'你可以打得再烂一点吗',
'哥们,给力点儿行嘛',
'哥哥,交个朋友吧',
'妹子,交个朋友吧',
],
};
var game={
getRarity:function(name){
@ -45147,8 +45179,20 @@
list.scrollTop=list.scrollHeight;
};
uiintro._heightfixed=true;
var emotionTitle=ui.create.div('.text.center','聊天表情');
emotionTitle.style.width='calc(100%)';
var emotionTitle=ui.create.div('.text.center','聊天表情',function(){
if(emotionTitle.innerHTML=='快捷语音'){
emotionTitle.innerHTML='聊天表情';
list2.remove();
list3.remove();
uiintro.add(list1);
}
else{
emotionTitle.innerHTML='快捷语音';
list1.remove();
list2.remove();
uiintro.add(list3);
}
});
uiintro.add(emotionTitle);
var list1=ui.create.div('');
if(get.is.phoneLayout()){
@ -45215,6 +45259,45 @@
}
list1.scrollTop=list1.scrollHeight;
uiintro.style.height=uiintro.content.scrollHeight+'px';
var list3=ui.create.div('.caption');
if(get.is.phoneLayout()){
list3.style.height='110px';
}
else{
list3.style.height='150px';
}
list3.style.overflow='scroll';
lib.setScroll(list3);
for(var i=0;i<lib.quickVoice.length;i++){
var node=ui.create.div('.text.chat',function(){
var player=game.me;
var str=this.innerHTML;
if(!player){
if(game.connectPlayers){
if(game.online){
for(var i=0;i<game.connectPlayers.length;i++){
if(game.connectPlayers[i].playerid==game.onlineID){
player=game.connectPlayers[i];break;
}
}
}
else{
player=game.connectPlayers[0];
}
}
}
if(!player) return;
if(game.online){
game.send('chat',game.onlineID,str);
}
else{
lib.element.player.chat.call(player,str);
}
});
node.innerHTML=lib.quickVoice[i];
list3.appendChild(node);
}
list3.scrollTop=list1.scrollHeight;
return uiintro;
},
volumn:function(){

View File

@ -1,25 +1,27 @@
window.noname_update={
version:'1.9.108.3.3',
update:'1.9.108.3.2',
version:'1.9.108.4',
update:'1.9.108.3.3',
changeLog:[
'剑阁新英魂',
'凤咲夜',
'联机快捷语音',
'界法正、界伏皇后、华歆、卧龙凤雏',
'bug修复',
],
files:[
//'card/extra.js',
//'card/gujian.js',
'card/guozhan.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/zhenfa.js',
//'card/zhulu.js',
//'character/diy.js',
'character/diy.js',
//'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
@ -27,22 +29,22 @@ window.noname_update={
//'character/hearth.js',
'character/mobile.js',
//'character/mtg.js',
//'character/old.js',
'character/old.js',
//'character/ow.js',
'character/rank.js',
'character/refresh.js',
//'character/shenhua.js',
//'character/sp.js',
'character/shenhua.js',
'character/sp.js',
'character/sp2.js',
//'character/tw.js',
//'character/standard.js',
'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
'layout/default/layout.css',
//'layout/default/layout.css',
//'layout/default/menu.css',
//'layout/nova/layout.css',
//'mode/identity.js',
@ -52,7 +54,7 @@ window.noname_update={
//'mode/tafang.js',
//'mode/single.js',
//'mode/stone.js',
'mode/brawl.js',
//'mode/brawl.js',
'mode/versus.js',
//'mode/boss.js',
'game/game.js',

BIN
image/character/huaxin.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 KiB

View File

@ -283,7 +283,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'gz_shamoke','gz_lifeng','gz_wangping',
'gz_xiaoqiao','gz_zhoutai','gz_lvfan',
'gz_beimihu','gz_mateng','gz_jiaxu',
'gz_jin_wangyuanji',
'gz_jin_wangyuanji','gz_huaxin',
],
'7':[
'gz_zhanghe','gz_jianggan','gz_simayi',
@ -341,7 +341,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
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'],
guozhan_others:["gz_lingcao","gz_lifeng","gz_beimihu","gz_jianggan"],
guozhan_others:["gz_lingcao","gz_lifeng","gz_beimihu","gz_jianggan","gz_huaxin"],
}
},
characterPack:{
@ -354,6 +354,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_shibing2wu:['female','wu',0,[],['unseen']],
gz_shibing1qun:['male','qun',0,[],['unseen']],
gz_shibing2qun:['female','qun',0,[],['unseen']],
gz_shibing1jin:['male','qun',0,[],['unseen']],
gz_shibing2jin:['female','qun',0,[],['unseen']],
gz_caocao:['male','wei',4,['jianxiong']],
gz_simayi:['male','wei',3,['fankui','guicai']],
@ -454,6 +456,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_lifeng:['male','shu',3,['tunchu','shuliang']],
gz_beimihu:["female","qun",3,["hmkguishu","hmkyuanyu"]],
gz_jianggan:["male","wei",3,["weicheng","daoshu"]],
gz_huaxin:['male','wei',3,['wanggui','xibing']],
gz_cuimao:['male','wei',3,['gzzhengbi','gzfengying'],[]],
gz_yujin:['male','wei',4,['gzjieyue'],['gzskin']],
@ -1895,57 +1898,29 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
enable:'phaseUse',
usable:1,
filter:function(event,player){
return (!player.isUnseen())&&player.countCards('he')>2&&game.hasPlayer(function(current){
return (!player.isUnseen())&&player.countCards('h')>0&&game.hasPlayer(function(current){
return current!=player&&current.hasSkill('gzxuanhuo')&&player.isFriendOf(current);
});
},
prompt:function(){
var player=_status.event.player;
var list=game.filterPlayer(function(current){
return current!=player&&current.hasSkill('gzxuanhuo')&&player.isFriendOf(current);
});
var str='选择两张牌。将第一张牌交给'+get.translation(list);
if(list.length>1) str+='中的一人';
str+=',并弃置第二张牌';
return str;
},
position:'he',
prompt:'弃置一张手牌,然后获得以下技能中的一个:〖武圣〗〖咆哮〗〖龙胆〗〖铁骑〗〖烈弓〗〖狂骨〗',
position:'h',
filterCard:true,
selectCard:2,
check:function(card){
var player=_status.event.player;
if(player.hasSkill('new_paoxiao',true)||player.getEquip('zhuge')||game.hasPlayer(function(current){
return current.hasSkill('new_paoxiao');
})) return 0;
if(player.hasSkill('new_paoxiao',true)||player.getEquip('zhuge')) return 0;
if(player.countCards('h',function(cardx){
return !ui.selected.cards.contains(cardx)&&cardx!=card&&cardx.name=='sha'&&player.hasUseTarget(cardx);
return cardx!=card&&cardx.name=='sha'&&player.hasUseTarget(cardx);
})<2) return 0;
if(get.position(card)=='h') return 6-get.value(card);
return 5-get.value(card);
return 6.5-get.value(card);
},
filterTarget:function(card,player,target){return target!=player&&target.hasSkill('gzxuanhuo')&&target.isFriendOf(player)},
discard:false,
lose:false,
delay:false,
content:function(){
'step 0'
if(player!=game.me&&!player.isOnline()) cards.reverse();
target.gain(cards[0],player);
player.$giveAuto(cards[0],target);
player.discard(cards[1]);
'step 1'
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])||current.hasSkill('fz_'+list[i]);
})) list.remove(list[i--]);
}
if(!list.length) event.finish();
else player.chooseControl(list).set('ai',function(){
player.chooseControl(list).set('ai',function(){
if(list.contains('new_paoxiao')) return 'new_paoxiao';
return list.randomGet();
}).set('prompt','选择并获得一项技能直到回合结束');
'step 2'
'step 1'
player.popup(result.control);
player.addTempSkill('fz_'+result.control);
game.log(player,'获得了技能','#g【'+get.translation(result.control)+'】');
@ -1955,7 +1930,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
audio:['xuanhuo',2],
ai:{
order:8,
result:{target:1},
result:{player:1},
},
},
//used:{},
@ -2143,20 +2118,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
event.num=trigger.num;
'step 1'
event.num--;
player.logSkill('enyuan_damage',trigger.source);
trigger.source.chooseCard('交给'+get.translation(player)+'一张手牌,或失去一点体力','h').set('ai',function(card){
if(get.attitude(_status.event.player,_status.event.getParent().player)>0) return 11-get.value(card);
return 7-get.value(card);
});
'step 2'
'step 1'
if(result.bool){
player.gain(result.cards[0],trigger.source,'giveAuto');
}
else trigger.source.loseHp();
if(event.num>0) event.goto(1);
},
audio:'enyuan2',
},
@ -3433,7 +3404,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
"_mingzhisuodingji":{
mode:["guozhan"],
enable:"phaseUse",
filter:function (event,player){
filter:function(event,player){
if(player.hasSkillTag('nomingzhi',false,null,true)) return false;
var bool=false;
var skillm=lib.character[player.name1][3];
var skillv=lib.character[player.name2][3];
@ -3454,7 +3426,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return bool;
},
popup:false,
content:function (){
content:function(){
"step 0"
var choice=[];
var skillm=lib.character[player.name1][3];
@ -7409,7 +7381,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
jianglue_info:'限定技出牌阶段你可以选择一个“军令”然后与你势力相同的其他角色可以执行该军令未确定势力角色可以在此时明置一张武将牌。你与所有执行该军令的角色增加一点体力上限然后回复一点体力然后你摸X张牌X为以此法回复了体力的角色数。',
gz_fazheng:'法正',
gzxuanhuo:'眩惑',
gzxuanhuo_info:'与你势力相同的其他角色的出牌阶段限一次,该角色可以交给你一张牌并弃置一张牌,然后获得以下一项场上没有的技能直到回合结束:〖武圣〗、〖咆哮〗、〖龙胆〗、〖铁骑〗、〖烈弓〗、〖狂骨〗。',
gzxuanhuo_info:'与你势力相同的其他角色的出牌阶段限一次,其可弃置一张手牌,然后选择获得以下一项技能直到回合结束:〖武圣〗、〖咆哮〗、〖龙胆〗、〖铁骑〗、〖烈弓〗、〖狂骨〗。',
gzenyuan:'恩怨',
gzenyuan_info:'锁定技当其他角色对你使用【桃】时该角色摸一张牌当你受到伤害后伤害来源须交给你一张手牌或失去1点体力。',
gzbuyi:'补益',
@ -7658,6 +7630,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_shibing2wu:'吴兵',
gz_shibing1qun:'群兵',
gz_shibing2qun:'群兵',
gz_shibing1jin:'晋兵',
gz_shibing2jin:'晋兵',
gzduanchang:'断肠',
gzduanchang_info:'锁定技,当你死亡时,你令杀死你的角色失去一张武将牌上的所有技能。',
gzweimu:'帷幕',

View File

@ -29,7 +29,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
start:function(){
"step 0"
_status.mode=get.config('versus_mode');
if(_status.connectMode&&lib.configOL.versus_mode=='guandu') _status.mode='guandu';
if(_status.connectMode) _status.mode=lib.configOL.versus_mode;
if(_status.brawl&&_status.brawl.submode){
_status.mode=_status.brawl.submode;
}
@ -154,6 +154,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
_status.brawl.chooseCharacterBefore();
}
if(_status.connectMode){
if(_status.mode=='guandu'){
for(var i=0;i<lib.card.list.length;i++){
switch(lib.card.list[i][2]){
case 'wugu':lib.card.list[i][2]='tunliang';break;
case 'nanman':lib.card.list[i][2]='lulitongxin';break;
case 'taoyuan':case 'shandian':lib.card.list[i][2]='yuanjun';break;
case 'muniu':lib.card.list.splice(i--,1);break;
}
}
}
if(lib.configOL.versus_mode=='1v1'){
game.randomMapOL('hidden');
}
@ -560,6 +570,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return '枭雄';
},
checkOnlineResult:function(player){
if(_status.mode=='4v4'||_status.mode=='guandu'){
var zhu=game.findPlayer(function(current){
return current.identity=='zhu';
});
return player.side==zhu.side;
}
return game.players[0].side==player.side;
},
getRoomInfo:function(uiintro){