Add files via upload

This commit is contained in:
Spmario233 2020-03-30 19:56:37 +08:00 committed by GitHub
parent 0c947afeb3
commit 028e91bf91
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 383 additions and 153 deletions

View File

@ -268,7 +268,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
var e5=target.getEquip(5);
if(e5&&e5.name=='muniu'&&e5.cards&&e5.cards.length>1) return -1;
if(target.countCards('e',function(card){
return get.value(card)<=0;
return get.value(card,target)<=0;
})||target.hasSkillTag('noe')) return 1;
return 0;
},

View File

@ -19,6 +19,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_yukine:['female','key',3,['yukine_wenzhou']],
key_yusa:['female','key',3,['yusa_yanyi','yusa_misa','dualside'],['dualside:key_misa']],
key_misa:['female','key',3,['misa_yehuo','misa_yusa','dualside'],['unseen']],
key_masato:['male','key','4/8',['masato_baoquan']],
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
// diy_hanlong:['male','wei',4,['siji','ciqiu']],
diy_feishi:['male','shu',3,['shuaiyan','moshou']],
@ -95,7 +96,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"],
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"],
},
},
characterIntro:{
@ -110,6 +111,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
},
characterTitle:{
key_masato:'#bLittle Busters!',
key_yusa:'#bCharlotte',
key_misa:'#rCharlotte',
key_yukine:'#gClannad',
@ -156,6 +158,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yuji:['zuoci']
},
skill:{
masato_baoquan:{
trigger:{source:'damageBefore'},
forced:true,
content:function(){
'step 0'
player.chooseControl('防止伤害','增加伤害').set('prompt','暴拳:防止即将对'+get.translation(trigger.player)+'造成的伤害或失去1点体力上限并令此伤害+2').set('choice',get.attitude(player,trigger.player)>=0?0:1).set('ai',function(){return _status.event.choice});
'step 1'
if(result.control=='增加伤害'){
player.loseMaxHp();
trigger.num+=2;
}
else trigger.cancel();
},
},
yusa_yanyi:{
enable:'phaseUse',
usable:1,
@ -804,6 +820,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'dieAfter'},
direct:true,
limited:true,
mark:false,
init:function(player){
if(player.hasZhuSkill('yuri_wangxi')){
player.markSkill('yuri_wangxi');
player.storage.yuri_wangxi=false;
}
},
zhuSkill:true,
unique:true,
skillAnimation:true,
@ -5707,6 +5730,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_yukine:'宫泽有纪宁',
key_yusa:'西森柚咲',
key_misa:'黑羽美砂',
key_masato:'井之原真人',
lucia_duqu:'毒躯',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
lucia_zhenren:'振刃',
@ -5746,6 +5770,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yusa_misa_info:'当你发动的〖演艺〗结算完成之后,你可以将武将牌翻面。',
misa_yusa:'归魂',
misa_yusa_info:'当你发动的〖业火〗结算完成后,你可以将武将牌翻面。',
masato_baoquan:'暴拳',
masato_baoquan_info:'锁定技当你即将造成伤害时你选择一项1.令此伤害+2并减1点体力上限。2.防止此伤害。',
ns_zhangwei:'张葳',
nsqiyue:'骑钺',

View File

@ -607,7 +607,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event){
if(event.type!='discard'||!event.cards2) return false;
var evt=event.getParent('phaseDiscard');
return evt&&evt.name=='phaseDiscard'
return evt&&evt.name=='phaseDiscard'&&evt.player==player;
},
content:function(){
player.addMark('renjie',trigger.cards2.length);

View File

@ -694,11 +694,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:'xinfu_fuhai',
enable:'phaseUse',
usable:1,
filterCard:true,
check:function(card){
if(game.players.length<3) return 0;
return 5-get.value(card);
},
content:function(){
'step 0'
event.current=player.next;
@ -733,7 +728,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(num>1) player.draw(num);
},
ai:{
order:1,
order:10,
result:{player:1},
},
},
@ -1066,6 +1061,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.line(trigger.source,'fire');
trigger.source.addSkillLog('new_rewusheng');
trigger.source.addSkillLog('xindangxian');
trigger.source.storage.xinfuli=true;
}
},
},
@ -1270,7 +1266,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shouye:{
audio:2,
group:'shouye_after',
trigger:{global:"useCardToTargeted"},
trigger:{target:"useCardToTargeted"},
filter:function(event,player){
return event.player!=player&&event.targets.length==1;
},
@ -3314,7 +3310,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
meiyong:'姝勇',
meiyong_info:'当你使用或打出【杀】时,你可以获得一名其他角色的一张牌,然后其摸一张牌。',
rexushen:'许身',
rexushen_info:'限定技出牌阶段你可以失去X点体力X为场上男性角色的数量。若你以此法进入了濒死状态则当你因一名角色而脱离此濒死状态后你可以令其获得技能〖武圣〗和〖当先〗。',
rexushen_info:'限定技出牌阶段你可以失去X点体力X为场上男性角色的数量。若你以此法进入了濒死状态则当你因一名角色而脱离此濒死状态后你可以令其获得技能〖武圣〗和〖当先〗(其以此法获得的〖当先〗结算时视为其发动过〖伏枥〗)。',
rezhennan:'镇南',
rezhennan_info:'当你成为其他角色使用的牌的目标后若此牌的目标数大于该角色的体力值则你可以弃置一张牌并对其造成1点伤害。',
@ -3338,7 +3334,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"rebiaozhao3":"表召",
"rebiaozhao3_info":"",
refuhai:'浮海',
refuhai_info:'出牌阶段限一次,你可弃置一张手牌,令其他角色同时在「潮起」和「潮落」中选择一项并依次展示这些角色的选项。若从你下家开始选择了相同选项的角色数目大于1则你摸X张牌X为连续相同结果的数量。',
refuhai_info:'出牌阶段限一次,你可令其他角色同时在「潮起」和「潮落」中选择一项并依次展示这些角色的选项。若从你下家开始选择了相同选项的角色数目大于1则你摸X张牌X为连续相同结果的数量。',
qiaosi:'巧思',
qiaosi_info:'出牌阶段限一次你可以表演「大键角色图」并根据表演结果获得相应的牌。然后你选择一项1.弃置X张牌。2.将X张牌交给一名其他角色。X为你以此法获得的牌数',
qiaosi_map:'大键角色图',

View File

@ -4,7 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'old',
characterSort:{
old:{
old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_guanqiujian"],
old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_guanqiujian","xiahouyuan"],
old_refresh:["old_zhangfei","old_huatuo"],
old_yijiang1:["masu","xushu","fazheng","yujin","xin_yujin","old_xusheng","old_lingtong","ol_yujin"],
old_yijiang2:["old_madai","old_zhonghui","old_wangyi","old_guanzhang","ol_liaohua"],
@ -17,6 +17,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
xiahouyuan:['male','wei',4,['shensu']],
ol_maliang:['male','shu',3,['zishu','yingyuan']],
old_huangfusong:['male','qun',4,['fenyue']],
old_majun:["male","wei",3,["xinfu_jingxie1","xinfu_qiaosi"],[]],
@ -797,7 +798,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
"step 0"
player.chooseTarget(get.prompt('xuanfeng'),function(card,player,target){
player.chooseTarget(get.prompt('oldxuanfeng'),function(card,player,target){
if(target==player) return false;
return get.distance(player,target)<=1||player.canUse('sha',target,false);
}).set('ai',function(target){
@ -810,7 +811,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
"step 1"
if(result.bool){
player.logSkill('xuanfeng',result.targets);
player.logSkill('oldxuanfeng',result.targets);
var target=result.targets[0];
var distance=get.distance(player,target);
if(distance<=1&&player.canUse('sha',target,false)){

View File

@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
characterSort:{
refresh:{
refresh_standard:["re_caocao","re_simayi","re_guojia","re_lidian","re_zhangliao","re_xuzhu","re_xiahoudun","re_zhangfei","re_zhaoyun","re_guanyu","re_machao","re_xushu","re_zhouyu","re_lvmeng","re_ganning","re_luxun","re_daqiao","re_huanggai","re_lvbu","re_gongsunzan","re_huatuo","re_liubei","re_diaochan","re_huangyueying","re_sunquan","re_sunshangxiang","re_zhenji","re_zhugeliang","re_huaxiong"],
refresh_feng:['caoren','re_xiahouyuan','re_huangzhong','re_weiyan','re_xiaoqiao','zhoutai','re_zhangjiao','xin_yuji'],
refresh_feng:['caoren','ol_xiahouyuan','re_huangzhong','re_weiyan','re_xiaoqiao','zhoutai','re_zhangjiao','xin_yuji'],
refresh_huo:["re_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","re_pangtong","ol_yuanshao","re_pangde"],
refresh_lin:['re_zhurong','re_menghuo','re_dongzhuo','re_sunjian','re_caopi','re_xuhuang'],
refresh_shan:['re_dengai','re_jiangwei','re_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce'],
@ -51,7 +51,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xin_yuji:['male','qun',3,['reguhuo']],
re_zuoci:['male','qun',3,['rehuashen','rexinsheng']],
re_xiahouyuan:['male','wei',4,['xinshensu']],
ol_xiahouyuan:['male','wei',4,['xinshensu','shebian']],
caoren:['male','wei',4,['xinjushou','xinjiewei']],
re_huangzhong:['male','shu',4,['xinliegong']],
re_weiyan:['male','shu',4,['xinkuanggu','qimou']],
@ -59,7 +59,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhoutai:['male','wu',4,['buqu','fenji']],
re_pangde:['male','qun',4,['mashu','jianchu']],
re_xuhuang:['male','wei',4,['duanliang','jiezi']],
re_sp_zhugeliang:["male","shu",3,["rehuoji","rekanpo","bazhen"],[]],
re_sp_zhugeliang:["male","shu",3,["bazhen","rehuoji","rekanpo","cangzhuo"],[]],
re_xunyu:["male","wei",3,["quhu","rejieming"],[]],
re_dianwei:["male","wei",4,["reqiangxi"],[]],
re_yanwen:["male","qun",4,["reshuangxiong"],[]],
@ -92,6 +92,42 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sunben:['zhouyu','taishici','daqiao'],
},
skill:{
cangzhuo:{
trigger:{player:'phaseDiscardBegin'},
frequent:true,
filter:function(event,player){
return player.getHistory('useCard',function(card){
return get.type(card.card,'trick')=='trick';
}).length==0;
},
content:function(){
player.addTempSkill('cangzhuo2');
},
},
cangzhuo2:{
mod:{
ignoredHandcard:function(card,player){
if(get.type(card,'trick')=='trick'){
return true;
}
},
cardDiscardable:function(card,player,name){
if(name=='phaseDiscard'&&get.type(card,'trick')=='trick') return false;
}
},
},
shebian:{
trigger:{player:'turnOverEnd'},
check:function(event,player){
return player.canMoveCard(true,true);
},
filter:function(event,player){
return player.canMoveCard(null,true);
},
content:function(){
player.moveCard().nojudge=true;
},
},
rexianzhen:{
audio:2,
enable:'phaseUse',
@ -5407,6 +5443,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rejinjiu_info:'锁定技,你的【酒】均视为【杀】。其他角色不能于你的回合内使用【酒】。当你受到酒【杀】的伤害时,你令此伤害-XX为影响过此【杀】的伤害值的【酒】的数量',
rejinjiu2:'禁酒',
rejinjiu3:'禁酒',
ol_xiahouyuan:'界夏侯渊',
shebian:'设变',
shebian_info:'当你的武将牌翻面后,你可以移动场上的一张牌。',
cangzhuo:'藏拙',
cangzhuo_info:'弃牌阶段开始时,若你本回合内没有使用过装备牌,则你的锦囊牌不计入手牌上限。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -6,7 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connectBanned:['zuoci'],
characterSort:{
shenhua:{
shenhua_feng:["sp_zhangjiao","re_yuji","old_zhoutai","old_caoren","xiahouyuan","xiaoqiao","huangzhong","weiyan"],
shenhua_feng:["sp_zhangjiao","re_yuji","old_zhoutai","old_caoren","re_xiahouyuan","xiaoqiao","huangzhong","weiyan"],
shenhua_huo:['dianwei','xunyu','pangtong','sp_zhugeliang','taishici','yanwen','re_yuanshao','pangde'],
shenhua_lin:['caopi','xuhuang','menghuo','zhurong','re_lusu','sunjian','dongzhuo','jiaxu'],
shenhua_shan:['dengai','zhanghe','liushan','jiangwei','zhangzhang','sunce','caiwenji','zuoci'],
@ -19,7 +19,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_caoren:['male','wei',4,['moon_jushou','jiewei']],
xuhuang:['male','wei',4,['gzduanliang']],
pangde:['male','qun',4,['mashu','mengjin']],
xiahouyuan:['male','wei',4,['shensu']],
re_xiahouyuan:['male','wei',4,['xinshensu']],
huangzhong:['male','shu',4,['liegong']],
weiyan:['male','shu',4,['kuanggu']],
xiaoqiao:['female','wu',3,['tianxiang','hongyan']],
@ -5699,17 +5699,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
shensu:{
audio:'shensu1',
audioname:['xiahouba','re_xiahouyuan'],
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
group:['shensu1','shensu2']
},
xinshensu:{
audio:'shensu1',
audioname:['xiahouba','re_xiahouyuan'],
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
group:['shensu1','shensu2','shensu4']
},
shensu1:{
audio:2,
audioname:['xiahouba','re_xiahouyuan'],
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
trigger:{player:'phaseJudgeBefore'},
direct:true,
content:function(){
@ -5733,7 +5733,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
shensu2:{
audio:'shensu1',
audioname:['xiahouba','re_xiahouyuan'],
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
trigger:{player:'phaseUseBefore'},
direct:true,
filter:function(event,player){
@ -5774,12 +5774,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
shensu4:{
audio:'shensu1',
audioname:['xiahouba','re_xiahouyuan'],
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
trigger:{player:'phaseDiscardBefore'},
direct:true,
content:function(){
"step 0"
var check=player.needsToDiscard()||player.isTurnedOver();
var check=player.needsToDiscard()||player.isTurnedOver()||(player.hasSkill('shebian')&&player.canMoveCard(true,true));
player.chooseTarget(get.prompt('shensu'),"跳过弃牌阶段并将武将牌翻面,视为对一名其他角色使用一张【杀】",function(card,player,target){
if(player==target) return false;
return player.canUse({name:'sha'},target,false);
@ -7367,7 +7367,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xueyi_info:'主公技,锁定技,场上每有一名其他群雄角色存活,你的手牌上限便+2。',
mengjin_info:'当你使用的【杀】被【闪】抵消时,你可以弃置目标角色的一张牌。',
re_xiahouyuan:'夏侯渊',
re_xiahouyuan:'夏侯渊',
re_huangzhong:'界黄忠',
re_weiyan:'界魏延',
re_xiaoqiao:'界小乔',
@ -7385,7 +7385,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_caoren:'曹仁',
xuhuang:'徐晃',
pangde:'庞德',
xiahouyuan:'夏侯渊',
xiahouyuan:'夏侯渊',
caoren:'界曹仁',
huangzhong:'黄忠',
sp_zhangjiao:'张角',

View File

@ -130,7 +130,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mizhu:['male','shu',3,['ziyuan','jugu']],
buzhi:['male','wu',3,['hongde','dingpan']],
sp_liubei:['male','shu',4,['zhaolie','shichou']],
sp_liubei:['male','shu',4,['zhaolie','shichou'],['zhu']],
caochun:['male','wei',4,['xinshanjia']],
dongbai:['female','qun',3,['lianzhu','xiehui']],
@ -3376,8 +3376,33 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
gzjili:{
mod:{
aiOrder:function(player,card,num){
if(player.isPhaseUsing()&&get.subtype(card)=='equip1'&&!get.cardtag(card,'gifts')){
var range0=player.getAttackRange();
var range=0;
var info=get.info(card);
if(info&&info.distance&&info.distance.attackFrom){
range-=info.distance.attackFrom;
}
if(player.getEquip(1)){
var num=0;
var info=get.info(player.getEquip(1));
if(info&&info.distance&&info.distance.attackFrom){
num-=info.distance.attackFrom;
}
range0-=num;
}
range0+=range;
if(range0==(player.getHistory('useCard').length+player.getHistory('respond').length+2)&&player.countCards('h',function(cardx){
return get.subtype(cardx)!='equip1'&&player.getUseValue(cardx)>0;
})) return num+10;
}
},
},
trigger:{player:['useCard','respond']},
frequent:true,
locked:false,
filter:function(event,player){
return player.getHistory('useCard').length+player.getHistory('respond').length==player.getAttackRange();
},
@ -3386,7 +3411,36 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.draw(player.getAttackRange());
},
ai:{
threaten:1.8
threaten:1.8,
effect:{
target:function(card,player,target,current){
if(player!=target||!player.isPhaseUsing()) return;
if(get.subtype(card)=='equip1'&&!get.cardtag(card,'gifts')){
var range0=player.getAttackRange();
var range=0;
var info=get.info(card);
if(info&&info.distance&&info.distance.attackFrom){
range-=info.distance.attackFrom;
}
if(player.getEquip(1)){
var num=0;
var info=get.info(player.getEquip(1));
if(info&&info.distance&&info.distance.attackFrom){
num-=info.distance.attackFrom;
}
range0-=num;
}
range0+=range;
var delta=range0-(player.getHistory('useCard').length+player.getHistory('respond').length);
if(delta<0) return;
var num=player.countCards('h',function(card){
return (get.cardtag(card,'gifts')||get.subtype(card)!='equip1')&&player.getUseValue(card)>0;
});
if(delta==2&&num>0) return [1,3];
if(num>=delta) return 'zeroplayertarget';
}
},
},
}
},
xiongsuan:{
@ -3977,7 +4031,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var card=result.cards[0];
player.line(target,'green');
target.addTempSkill('new_zhixi','phaseUseEnd');
target.addTempSkill('new_meibu_range');
target.addTempSkill('new_meibu_range','phaseUseEnd');
if(card.name!='sha'&&get.type(card)!='trick'&&get.color(card)!='black'){
target.storage.meibu=player;
}
@ -3990,38 +4044,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
subSkill:{
range:{
mod:{
targetInRange:function (card,player,target){
if(target==player.storage.meibu){
return true;
globalFrom:function (from,to,num){
if(to==from.storage.meibu){
return -Infinity;
}
},
},
onremove:function (player){
game.broadcast(function(player){
if(player.marks.new_meibu){
player.marks.new_meibu.delete();
delete player.marks.new_meibu;
}
},player);
if(player.marks.new_meibu){
player.marks.new_meibu.delete();
delete player.marks.new_meibu;
game.addVideo('unmark',player,'new_meibu');
}
},
trigger:{
player:"phaseUseEnd",
},
forced:true,
popup:false,
content:function (){
player.removeSkill('new_meibu_viewas');
game.broadcastAll(function(player){
if(player.marks.new_meibu&&player.marks.new_meibu.info){
player.marks.new_meibu.info.content=player.marks.new_meibu.info.content.slice(8);
}
},player);
},
sub:true,
},
viewas:{
@ -4029,9 +4057,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
cardEnabled:function (card,player){
return false;
},
cardUsable:function (card,player){
return false;
},
cardSavable:function (card,player){
return false;
},
@ -4100,7 +4125,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
popup:false,
filter:function (event,player){
if(get.type(event.card,'trick')=='trick') return true;
return player.countUsed()>=player.hp;
return player.countUsed(null,true)>=player.hp;
},
onremove:function (player){
player.unmarkSkill('new_meibu');
},
content:function (){
player.addTempSkill('new_meibu_viewas','phaseUseEnd');
@ -7073,51 +7101,41 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
shichou:{
audio:1,
//audio:1,
skillAnimation:true,
animationColor:'orange',
unique:true,
limited:true,
mark:null,
enable:'phaseUse',
mark:false,
trigger:{player:'phaseZhunbeiBegin'},
zhuSkill:true,
direct:true,
filter:function(event,player){
if(!player.hasZhuSkill('shichou'))return false;
if(player.countCards('he')<2) return false;
return !player.storage.shichou;
},
selectCard:2,
init:function(player){
if(player.hasZhuSkill('shichou')){
player.markSkill('shichou');
player.storage.shichou=false;
}
},
filterTarget:function(card,player,target){
return target.group=='shu'&&target!=player;
},
filterCard:true,
position:'he',
check:function(card){
return 7-get.value(card);
},
discard:false,
prepare:'give',
content:function(){
player.storage.shichou=true;
player.awakenSkill('shichou');
target.gain(cards,player);
player.storage.shichou_target=target;
player.addSkill('shichou2');
target.markSkillCharacter('shichou',player,'誓仇','代替'+get.translation(player)+'承受伤害直到首次进入濒死状态');
},
intro:{
content:'limited'
},
ai:{
order:7,
result:{
player:function(player,target){
"step 0"
player.chooseCardTarget({
prompt:get.prompt2('shichou'),
selectCard:2,
filterTarget:function(card,player,target){
return target.group=='shu'&&target!=player;
},
filterCard:true,
position:'he',
ai1:function(card){
return 7-get.value(card);
},
ai2:function(target){
var player=_status.event.player;
if(player.hasUnknown()) return 0;
var att=get.attitude(player,target);
if(att<=0){
@ -7129,8 +7147,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return (10-att)/4;
}
},
}
}
});
"step 1"
if(!result.bool) return;
var target=result.targets[0];
var cards=result.cards;
player.storage.shichou=true;
player.logSkill('shichou',target);
player.awakenSkill('shichou');
target.gain(cards,player,'giveAuto');
player.storage.shichou_target=target;
player.addSkill('shichou2');
target.markSkillCharacter('shichou',player,'誓仇','代替'+get.translation(player)+'承受伤害直到首次进入濒死状态');
},
intro:{
content:'limited'
},
},
shichou2:{
group:'shichou3',
@ -7139,6 +7171,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
popup:false,
content:function(){
trigger.player=player.storage.shichou_target;
trigger.shichou4=true;
trigger.player.addSkill('shichou4');
player.logSkill('shichou2',player.storage.shichou_target);
game.delay(0.5);
@ -7184,6 +7217,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
popup:false,
audio:false,
content:function(){
if(!trigger.shichou4) return;
if(event.triggername=='damageAfter'&&trigger.num){
player.draw(trigger.num);
}
@ -8273,6 +8307,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.draw(3);
return;
}
if(result.control=='xindangxian') player.storage.xinfuli=true;
player.addSkill(result.control);
player.popup(result.control);
game.log(player,'获得了技能','#g【'+get.translation(result.control)+'】');
@ -8754,6 +8789,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
game.cardsGotoSpecial(trigger.cards);
//ui.special.appendChild(trigger.card);
trigger.player.addSkill('zhenwei2');
trigger.player.markSkill('zhenwei2');
//event.trigger("addCardToStorage");
}
@ -8781,7 +8817,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'phaseEnd'},
forced:true,
content:function(){
player.gain(player.storage.zhenwei2,'gain2');
player.gain(player.storage.zhenwei2,'gain2','log');
delete player.storage.zhenwei2;
player.removeSkill('zhenwei2');
}
@ -15007,7 +15043,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.logSkill('xinfu_lingren',result.targets);
var target=result.targets[0];
event.target=target;
player.line('water',target);
event.choice={
basic:false,
trick:false,
@ -15015,7 +15050,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
player.chooseBool('是否押基本牌?').ai=function(event,player){
var rand=0.95;
if(!target.countCards('h',{type:['basic']})) rand=0;
if(!target.countCards('h',{type:['basic']})) rand=0.05;
if(!target.countCards('h')) rand=0;
return Math.random()<rand?true:false;
};
}
@ -15028,8 +15064,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.choice.basic=true;
}
player.chooseBool('是否押锦囊牌?').ai=function(event,player){
var rand=0.95;
if(!target.countCards('h',{type:['trick','delay']})) rand=0;
var rand=0.9;
if(!target.countCards('h',{type:['trick','delay']})) rand=0.1;
if(!target.countCards('h')) rand=0;
return Math.random()<rand?true:false;
};
'step 3'
@ -15037,8 +15074,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.choice.trick=true;
}
player.chooseBool('是否押装备牌?').ai=function(event,player){
var rand=0.95;
if(!target.countCards('h',{type:['equip']})) rand=0;
var rand=0.75;
if(!target.countCards('h',{type:['equip']})) rand=0.25;
if(!target.countCards('h')) rand=0;
return Math.random()<rand?true:false;
};
'step 4'
@ -16559,7 +16597,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinfenyue:'奋钺',
xinfenyue_info:'出牌阶段限X次X为与你不同阵营的存活角色数你可以与一名其他角色拼点若你赢根据你拼点牌的点数依次执行以下效果不大于5你获得其一张牌不大于9你获得牌堆里的一张【杀】; 不大于K视为你对其使用一张雷【杀】。',
neifa:'内伐',
neifa_info:'出牌阶段开始时,你可以摸两张牌或获得场上的一张牌,然后弃置一张牌。若弃置的牌是基本牌,本回合你不能使用锦囊和装备牌,且【杀】的使用次数+X且目标+1若弃置的不是基本牌本回合你不能使用基本牌普通锦囊牌的目标+1前两次使用装备牌时摸X张牌X为你发动〖内伐〗弃牌后手牌中不能使用的牌的数量且最多为5。',
neifa_info:'出牌阶段开始时,你可以摸两张牌或获得场上的一张牌,然后弃置一张牌。若弃置的牌是基本牌,本回合你不能使用锦囊和装备牌,且【杀】的使用次数+X且目标+1若弃置的不是基本牌本回合你不能使用基本牌使用普通锦囊牌选择目标时可以增加或减少一个目标前两次使用装备牌时摸X张牌X为你发动〖内伐〗弃牌后手牌中不能使用的牌的数量且最多为5。',
neifa_use:'内伐',
hmmanyi:'蛮裔',
hmmanyi_info:'锁定技,【南蛮入侵】对你无效。',
@ -16899,7 +16937,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
luanzhan:'乱战',
luanzhan_info:'你使用【杀】或黑色普通锦囊牌可以额外选择X名角色为目标当你使用【杀】或黑色普通锦囊牌指定目标后若此牌的目标角色数小于X则X减至0。X为你于本局游戏内造成过伤害的次数',
zhengnan:'征南',
zhengnan_info:'当其他角色死亡后,你可以摸三张牌。若如此做,你获得下列技能中的任意一个:〖武圣〗、 〖当先〗和〖制蛮〗',
zhengnan_info:'当其他角色死亡后,你可以摸三张牌。若如此做,你获得下列技能中的任意一个:〖武圣〗、 〖当先〗和〖制蛮〗(你以此法获得的〖当先〗结算时视为已发动过〖伏枥〗)。',
xinzhengnan:'征南',
xinzhengnan_info:'当其他角色死亡后,你可以摸三张牌,或者获得下列技能中的任意一个:〖武圣〗、 〖当先〗和〖制蛮〗',
xiefang:'撷芳',

View File

@ -263,11 +263,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
twxiaolian:{
audio:2,
trigger:{global:'useCardToPlayer'},
logTarget:'player',
logTarget:'target',
filter:function(event,player){
return event.card&&event.card.name=='sha'&&event.player!=player&&
event.targets.length==1&&event.targets[0]!=player;
},
check:function(event,player){
return get.effect(event.targets[0],event.card,event.player,player)<=get.effect(player,event.card,event.player,player);
},
content:function(){
trigger.getParent().twxiaolian=trigger.targets[0];
trigger.targets.length=0;
@ -289,7 +292,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
mod:{
globalTo:function(from,to,distance){
if(from!=to) return distance+to.storage.twxiaolian_distance.length;
if(from!=to&&to.storage.twxiaolian_distance) return distance+to.storage.twxiaolian_distance.length;
},
},
},
@ -304,7 +307,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
var target=trigger.getParent(2).twxiaolian;
event.target=target;
player.chooseCard('是否将一张牌当做【马】置于'+get.translation(target)+'的武将牌旁?','he').ai=function(target){
player.chooseCard('是否将一张牌当做【马】置于'+get.translation(target)+'的武将牌旁?','he').ai=function(card){
if(get.attitude(_status.event.player,_status.event.getParent('twxiaolian_damage').target)>2) return 7-get.value(card);
return 0;
};
@ -327,9 +330,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event.card&&event.card.name=='sha'&&event.player!=player&&event.target!=player&&
event.targets.length==1&&event.player.inRange(player)<=1;
},
logTarget:'player',
logTarget:'target',
check:function(event,player){
return get.effect(event.targets[0],{name:'sha'},event.player,player)<=get.effect(player,{name:'sha'},event.player,player);
return get.effect(event.targets[0],event.card,event.player,player)<=get.effect(player,event.card,event.player,player);
},
content:function(){
'step 0'

View File

@ -6822,7 +6822,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
unique:true,
limited:true,
mark:null,
mark:false,
content:function(){
'step 0'
player.storage.xingshuai=true;
@ -6895,10 +6895,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
result:{
target:function(player,target){
if(target.hasSkillTag('nogain')) return 0;
if(player.countCards('h')==1&&player.countCards('h','du')) return -1;
if(player.hp<=2&&player.countCards('h','shan')) return 0;
if(target.countCards('h')+player.countCards('h')>target.hp+2) return 0;
if(get.attitude(player,target)>3) return 1;
if(player.countCards('h')==player.countCards('h','du')) return -1;
if(target.hasJudge('lebu')) return 0;
if(get.attitude(player,target)>3){
var basis=get.threaten(target);
if(player==get.zhu(player)&&player.hp<=2&&player.countCards('h','shan')&&!game.hasPlayer(function(current){
return get.attitude(current,player)>3&&current.countCards('h','tao')>0;
})) return 0;
if(target.countCards('h')+player.countCards('h')>target.hp+2) return basis*0.8;
return basis;
}
return 0;
}
}

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'1.9.98.4.2',
'1.9.98.4.4',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -8,7 +8,7 @@ window.noname_asset_list=[
'audio/background/music_diaochan.mp3',
'audio/background/music_shezhan.mp3',
'audio/background/music_jifeng.mp3',
'audio/background/music_philosophy.mp3',
'audio/background/music_phliosophy.mp3',
'audio/background/music_jilve.mp3',
'audio/card/default.mp3',
@ -2423,6 +2423,11 @@ window.noname_asset_list=[
'image/card/rewrite_renwang.png',
'image/card/rewrite_tengjia.png',
'image/card/rewrite_zhuge.png',
'image/card/group_wei.png',
'image/card/group_shu.png',
'image/card/group_wu.png',
'image/card/group_qun.png',
'image/card/group_key.png',
'image/card/bagua.png',
'image/card/baihupifeng.png',
@ -2862,6 +2867,8 @@ window.noname_asset_list=[
'image/character/sp_wangyuanji.jpg',
'image/character/sp_xinxianying.jpg',
'image/character/key_misa.jpg',
'image/character/key_masato.jpg',
'image/character/ol_xiahouyuan.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -3159,6 +3159,28 @@
}
}
},
transparent_dialog:{
name:'堆叠对话框虚化',
init:false,
intro:'当具有static属性的对话框堆叠如五谷丰登对话框中提示无懈可击将后方的对话框变为半透明',
onclick:function(bool){
game.saveConfig('transparent_dialog',bool);
if(bool){
for(var i=0;i<ui.dialogs.length;i++){
if(ui.dialogs[i]!=ui.dialog&&ui.dialogs[i].static){
ui.dialogs[i].unfocus();
}
}
}
else{
for(var i=0;i<ui.dialogs.length;i++){
if(ui.dialogs[i]!=ui.dialog&&ui.dialogs[i].static){
ui.dialogs[i].refocus();
}
}
}
}
},
mark_identity_style:{
name:'标记身份操作',
intro:'设置单击身份按钮时的操作',
@ -6412,7 +6434,7 @@
return this;
};
HTMLDivElement.prototype.unfocus=function(){
this.classList.add('transparent');
if(lib.config.transparent_dialog) this.classList.add('transparent');
return this;
};
HTMLDivElement.prototype.refocus=function(){
@ -13312,7 +13334,7 @@
},
moveCard:function(){
'step 0'
if(!player.canMoveCard()){
if(!player.canMoveCard(null,event.nojudge)){
event.finish();
return;
}
@ -15424,11 +15446,16 @@
getDamagedHp:function(){
return this.maxHp-Math.max(0,this.hp);
},
changeGroup:function(group,log){
game.broadcastAll(function(player,group){
player.group=group;
player.node.name.dataset.nature=get.groupnature(group);
},this,group);
changeGroup:function(group,log,broadcast){
var player=this;
if(broadcast!==false){
game.broadcast(function(player,group){
player.group=group;
player.node.name.dataset.nature=get.groupnature(group);
},player,group);
}
player.group=group;
player.node.name.dataset.nature=get.groupnature(group);
if(log!==false) game.log(this,'将势力变为了','#y'+get.translation(group+2));
},
chooseToDuiben:function(target){
@ -17924,7 +17951,7 @@
return false;
}
},
canMoveCard:function(withatt){
canMoveCard:function(withatt,nojudge){
var player=this;
return game.hasPlayer(function(current){
var att=get.sgn(get.attitude(player,current));
@ -17943,7 +17970,7 @@
}
}
}
if(!withatt||att>0){
if(!nojudge&&(!withatt||att>0)){
var js=current.getCards('j');
for(var i=0;i<js.length;i++){
if(game.hasPlayer(function(current2){

View File

@ -1,43 +1,45 @@
window.noname_update={
version:'1.9.98.4.3',
update:'1.9.98.4.2',
version:'1.9.98.4.4',
update:'1.9.98.4.3',
changeLog:[
'bug修复',
'界夏侯渊,界卧龙',
'联机神将选择势力',
'bug修复',
],
files:[
'card/extra.js',
//'card/extra.js',
//'card/huanlekapai.js',
//'card/sp.js',
//'card/standard.js',
//'card/swd.js',
//'card/mtg.js',
'card/guozhan.js',
//'card/guozhan.js',
//'card/gwent.js',
//'card/zhenfa.js',
//'card/zhulu.js',
//'character/diy.js',
//'character/extra.js',
'card/zhulu.js',
'character/diy.js',
'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
//'character/gwent.js',
//'character/hearth.js',
'character/mobile.js',
//'character/mtg.js',
//'character/old.js',
'character/old.js',
'character/refresh.js',
'character/shenhua.js',
'character/sp.js',
//'character/tw.js',
'character/tw.js',
//'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
'character/xinghuoliaoyuan.js',
//'character/yijiang.js',
//'character/xinghuoliaoyuan.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
//'layout/default/layout.css',
'layout/default/layout.css',
//'layout/nova/layout.css',
//'mode/identity.js',
'mode/identity.js',
//'mode/doudizhu.js',
//'mode/guozhan.js',
//'mode/chess.js',

BIN
image/card/group_key.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
image/card/group_qun.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
image/card/group_shu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

BIN
image/card/group_wei.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
image/card/group_wu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View File

@ -1871,6 +1871,7 @@ div:not(.handcards)>.card>.info>span,
.skill {
left: 0 !important;
width: 70px !important;
white-space: nowrap;
}
.skill>.card {
transform: scale(0.56);
@ -4311,6 +4312,13 @@ div[data-decoration="bronze"]::after{
top: 74px;
right: 6px;
}
.card .tempname {
top: 6px;
left: 6px;
font-size: 22px;
color: white !important;
pointer-events: none;
}
/*.card.equip1 .wunature,
.card.equip3 .wunature,
.card.equip4 .wunature{

View File

@ -2,6 +2,23 @@
game.import('mode',function(lib,game,ui,get,ai,_status){
return {
name:'identity',
card:{
group_wei:{
fullskin:true,
},
group_shu:{
fullskin:true,
},
group_wu:{
fullskin:true,
},
group_qun:{
fullskin:true,
},
group_key:{
fullskin:true,
},
},
start:function(){
"step 0"
if(!lib.config.new_tutorial){
@ -1857,7 +1874,22 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
zhu.update();
}
},game.zhu,game.zhu.name,game.zhu.name2,game.players.length>4);
if(game.zhu.group=='shen'){
var list=['wei','shu','wu','qun','key'];
for(var i=0;i<list.length;i++){
if(!lib.group.contains(list[i])) list[i].splice(i--,1);
else list[i]=['','','group_'+list[i]];
}
game.zhu.chooseButton(['请选择神武将的势力',[list,'vcard']],true).set('ai',function(){
return Math.random();
});
}
else event.goto(3);
"step 2"
var name=result.links[0][2].slice(6);
game.zhu.changeGroup(name);
"step 3"
var list=[];
var selectButton=(lib.configOL.double_character?2:1);
@ -1901,7 +1933,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game.me.chooseButtonOL(list,function(player,result){
if(game.online||player==game.me) player.init(result.links[0],result.links[1]);
});
"step 2"
"step 4"
var shen=[];
for(var i in result){
if(result[i]&&result[i].links){
for(var j=0;j<result[i].links.length;j++){
@ -1916,25 +1949,57 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else{
result[i]=result[i].links
}
if(!lib.playerOL[i].name){
lib.playerOL[i].init(result[i][0],result[i][1]);
}
if(lib.character[result[i][0]]&&lib.character[result[i][0]][1]=='shen') shen.push(lib.playerOL[i]);
}
event.result2=result;
if(shen.length){
var list=['wei','shu','wu','qun','key'];
for(var i=0;i<list.length;i++){
if(!lib.group.contains(list[i])) list[i].splice(i--,1);
list[i]=['','','group_'+list[i]];
}
for(var i=0;i<shen.length;i++){
shen[i]=[shen[i],['请选择神武将的势力',[list,'vcard']],1,true];
}
game.me.chooseButtonOL(shen,function(player,result){
if(player==game.me) player.changeGroup(result.links[0][2].slice(6),false,false);
}).set('switchToAuto',function(){
_status.event.result='ai';
}).set('processAI',function(){
var buttons=_status.event.dialog.buttons;
return {
bool:true,
links:buttons.randomGets(1),
}
});
}
"step 5"
if(!result) result={};
var result2=event.result2;
game.broadcast(function(result,result2){
for(var i in result){
if(!lib.playerOL[i].name){
lib.playerOL[i].init(result[i][0],result[i][1]);
}
if(result2[i]&&result2[i].links) lib.playerOL[i].changeGroup(result2[i].links[0][2].slice(6),false,false);
}
setTimeout(function(){
ui.arena.classList.remove('choose-character');
},500);
},result2,result);
for(var i in result2){
if(!lib.playerOL[i].name){
lib.playerOL[i].init(result2[i][0],result2[i][1]);
}
if(result[i]&&result[i].links) lib.playerOL[i].changeGroup(result[i].links[0][2].slice(6),false,false);
}
if(event.special_identity){
for(var i in event.special_identity){
game.zhu.addSkill(i);
}
}
game.broadcast(function(result){
for(var i in result){
if(!lib.playerOL[i].name){
lib.playerOL[i].init(result[i][0],result[i][1]);
}
}
setTimeout(function(){
ui.arena.classList.remove('choose-character');
},500);
},result);
for(var i=0;i<game.players.length;i++){
_status.characterlist.remove(game.players[i].name);
_status.characterlist.remove(game.players[i].name2);
@ -1946,6 +2011,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
translate:{
group_wei:"魏势力",
group_shu:"蜀势力",
group_wu:"吴势力",
group_qun:"群势力",
group_key:"键势力",
group_wei_bg:"魏",
group_shu_bg:"蜀",
group_wu_bg:"吴",
group_qun_bg:"群",
group_key_bg:"键",
zhu:"主",
zhong:"忠",
mingzhong:"忠",