v1.9.112.2

This commit is contained in:
Spmario233 2022-03-04 14:13:00 +08:00
parent f824bf767a
commit d13637b99c
27 changed files with 1483 additions and 326 deletions

View File

@ -348,6 +348,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
forced:true,
equipSkill:true,
filter:function(event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.player.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
card:event.card
})) return false;
return event.card.name=='sha'&&player.hasSex('male');
},
content:function(){
@ -373,7 +379,15 @@ game.import('card',function(lib,game,ui,get,ai,_status){
forced:true,
trigger:{player:['damageBegin3','loseHpBegin']},
filter:function(event,player){
if(event.name=='damage') return event.card&&get.type2(event.card)=='trick';
if(player.hasSkillTag('unequip2')) return false;
if(event.name=='damage'){
if(event.source&&event.source.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
card:event.card
})) return false;
return event.card&&get.type2(event.card)=='trick';
}
return event.type=='du';
},
content:function(){

View File

@ -353,6 +353,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
logTarget:'target',
content:function(){
trigger.directHit.add(trigger.target);
if(player.getHistory('gain',function(evt){
return evt.getParent(2).name=='scfuhai';
}).length<2) player.draw();
},
group:['scfuhai_die'],
ai:{
@ -447,13 +450,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tianzuo:{
audio:2,
trigger:{
global:'gameStart',
global:'phaseBefore',
player:'enterGame',
},
forced:true,
locked:false,
filter:function(event,player){
return !lib.inpile.contains('qizhengxiangsheng');
return (event.name!='phase'||game.phaseNumber==0)&&!lib.inpile.contains('qizhengxiangsheng');
},
content:function(){
game.addGlobalSkill('tianzuo_global');
@ -4864,7 +4867,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yingba:'英霸',
yingba_info:'①出牌阶段限一次你可令一名体力上限大于1的其他角色减少1点体力上限并获得“平定”标记然后你减少1点体力上限。②你对拥有“平定”标记的角色使用牌没有距离限制。③拥有“平定”标记的角色的手牌上限+XX为其“平定”数。',
scfuhai:'覆海',
scfuhai_info:'锁定技。①当你使用牌指定目标后,若目标角色有“平定”标记,则其不可响应此牌。②拥有“平定”标记的角色死亡时你增加X点体力上限并摸X张牌。X为其拥有的“平定”标记数。',
scfuhai_info:'锁定技。①当你使用牌指定目标后,若目标角色有“平定”标记,则其不可响应此牌。若你本回合内以此法获得的牌数小于2则你摸一张牌。②拥有“平定”标记的角色死亡时你增加X点体力上限并摸X张牌。X为其拥有的“平定”标记数。',
pinghe:'冯河',
pinghe_info:'锁定技。①你的手牌上限基数等于你已损失的体力值。②当你受到其他角色造成的伤害时若你有牌且你的体力上限大于1则你防止此伤害减一点体力上限并将一张手牌交给一名其他角色。然后若你拥有〖英霸〗则伤害来源获得一个“平定”标记。',

File diff suppressed because it is too large Load Diff

View File

@ -491,6 +491,7 @@ window.noname_character_rank={
're_xunchen',
'sp_cuiyan',
'ol_dongzhao',
'xin_jushou',
],
bp:[
'chess_diaochan',
@ -731,6 +732,8 @@ window.noname_character_rank={
'tw_re_caohong',
'tw_mayunlu',
'tw_hucheer',
'sp_lvfan',
're_chendeng',
],
b:[
'diy_feishi',
@ -939,6 +942,10 @@ window.noname_character_rank={
'sp_jiangqing',
'tw_hejin',
'xuangongzhu',
'sp_huangfusong',
'yj_huangzhong',
're_xiahoushi',
'sp_yangwan',
],
bm:[
'diy_xizhenxihong',
@ -1092,6 +1099,7 @@ window.noname_character_rank={
'xin_sunluban',
'ol_bianfuren',
'sp_ol_zhanghe',
'liucheng',
],
c:[
'xiahoudun',
@ -1454,6 +1462,7 @@ window.noname_character_rank={
'db_wenyang',
'qiaozhou',
'lvlingqi',
'xin_jushou',
'key_kano',
'key_haruko',
'key_akiko',
@ -1816,6 +1825,9 @@ window.noname_character_rank={
'tw_mayunlu',
'tw_re_caohong',
'tw_hucheer',
'sp_yangwan',
're_xiahoushi',
're_chendeng',
],
junk:[
'sunshao',

View File

@ -12,12 +12,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refresh_yijiang1:['re_wuguotai','re_gaoshun','re_caozhi','yujin_yujin','re_masu','xin_xusheng','re_fazheng','xin_lingtong','re_zhangchunhua'],
refresh_yijiang2:['old_madai','re_wangyi','guanzhang','xin_handang','xin_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_bulianshi','xin_liubiao'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','xin_yufan','re_liru','re_manchong','re_fuhuanghou','re_guanping'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan','re_caozhen','re_zhoucang','re_chenqun','re_caifuren','re_guyong'],
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu','re_gongsunyuan','re_guotufengji'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan','re_caozhen','re_zhoucang','re_chenqun','re_caifuren','re_guyong','xin_jushou'],
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu','re_gongsunyuan','re_guotufengji','re_xiahoushi'],
},
},
connect:true,
character:{
re_xiahoushi:['female','shu',3,['reqiaoshi','reyanyu']],
xin_jushou:['male','qun',3,['xinjianying','shibei']],
ol_lusu:['male','wu',3,['olhaoshi','oldimeng']],
re_jiaxu:['male','qun',3,['rewansha','luanwu','reweimu']],
re_guyong:['male','wu',3,['reshenxing','rebingyi']],
@ -139,6 +141,193 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_xushu:['zhaoyun','sp_zhugeliang'],
},
skill:{
//夏侯氏
reqiaoshi:{
audio:2,
trigger:{global:'phaseJieshuBegin'},
filter:function(event,player){
return event.player!=player&&event.player.countCards('h')==player.countCards('h')&&event.player.isAlive();
},
check:function(event,player){
return get.attitude(player,event.player)>=0;
},
//priority:-5,
logTarget:'player',
content:function(){
'step 0'
game.asyncDraw([trigger.player,player]);
'step 1'
game.delayx();
if(player.isIn()&&trigger.player.isIn()){
var getGainSuit=function(player){
var last=player.getHistory('gain',function(evt){
return evt.getParent(2)==event;
});
if(last.length){
var evt=last.pop();
if(evt.cards.length==1&&player.getCards('h').contains(evt.cards[0])) return get.suit(evt.cards[0],player);
}
else return player;
}
if(getGainSuit(player)==getGainSuit(trigger.player)) player.chooseBool('是否继续发动【樵拾】?','和'+get.translation(trigger.player)+'各摸一张牌');
}
else event.finish();
'step 2'
if(result.bool) event.goto(0);
},
ai:{
expose:0.1
}
},
reyanyu:{
audio:2,
enable:'phaseUse',
filter:function(event,player){
return player.countCards('h','sha')>0;
},
filterCard:{name:'sha'},
prepare:function(cards,player){
player.$throw(cards,1000);
game.log(player,'将',cards,'置入了弃牌堆');
},
discard:false,
loseTo:'discardPile',
visible:true,
delay:0.5,
content:function(){
player.draw();
},
ai:{
basic:{
order:1
},
result:{
player:1,
},
},
group:'reyanyu2'
},
reyanyu2:{
trigger:{player:'phaseUseEnd'},
direct:true,
filter:function(event,player){
return player.getHistory('lose',function(evt){
var evt2=evt.getParent();
return evt2.name=='useSkill'&&evt2.skill=='reyanyu'&&evt.getParent(3)==event;
}).length>0;
},
content:function(){
'step 0'
event.num=Math.min(3,player.getHistory('lose',function(evt){
var evt2=evt.getParent();
return evt2.name=='useSkill'&&evt2.skill=='reyanyu'&&evt.getParent(3)==trigger;
}).length);
player.chooseTarget(get.prompt('reyanyu'),'令一名男性角色摸'+get.cnNumber(event.num)+'张牌',function(card,player,target){
return target.hasSex('male')&&target!=player;
}).set('ai',function(target){
return get.attitude(_status.event.player,target);
});
'step 1'
if(result.bool){
player.logSkill('reyanyu',result.targets);
result.targets[0].draw(event.num);
}
}
},
//沮授
xinjianying:{
audio:'jianying',
audioname:['xin_jushou'],
subfrequent:['draw'],
group:['xinjianying_draw'],
enable:'phaseUse',
usable:1,
filter:function(event,player){
if(!player.countCards('he')) return false;
for(var i of lib.inpile){
if(i!='du'&&get.type(i,false)=='basic'){
if(event.filterCard({name:i},player,event)) return true;
if(i=='sha'){
for(var j of lib.inpile_nature){
if(event.filterCard({name:i,nature:j},player,event)) return true;
}
}
}
}
return false;
},
onChooseToUse:function(event){
if(event.type=='phase'&&!game.online){
var last=event.player.getLastUsed();
if(last&&last.getParent('phaseUse')==event.getParent()){
var suit=get.suit(last.card,false);
if(suit!='none') event.set('xinjianying_suit',suit);
}
}
},
chooseButton:{
dialog:function(event,player){
var list=[];
var suit=event.xinjianying_suit||'',str=get.translation(suit);
for(var i of lib.inpile){
if(i!='du'&&get.type(i,false)=='basic'){
if(event.filterCard({name:i},player,event)) list.push(['基本',str,i]);
if(i=='sha'){
for(var j of lib.inpile_nature){
if(event.filterCard({name:i,nature:j},player,event)) list.push(['基本',str,i,j]);
}
}
}
}
return ui.create.dialog('渐营',[list,'vcard']);
},
check:function(button){
if(button.link[2]=='jiu') return 0;
return _status.event.player.getUseValue({name:button.link[2],nature:button.link[3]});
},
backup:function(links,player){
var next={
audio:'jianying',
audioname:['xin_jushou'],
filterCard:true,
popname:true,
position:'he',
viewAs:{
name:links[0][2],
nature:links[0][3],
},
ai1:function(card){
return 7-_status.event.player.getUseValue(card,null,true);
},
precontent:function(){
event.getParent().addCount=false;
var evtx=event.getParent(2);
if(player.hasHistory('useCard',function(evt){
return evt.skill=='xinjianying_backup'&&evt.getParent(2)==evtx;
})){
alert('检测到您安装了十周年UI等具有出牌特效的扩展。该扩展会导致【渐营】出现无视次数限制发动的bug。为避免无限循环即将重启游戏。请卸载相关扩展以解决此问题。');
game.reload();
}
},
};
if(_status.event.xinjianying_suit) next.viewAs.suit=_status.event.xinjianying_suit;
return next;
},
prompt:function(links){
return '将一张牌当做'+(get.translation(links[0][3])||'')+get.translation(links[0][2])+(_status.event.xinjianying_suit?('('+get.translation(_status.event.xinjianying_suit)+')'):'')+'使用';
},
},
ai:{
order:function(item,player){
if(_status.event.xinjianying_suit) return 16;
return 3;
},
result:{player:1},
},
subSkill:{
draw:{inherit:'jianying'},
},
},
//虞翻
xinzongxuan:{
audio:2,
@ -331,7 +520,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var list=game.filterPlayer(function(target){
return target!=player&&target.hasZhuSkill('xinhuangtian',player);
});
var str='将一张【闪】或【闪电】交给'+get.translation(list);
var str='将一张【闪】或黑桃手牌交给'+get.translation(list);
if(list.length>1) str+='中的一人';
return str;
},
@ -5521,15 +5710,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
filter:function(event,player){
if(!player.hasZhuSkill('olruoyu')) return false;
if(player.storage.olruoyu) return false;
return player.isMinHp();
},
content:function(){
'step 0'
player.storage.olruoyu=true;
player.awakenSkill('olruoyu');
player.gainMaxHp();
'step 1'
player.recover();
if(player.hp<3) player.recover(3-player.hp);
game.log(player,'获得了技能','#g【思蜀】','和','#g【激将】');
player.addSkill('sishu');
if(player.hasSkill('olruoyu')){
@ -5544,7 +5732,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{
event.trigger('zhuUpdate');
}
player.awakenSkill('olruoyu');
}
},
olfangquan:{
@ -10172,7 +10359,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
olfangquan:'放权',
olfangquan_info:'出牌阶段开始前,你可以跳过此阶段。若如此做,弃牌阶段开始时,你可以弃置一张手牌,令一名其他角色进行一个额外回合。',
olruoyu:'若愚',
olruoyu_info:'主公技觉醒技准备阶段若你的体力值为全场最少则你加1点体力上限并回复1点体力,然后获得技能〖思蜀〗和〖激将〗。',
olruoyu_info:'主公技觉醒技准备阶段若你的体力值为全场最少则你加1点体力上限将体力回复至3点,然后获得技能〖思蜀〗和〖激将〗。',
sishu:'思蜀',
sishu_info:'出牌阶段开始时,你可以选择一名角色。该角色本局游戏内【乐不思蜀】的判定效果反转。',
olluanji:'乱击',
@ -10647,6 +10834,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinzongxuan_info:'当你的牌因弃置而进入弃牌堆后,你可将其中的任意张牌置于牌堆顶。若剩余的牌中有锦囊牌,则你可以令一名其他角色获得其中的一张。',
xinzhiyan:'直言',
xinzhiyan_info:'结束阶段开始时你可令一名角色摸一张牌正面朝上移动。若此牌为基本牌则你摸一张牌。若此牌为装备牌则其回复1点体力并使用此装备牌。',
xin_jushou:'界沮授',
xinjianying:'渐营',
xinjianying_info:'锁定技。①当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌。②出牌阶段限一次,你可以将一张牌当做任意基本牌使用(不计入次数限制)。若你于此阶段内使用的上一张牌有花色,则此牌的花色视为上一张牌的花色。',
re_xiahoushi:'界夏侯氏',
reqiaoshi:'樵拾',
reqiaoshi_info:'其他角色的结束阶段开始时,若你的手牌数与其相等,则你可以与其各摸一张牌。若这两张牌花色相同,则你可以重复此步骤。',
reyanyu:'燕语',
reyanyu2:'燕语',
reyanyu_info:'①出牌阶段你可以重铸【杀】。②出牌阶段结束时你可以令一名男性角色摸X张牌X为你本阶段内发动过〖燕语①〗的次数且至多为3。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -17,7 +17,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_wanglang:['wanglang'],
sp_tongque:["sp_fuwan","sp_fuhuanghou","sp_jiben"],
sp_zhongdan:["cuiyan","huangfusong"],
sp_guozhan2:["mateng","tianfeng","sp_dongzhuo","jiangfei","liqueguosi","lvfan","cuimao","jiling","zhangren","zongyu"],
sp_guozhan2:["mateng","tianfeng","sp_dongzhuo","liqueguosi","lvfan","cuimao","jiling","zhangren","zongyu"],
//sp_single:["niujin"],
sp_others:["hanba","caiyang"],
},
@ -132,7 +132,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tianfeng:['male','qun',3,['sijian','suishi']],
yuejin:['male','wei',4,['xiaoguo']],
sp_dongzhuo:['male','qun',5,['hengzheng']],
jiangfei:['male','shu',3,['reshengxi','shoucheng']],
//jiangfei:['male','shu',3,['reshengxi','shoucheng']],
//jiangqing:['male','wu',4,['shangyi','zniaoxiang']],
hetaihou:['female','qun',3,['zhendu','qiluan']],
//kongrong:['male','qun',3,['lirang','mingshi']],
@ -405,7 +405,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
zhuangshu_basic:{
//fullskin:true,
fullskin:true,
vanish:true,
derivation:'fengfangnv',
type:'equip',
@ -424,7 +424,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
loseDelay:false,
},
zhuangshu_trick:{
//fullskin:true,
fullskin:true,
vanish:true,
derivation:'fengfangnv',
type:'equip',
@ -443,7 +443,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
loseDelay:false,
},
zhuangshu_equip:{
//fullskin:true,
fullskin:true,
vanish:true,
derivation:'fengfangnv',
type:'equip',
@ -569,15 +569,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
intro:{content:'已声明【$】'},
group:'olxianlve_use',
group:['olxianlve_use','olxianlve_count'],
subSkill:{
count:{
trigger:{global:'useCard1'},
silent:true,
forced:true,
popup:false,
firstDo:true,
filter:function(event,player){
return event.player!=player&&event.card.name==player.storage.olxianlve;
},
content:function(){
if(!trigger.olxianlve_map) trigger.olxianlve_map={};
trigger.olxianlve_map[player.playerid]=true;
},
},
use:{
audio:'olxianlve',
trigger:{global:'useCardAfter'},
forced:true,
locked:false,
usable:1,
filter:function(event,player){
return event.player!=player&&event.card.name==player.storage.olxianlve;
return event.player!=player&&event.olxianlve_map&&event.olxianlve_map[player.playerid]&&event.card.name==player.storage.olxianlve;
},
content:function(){
'step 0'
@ -757,7 +772,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
player.chooseToDiscard('he',get.prompt2('zhuangshu',trigger.player),function(card){
player.chooseToDiscard('he',get.prompt('zhuangshu',trigger.player),'弃置一张牌,并根据此牌的类型,按如下关系将一张宝物牌置入该角色的装备区:{<基本牌,【琼梳】><锦囊牌,【犀梳】><装备牌,【金梳】>}。',function(card){
var type=get.type2(card);
return type=='basic'||type=='trick'||type=='equip';
}).set('ai',function(card){
@ -790,6 +805,32 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
group:'zhuangshu_gameStart',
subSkill:{
gameStart:{
trigger:{global:'phaseBefore'},
direct:true,
filter:function(event,player){
return game.phaseNumber==0;
},
content:function(){
'step 0'
player.chooseButton([get.prompt('zhuangshu'),[['zhuangshu_basic','zhuangshu_trick','zhuangshu_equip'],'vcard']]).set('filterButton',function(button){
return !game.hasPlayer(function(current){
return current.getEquip(button.link[2]);
})
});
'step 1'
if(result.bool){
player.logSkill('zhuangshu');
var name=result.links[0][2],card=game.createCard(name,lib.card[name].suit,12);
player.$gain2(card,false);
game.delayx();
player.equip(card);
}
},
},
},
},
chuiti:{
audio:2,
@ -825,7 +866,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
zhuangshu_basic:{
equipSkill:true,
usable:1,
trigger:{player:'damageBegin2'},
direct:true,
filter:function(event,player){
var equip=player.getEquip('zhuangshu_basic');
return event.num<=player.countCards('he',function(card){
return card!=equip;
})
},
content:function(){
'step 0'
player.chooseToDiscard('he',trigger.num,get.prompt('zhuangshu_basic'),'弃置'+get.cnNumber(trigger.num)+'张牌并防止伤害',function(card,player){
return card!=player.getEquip('zhuangshu_basic');
}).set('ai',function(card){
var player=_status.event.player;
return 4+player.getUseValue(card)-get.value(card,player);
});
'step 1'
if(result.bool) trigger.cancel();
},
/*usable:1,
trigger:{player:'useCard2'},
direct:true,
filter:function(event,player){
@ -863,7 +923,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.logSkill('zhuangshu_basic',targets);
trigger.targets.addArray(targets);
trigger.directHit.addArray(targets);
},
},*/
},
zhuangshu_trick:{
trigger:{player:['phaseJudgeBefore']},
@ -4624,12 +4684,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
'step 2'
target.storage.xiongsuan_restore=result.control;
target.addTempSkill('xiongsuan_restore','phaseZhunbeiBegin');
target.addTempSkill('xiongsuan_restore');
},
subSkill:{
restore:{
trigger:{global:'phaseAfter'},
silent:true,
charlotte:true,
content:function(){
player.restoreSkill(player.storage.xiongsuan_restore);
}
@ -4665,92 +4726,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
diancai:{
audio:2,
trigger:{global:'phaseUseEnd'},
filter:function(event,player){
if(_status.currentPhase==player) return false;
var num=0;
player.getHistory('lose',function(evt){
if(evt.cards2&&evt.getParent('phaseUse')==event) num+=evt.cards2.length;
});
return num>=player.hp;
},
content:function(){
'step 0'
var num=player.maxHp-player.countCards('h');
if(num>0){
player.draw(num);
}
},
},
diaodu:{
audio:2,
group:"diaodu_use",
subfrequent:['use'],
subSkill:{
use:{
trigger:{
player:"useCard",
},
audio:"diaodu",
frequent:true,
prompt:'是否发动【调度】摸一张牌?',
filter:function (event,player){
return get.type(event.card)=='equip'
},
content:function (){
player.draw('nodelay');
},
ai:{
reverseEquip:true,
effect:{
target:function (card,player,target,current){
if(player==target&&get.type(card)=='equip') return [1,3];
},
},
},
},
},
trigger:{
player:"phaseUseBegin",
},
filter:function (event,player){
return game.hasPlayer(function(current){
return current!=player&&current.countGainableCards(player,'e')>0;
});
},
direct:true,
content:function (){
'step 0'
player.chooseTarget(get.prompt2('diaodu'),function(card,player,current){
return current!=player&&current.countGainableCards(player,'e')>0;
}).ai=function(target){
var num=get.attitude(_status.event.player,target);
if(target.isDamaged()&&target.getEquip('baiyin')&&num>0) return 2*num
return -num;
};
'step 1'
if(result.bool){
event.target1=result.targets[0];
player.logSkill('diaodu',event.target1);
player.line(event.target1,'diaodu');
player.gainPlayerCard(event.target1,'e',true);
}
else event.finish();
'step 2'
if(result.bool){
event.card=result.cards[0];
player.chooseTarget('是否将'+get.translation(event.card)+'交给一名其他角色?',function(card,player,current){
return current!=player&&current!=event.target1;
});
}
else event.finish();
'step 3'
if(result.bool){
var target=result.targets[0];
player.line(target,'green');
target.gain(card,player,'give');
}
},
},
zhengbi:{
audio:2,
@ -16629,12 +16607,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oldingcuo_info:'每回合限一次。当你受到或造成伤害后,你可摸两张牌。若这两张牌颜色不同,则你弃置一张手牌。',
fengfangnv:'冯方女',
zhuangshu:'妆梳',
zhuangshu_info:'一名角色的回合开始时,若其宝物区为空,则你可以弃置一张牌,并根据此牌的类型,按如下关系将一张宝物牌置入该角色的装备区:{<基本牌,【琼梳】><锦囊牌,【犀梳】><装备牌,【金梳】>}。',
zhuangshu_info:'①游戏开始时,你可将{【琼梳】,【犀梳】,【金梳】}中的一张牌置于装备区。②一名角色的回合开始时,若其宝物区为空,则你可以弃置一张牌,并根据此牌的类型,按如下关系将一张宝物牌置入该角色的装备区:{<基本牌,【琼梳】><锦囊牌,【犀梳】><装备牌,【金梳】>}。',
chuiti:'垂涕',
chuiti_info:'每回合限一次。当你或拥有〖妆梳〗牌角色的牌因弃置而进入弃牌堆后,你可使用其中的一张牌。',
zhuangshu_basic:'琼梳',
zhuangshu_basic_bg:'琼',
zhuangshu_basic_info:'每回合限一次。当你使用【杀】或普通锦囊牌选择唯一目标后,你可为此牌增加一名体力值/手牌数相同的额外目标(无距离限制),且该目标不可响应此牌。当此牌不因交换装备或移动至其他装备区而离开你的装备区后,销毁之。',
zhuangshu_basic_info:'当你受到伤害时你可以弃置X张牌并防止此伤害X为伤害值。当此牌不因交换装备或移动至其他装备区而离开你的装备区后,销毁之。',
zhuangshu_trick:'犀梳',
zhuangshu_trick_bg:'犀',
zhuangshu_trick_info:'判定阶段开始前,你可选择:①跳过此阶段。②跳过本回合的弃牌阶段。当此牌不因交换装备或移动至其他装备区而离开你的装备区后,销毁之。',
@ -16643,7 +16621,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhuangshu_equip_info:'锁定技。出牌阶段结束时,你将手牌摸至手牌上限(至多摸五张)。当此牌不因交换装备或移动至其他装备区而离开你的装备区后,销毁之。',
ol_dongzhao:'董昭',
olxianlve:'先略',
olxianlve_info:'①主公的回合开始时,你可声明并记录一个锦囊牌的名称并移除先前的记录。②其他角色使用〖先略〗记录过的锦囊牌后,你可摸两张牌并可以分配给任意其他角色,然后你可声明并记录一个锦囊牌的名称并移除先前的记录。',
olxianlve_info:'①主公的回合开始时,你可声明并记录一个锦囊牌的名称并移除先前的记录。②每回合限一次,其他角色使用〖先略〗记录过的锦囊牌后,你可摸两张牌并可以分配给任意其他角色,然后你可声明并记录一个锦囊牌的名称并移除先前的记录。',
olzaowang:'造王',
olzaowang2:'造王',
olzaowang_info:'限定技。出牌阶段你可以令一名角色加1点体力上限回复1点体力并摸三张牌且获得如下效果主公死亡时若其身份为忠臣则其和主公交换身份牌其死亡时若其身份为反贼且伤害来源的身份为主公或忠臣则以主忠胜利结束本局游戏。',

View File

@ -4,6 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
re_chendeng:['male','qun',3,['refuyuan','reyingshui','rewangzu']],
caojinyu:['female','wei',3,['yuqi','shanshen','xianjing']],
hanmeng:['male','qun',4,['jieliang','quanjiu']],
xinping:['male','qun',3,['fuyuan','zhongjie','yongdi']],
@ -123,6 +124,98 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
skill:{
//陈登
refuyuan:{
audio:2,
trigger:{global:'useCardToTargeted'},
logTarget:'target',
filter:function(event,player){
return event.card.name=='sha'&&event.target.isIn()&&!game.hasPlayer2(function(current){
return current.hasHistory('useCard',function(evt){
return evt.card!=event.card&&get.color(evt.card,false)=='red'&&evt.targets&&evt.targets.contains(event.target);
});
});
},
check:function(event,player){
return get.attitude(player,event.target)>0;
},
content:function(){
trigger.target.draw();
},
},
reyingshui:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.countCards('he')>0&&game.hasPlayer((current)=>player.inRange(current));
},
position:'he',
filterCard:true,
filterTarget:function(card,player,target){
return player.inRange(target);
},
discard:false,
lose:false,
delay:false,
check:function(card){
if(get.type(card)=='equip') return 3-get.value(card);
return 6.5-get.value(card);
},
content:function(){
'step 0'
target.gain(cards,player,'giveAuto');
'step 1'
var next=target.chooseCard('he',2,'交给'+get.translation(player)+'两张装备牌否则受到1点伤害',{type:'equip'});
if(get.damageEffect(target,player,target)>=0) next.set('ai',()=>-1);
else next.set('ai',(card)=>6-get.value(card));
'step 2'
if(result.bool) player.gain(result.cards,target,'giveAuto');
else target.damage('nocard');
},
ai:{
order:5,
tag:{
damage:0.5,
},
result:{
target:-1.5,
},
},
},
rewangzu:{
audio:2,
trigger:{player:'damageBegin1'},
direct:true,
filter:function(event,player){
return player.hasCard((card)=>lib.filter.cardDiscardable(card,player,'rewangzu'),'he');
},
usable:1,
content:function(){
'step 0'
var num=player.getFriends().length;
if(!game.hasPlayer(function(current){
return current!=player&&current.getFriends().length>num;
})){
player.chooseToDiscard('he',get.prompt('rewangzu'),'弃置一张牌并令伤害-1').set('ai',function(card){
return 7-get.value(card);
}).logSkill='rewangzu';
}
else{
player.chooseBool(get.prompt('rewangzu'),'随机弃置一张牌并令伤害-1');
}
'step 1'
if(result.bool){
trigger.num--;
if(!result.cards||!result.cards.length){
player.logSkill('rewangzu');
var cards=player.getCards('he',(card)=>lib.filter.cardDiscardable(card,player,'rewangzu'));
if(cards.length) player.discard(cards.randomGet());
}
}
else player.storage.counttrigger.rewangzu--;
},
},
//曹金玉
yuqi:{
audio:2,
@ -2754,7 +2847,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{source:'damageSource'},
logTarget:'player',
filter:function(event,player){
return event.player.countCards('h')>0&&player.isPhaseUsing();
return event.player.isDamaged()&&event.player.countCards('h')>0&&player.isPhaseUsing();
},
check:function(event,player){
if(player.hp==1&&player.isHealthy()) return false;
@ -2762,19 +2855,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
player.choosePlayerCard(trigger.player,'h',true);
player.choosePlayerCard(trigger.player,'h',true,trigger.player.getDamagedHp());
'step 1'
var card=result.cards[0];
event.card=card;
var card=result.cards;
event.cards=card;
player.showCards(card,get.translation(player)+'发动了【宼略】');
'step 2'
var target=trigger.player,type=get.type2(card,target);
if((type=='basic'||type=='trick')&&get.tag(card,'damage')>0) player.gain(card,target,'give');
'step 3'
if(get.color(card,trigger.player)=='red'){
player[player.isDamaged()?'loseMaxHp':'loseHp']();
player.draw(2);
var gains=[],red=false;
var target=trigger.player;
for(var card of cards){
var type=get.type2(card,target);
if((type=='basic'||type=='trick')&&get.tag(card,'damage')>0) gains.push(card);
if(!red&&get.color(card,target)=='red') red=true;
}
if(gains.length) player.gain(gains,'gain2');
if(!red) event.finish();
'step 3'
player[player.isDamaged()?'loseMaxHp':'loseHp']();
player.draw(2);
},
},
qljsuiren:{
@ -3106,16 +3204,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.hp>0&&player.countCards('h')>0;
return player.maxHp>0&&player.countCards('h')>0;
},
filterCard:true,
position:'h',
filterTarget:lib.filter.notMe,
selectTarget:function(){
return [1,_status.event.player.hp];
return [1,_status.event.player.maxHp];
},
check:function(card){
return 2*(_status.event.player.hp+2)-get.value(card);
return 2*(_status.event.player.maxHp+2)-get.value(card);
},
content:function(){
'step 0'
@ -3488,9 +3586,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else event.finish();
'step 2'
if(result.bool&&result.cards&&result.cards.length){
target.$give(result.cards[0],player);
var card=result.cards[0];
target.$give(card,player);
game.delayx();
player.addJudge(result.cards[0]);
var name=card.viewAs||card.name;
if(card.name!=name){
player.addJudge(name,card);
}
else{
player.addJudge(card);
}
}
},
},
@ -11154,21 +11259,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.line(target,'green');
game.log(target,'成为了','【点虎】','的目标');
target.storage.xinfu_dianhu2=player;
target.addSkill('xinfu_dianhu2');
target.addTempSkill('xinfu_dianhu2',{player:'die'});
}
},
},
"xinfu_dianhu2":{
xinfu_dianhu2:{
mark:"character",
intro:{
content:"当你受到来自$的伤害或回复体力后,$摸一张牌",
},
nopop:true,
trigger:{
player:["damageAfter","recoverAfter"],
player:["damageEnd","recoverEnd"],
},
forced:true,
popup:false,
charlotte:true,
filter:function(event,player){
if(player.storage.xinfu_dianhu2&&player.storage.xinfu_dianhu2.isIn()){
if(event.name=='damage') return event.source==player.storage.xinfu_dianhu2;
@ -11556,7 +11662,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fanchou:['fanchou','ns_fanchou'],
zhangji:['zhangji','ns_zhangji'],
zhangchangpu:['zhangchangpu','sp_zhangchangpu','ol_zhangchangpu'],
huangfusong:['huangfusong','old_huangfusong'],
huangfusong:['huangfusong','sp_huangfusong','old_huangfusong'],
wenyang:['wenyang','db_wenyang','diy_wenyang'],
dingyuan:['ol_dingyuan','dingyuan'],
quyi:['quyi','re_quyi'],
@ -11573,6 +11679,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
panshu:['panshu','re_panshu'],
nanhualaoxian:['re_nanhualaoxian','nanhualaoxian'],
kanze:['re_kanze','kanze'],
yangwan:['yangwan','sp_yangwan'],
chendeng:['re_chendeng','chendeng'],
},
translate:{
lijue:"李傕",
@ -12033,7 +12141,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhuihuan_info:'结束阶段开始时你可以选择一名角色对其他角色不可见。记录所有对该角色造成过伤害的角色。该角色的下个准备阶段开始时停止记录且所有记录过的角色若体力值大于该角色则受到其造成的2点伤害若体力值小于等于该角色则随机弃置两张手牌。',
re_dongcheng:'董承',
xuezhao:'血诏',
xuezhao_info:'出牌阶段限一次你可弃置一张手牌并选择至多X名其他角色(X为你的体力)。这些角色依次选择是否交给你一张牌,若选择是,该角色摸一张牌且你本回合可多使用一张【杀】;若选择否,该角色本回合无法响应你使用的牌。',
xuezhao_info:'出牌阶段限一次你可弃置一张手牌并选择至多X名其他角色(X为你的体力上限)。这些角色依次选择是否交给你一张牌,若选择是,该角色摸一张牌且你本回合可多使用一张【杀】;若选择否,该角色本回合无法响应你使用的牌。',
re_hucheer:'胡车儿',
redaoji:'盗戟',
redaoji2:'盗戟',
@ -12047,7 +12155,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qingtan_info:'出牌阶段限一次,你可令所有有手牌的角色同时选择一张手牌并同时展示。你可以获得其中一种花色的牌,然后展示此花色牌的角色各摸一张牌。若如此做,弃置其他的牌。',
qiuliju:'丘力居',
koulve:'寇略',
koulve_info:'当你于出牌阶段内对其他角色造成伤害后,你可以展示其一张手牌。若此牌:为带有伤害标签的基本牌或锦囊牌,则你获得之;为红色牌,你失去1点体力若已受伤则改为减1点体力上限然后摸两张牌。',
koulve_info:'当你于出牌阶段内对其他角色造成伤害后,你可以展示其X张手牌X为其已损失的早。若这些牌中有带有伤害标签的基本牌或锦囊牌则你获得之有红色牌你失去1点体力若已受伤则改为减1点体力上限然后摸两张牌。',
qljsuiren:'随认',
qljsuiren_info:'当你死亡时,你可以将手牌中所有的带有伤害标签的基本牌或锦囊牌交给一名其他角色。',
re_dongbai:'董白',
@ -12183,6 +12291,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shanshen_info:'当有角色死亡时,你可令你的〖隅泣〗中的一个具有颜色的数字+2。然后若你未对该角色造成过伤害则你回复1点体力。',
xianjing:'娴静',
xianjing_info:'准备阶段,你可令你的〖隅泣〗中的一个具有颜色的数字+1。若你的体力值等于体力上限则你可以重复一次此流程。',
re_chendeng:'陈登',
refuyuan:'扶援',
refuyuan_info:'一名角色成为【杀】的目标后,若其本回合内没有成为过其他红色牌的目标,则你可以令其摸一张牌。',
reyingshui:'营说',
reyingshui_info:'出牌阶段限一次你可将一张牌交给攻击范围内的一名其他角色然后其选择一项①交给你至少两张装备牌。②受到1点伤害。',
rewangzu:'望族',
rewangzu_info:'每回合限一次。当你受到其他角色造成的伤害时,你可随机弃置一张牌,令此伤害-1。若你所在阵营的存活角色数是全场最多的则你可以自行选择弃置的牌。',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",

View File

@ -196,7 +196,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
case 'equip2':
target.draw();
break;
case 'equip3':
case 'equip3': case 'equip4': case 'equip6':
target.recover();
break;
}
@ -384,7 +384,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var target=targets[0],evt=event.getParent();
evt._target=target;
var list=game.filterPlayer(function(current){
return current!=player&&current!=target&&current.hp<=target.hp;
return current!=player&&current!=target&&current.hp<=player.hp;
});
if(!list.length){
player.loseHp();
@ -400,7 +400,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.chooseCard('he','是否交给'+get.translation(player)+'一张牌?').set('ai',function(card){
if(_status.event.goon) return 7-get.value(card);
return 0;
}).set('goon',get.attitude(target,player)>0||Math.random()<num/(1+targets.length));
}).set('goon',get.attitude(target,player)>0);
'step 1'
if(result.bool){
player.gain(result.cards,target,'giveAuto');
@ -424,11 +424,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var target=event.getParent()._target;
event.target=target;
event.num=num;
var bool1=target.canUse('sha',player,false),bool2=target.canUse('juedou',player,false);
if(bool1&&bool2) target.chooseControl('sha','juedou').set('prompt','谋诛:视为'+get.translation(player)+'使用一张…').set('prompt2','(伤害值基数:'+num+'').set('ai',function(){
var player=_status.event.player,target=_status.event.getParent().player;
if(!target.hasShan()&&get.effect(target,{name:'sha'},player,player)>0) return 'sha';
if(get.effect(target,{name:'juedou'},player,player)>0) return 'juedou';
var bool1=player.canUse('sha',target,false),bool2=player.canUse('juedou',target,false);
if(bool1&&bool2) target.chooseControl('sha','juedou').set('prompt','谋诛:视为'+get.translation(player)+'使用一张…').set('prompt2','(伤害值基数:'+num+'').set('ai',function(){
var target=_status.event.player,player=_status.event.getParent().player;
if(target.hasShan()||get.effect(target,{name:'sha'},player,target)>0) return 'sha';
if(get.effect(target,{name:'juedou'},player,target)>0) return 'juedou';
return 'sha';
});
else if(bool1) event._result={control:'sha'};
@ -436,10 +436,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else event.finish();
}
'step 1'
if(result.control&&lib.card[result.control]) target.useCard({
if(result.control&&lib.card[result.control]) player.useCard({
name:result.control,
isCard:true,
},false,player).baseDamage=num;
},false,target).baseDamage=num;
},
},
twyanhuo:{
@ -2148,7 +2148,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
twdaoji_info:'出牌阶段限一次你可以弃置一张非基本牌并选择一名攻击范围内的角色获得其一张牌。若你以此法获得的牌为基本牌你摸一张牌装备牌你使用此牌并对其造成1点伤害。',
tw_hejin:'TW何进',
twmouzhu:'谋诛',
twmouzhu_info:'出牌阶段限一次你可以选择一名其他角色A。你令除A外所有体力值小于等于A的其他角色依次选择是否交给你一张牌。若你以此法获得的牌数X等于0你和所有进行选择的角色依次失去1点体力。大于0你令A选择视为对你使用一张伤害值基数为X的【杀】或【决斗】。',
twmouzhu_info:'出牌阶段限一次你可以选择一名其他角色A。你令除A外所有体力值小于等于的其他角色依次选择是否交给你一张牌。若你以此法获得的牌数X等于0你和所有进行选择的角色依次失去1点体力。大于0你令A选择由你视为对其使用一张伤害值基数为X的【杀】或【决斗】。',
twyanhuo:'延祸',
twyanhuo_info:'当你死亡时你可以选择一项①令一名其他角色弃置X张牌。②令X名其他角色依次弃置一张牌。X为你的牌数',
tw_mayunlu:'TW马云禄',

View File

@ -196,6 +196,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skill:{
//孙体
xinzhaofu:{
mark:false,
init:function(player){
if(player.hasZhuSkill('xinzhaofu')){
player.markSkill('xinzhaofu');
player.storage.xinzhaofu=false;
}
},
audio:'zhaofu',
enable:'phaseUse',
usable:1,
@ -12203,7 +12210,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sunluban:['re_sunluban','xin_sunluban','sunluban'],
zhuhuan:['zhuhuan','old_zhuhuan'],
caoxiu:['re_caoxiu','caoxiu','old_caoxiu'],
//xiahoushi:['xiahoushi','sp_xiahoushi'],
xiahoushi:['re_xiahoushi','xiahoushi'],
zhangyi:['re_zhangyi','zhangyi'],
quancong:['re_quancong','quancong','old_quancong'],
sunxiu:['re_sunxiu','sunxiu'],
@ -12218,6 +12225,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guanping:['re_guanping','guanping'],
caifuren:['xin_caifuren','re_caifuren','caifuren'],
guyong:['re_guyong','xin_guyong','guyong'],
yj_jushou:['xin_jushou','yj_jushou'],
},
translate:{
old_huaxiong:'华雄',
@ -12574,7 +12582,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shibei:'矢北',
shibei_info:'锁定技当你受到伤害后若此伤害是你本回合第一次受到的伤害则你回复1点体力否则你失去1点体力。',
jianying:'渐营',
jianying_info:'当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌',
jianying_info:'当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌',
xinenyuan:'恩怨',
xinenyuan2:'恩怨',
xinenyuan_info:'当你获得一名其他角色两张或更多的牌后你可以令其摸一张牌当你受到1点伤害后你可以令伤害来源选择一项1、将一张手牌交给你2、失去1点体力。',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.112.1',
'v1.9.112.2',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -4279,6 +4279,9 @@ window.noname_asset_list=[
'image/card/yitianjian.png',
'image/card/yonglv.png',
'image/card/zhanxiang.png',
'image/card/zhuangshu_basic.png',
'image/card/zhuangshu_trick.png',
'image/card/zhuangshu_equip.png',
'image/character/shenpei.jpg',
'image/character/re_menghuo.jpg',
@ -4787,6 +4790,14 @@ window.noname_asset_list=[
'image/character/xin_yufan.jpg',
'image/character/xinchang.jpg',
'image/character/xuangongzhu.jpg',
'image/character/liucheng.jpg',
'image/character/re_chendeng.jpg',
'image/character/re_xiahoushi.jpg',
'image/character/sp_huangfusong.jpg',
'image/character/sp_lvfan.jpg',
'image/character/sp_yangwan.jpg',
'image/character/xin_jushou.jpg',
'image/character/yj_huangzhong.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -56,6 +56,7 @@
characterReplace:{},
dynamicTranslate:{},
cardPack:{},
skin:{},
onresize:[],
onphase:[],
onwash:[],
@ -10363,6 +10364,13 @@
group_qun_bg:"群",
group_key_bg:"键",
group_jin_bg:"晋",
zhengsu:'整肃',
zhengsu_leijin:'擂进',
zhengsu_bianzhen:'变阵',
zhengsu_mingzhi:'鸣止',
zhengsu_leijin_info:'回合内所有于出牌阶段使用的牌点数递增且不少于三张。',
zhengsu_bianzhen_info:'回合内所有于出牌阶段使用的牌花色相同且不少于两张。',
zhengsu_mingzhi_info:'回合内所有于弃牌阶段弃置的牌花色均不相同且不少于两张。',
},
element:{
content:{
@ -12244,7 +12252,10 @@
if(!event.cancelled&&!event.nojudge) player.judge(event.card).set('type','phase');
"step 3"
var name=event.card.viewAs||event.card.name;
if(event.cancelled&&!event.direct){
if(event.excluded){
delete event.excluded;
}
else if(event.cancelled&&!event.direct){
if(lib.card[name].cancel){
var next=game.createEvent(name+'Cancel');
next.setContent(lib.card[name].cancel);
@ -14842,21 +14853,21 @@
else{
player.stat[player.stat.length-1].card[card.name]++;
}
if(event.skill){
if(player.stat[player.stat.length-1].skill[event.skill]==undefined){
player.stat[player.stat.length-1].skill[event.skill]=1;
}
if(event.skill){
if(player.stat[player.stat.length-1].skill[event.skill]==undefined){
player.stat[player.stat.length-1].skill[event.skill]=1;
}
else{
player.stat[player.stat.length-1].skill[event.skill]++;
}
var sourceSkill=get.info(event.skill).sourceSkill;
if(sourceSkill){
if(player.stat[player.stat.length-1].skill[sourceSkill]==undefined){
player.stat[player.stat.length-1].skill[sourceSkill]=1;
}
else{
player.stat[player.stat.length-1].skill[event.skill]++;
}
var sourceSkill=get.info(event.skill).sourceSkill;
if(sourceSkill){
if(player.stat[player.stat.length-1].skill[sourceSkill]==undefined){
player.stat[player.stat.length-1].skill[sourceSkill]=1;
}
else{
player.stat[player.stat.length-1].skill[sourceSkill]++;
}
player.stat[player.stat.length-1].skill[sourceSkill]++;
}
}
}
@ -18236,7 +18247,7 @@
}
if(i=='ghujia'||((!this.marks[i].querySelector('.image')||this.storage[i+'_markcount'])&&
lib.skill[i]&&lib.skill[i].intro&&!lib.skill[i].intro.nocount&&
(this.storage[i]||lib.skill[i].intro.markcount))){
(this.storage[i]||this.storage[i+'_markcount']||lib.skill[i].intro.markcount))){
this.marks[i].classList.add('overflowmark')
var num=0;
if(typeof lib.skill[i].intro.markcount=='function'){
@ -18834,7 +18845,7 @@
},this,time);
return this;
},
setIdentity:function(identity){
setIdentity:function(identity,nature){
if(!identity) identity=this.identity;
if(get.is.jun(this)){
this.node.identity.firstChild.innerHTML='君';
@ -18842,7 +18853,7 @@
else{
this.node.identity.firstChild.innerHTML=get.translation(identity);
}
this.node.identity.dataset.color=identity;
this.node.identity.dataset.color=nature||identity;
return this;
},
insertPhase:function(skill,insert){
@ -25992,6 +26003,9 @@
type:"equip",
subtype:"equip5",
},
zhengsu_leijin:{},
zhengsu_mingzhi:{},
zhengsu_bianzhen:{},
disable_judge:{},
group_wei:{fullskin:true},
group_shu:{fullskin:true},
@ -26534,6 +26548,180 @@
}
},
skill:{
zhengsu:{
trigger:{player:'phaseDiscardEnd'},
forced:true,
charlotte:true,
filter:function(event,player){
return (player.storage.zhengsu_leijin||player.storage.zhengsu_bianzhen||player.storage.zhengsu_mingzhi);
},
content:function(){
player.chooseDrawRecover(2,'整肃奖励摸两张牌或回复1点体力');
},
subSkill:{
leijin:{
mark:true,
trigger:{player:'useCard1'},
lastDo:true,
charlotte:true,
forced:true,
popup:false,
onremove:true,
filter:function(event,player){
return player.isPhaseUsing()&&player.storage.zhengsu_leijin!==false;
},
content:function(){
var list=player.getHistory('useCard',function(evt){
return evt.isPhaseUsing(player);
});
var goon=true;
for(var i=0;i<list.length;i++){
var num=get.number(list[i].card);
if(typeof num!='number'){
goon=false;
break;
}
if(i>0){
var num2=get.number(list[i-1].card);
if(typeof num2!='number'||num2>=num){
goon=false;
break;
}
}
}
if(!goon){
game.broadcastAll(function(player){
player.storage.zhengsu_leijin=false;
if(player.marks.zhengsu_leijin) player.marks.zhengsu_leijin.firstChild.innerHTML='';
delete player.storage.zhengsu_leijin_markcount;
},player);
}
else{
if(list.length>2){
game.broadcastAll(function(player,num){
if(player.marks.zhengsu_leijin) player.marks.zhengsu_leijin.firstChild.innerHTML='○';
player.storage.zhengsu_leijin=true;
player.storage.zhengsu_leijin_markcount=num;
},player,num);
}
else game.broadcastAll(function(player,num){
player.storage.zhengsu_leijin_markcount=num;
},player,num);
}
player.markSkill('zhengsu_leijin');
},
intro:{
content:'<li>条件:回合内所有于出牌阶段使用的牌点数递增且不少于三张。',
},
},
bianzhen:{
mark:true,
trigger:{player:'useCard1'},
firstDo:true,
charlotte:true,
forced:true,
popup:false,
onremove:true,
filter:function(event,player){
return player.isPhaseUsing()&&player.storage.zhengsu_bianzhen!==false;
},
content:function(){
var list=player.getHistory('useCard',function(evt){
return evt.isPhaseUsing();
});
var goon=true,suit=get.suit(list[0].card,false);
if(suit=='none'){
goon=false;
}
else{
for(var i=1;i<list.length;i++){
if(get.suit(list[i])!=suit){
goon=false;
break;
}
}
}
if(!goon){
game.broadcastAll(function(player){
player.storage.zhengsu_bianzhen=false;
if(player.marks.zhengsu_bianzhen) player.marks.zhengsu_bianzhen.firstChild.innerHTML='';
},player);
}
else{
if(list.length>1){
game.broadcastAll(function(player){
if(player.marks.zhengsu_bianzhen) player.marks.zhengsu_bianzhen.firstChild.innerHTML='○';
player.storage.zhengsu_bianzhen=true;
},player);
}
else game.broadcastAll(function(player,suit){
if(player.marks.zhengsu_bianzhen) player.marks.zhengsu_bianzhen.firstChild.innerHTML=get.translation(suit);
},player,suit);
}
player.markSkill('zhengsu_bianzhen');
},
intro:{
content:'<li>条件:回合内所有于出牌阶段使用的牌花色相同且不少于两张。',
},
},
mingzhi:{
mark:true,
trigger:{player:'loseAfter'},
firstDo:true,
charlotte:true,
forced:true,
popup:false,
onremove:true,
filter:function(event,player){
if(player.storage.zhengsu_mingzhi===false||event.type!='discard') return false;
var evt=event.getParent('phaseDiscard');
return evt&&evt.player==player;
},
content:function(){
var goon=true,list=[];
player.getHistory('lose',function(event){
if(!goon||event.type!='discard') return false;
var evt=event.getParent('phaseDiscard');
if(evt&&evt.player==player){
for(var i of event.cards2){
var suit=get.suit(i,player);
if(list.contains(suit)){
goon=false;
break;
}
else list.push(suit);
}
}
});
if(!goon){
game.broadcastAll(function(player){
player.storage.zhengsu_mingzhi=false;
if(player.marks.zhengsu_mingzhi) player.marks.zhengsu_mingzhi.firstChild.innerHTML='';
delete player.storage.zhengsu_mingzhi_list;
},player);
}
else{
if(list.length>1){
game.broadcastAll(function(player,list){
if(player.marks.zhengsu_mingzhi) player.marks.zhengsu_mingzhi.firstChild.innerHTML='○';
player.storage.zhengsu_mingzhi=true;
player.storage.zhengsu_mingzhi_list=list;
player.storage.zhengsu_mingzhi_markcount=list.length;
},player,list);
}
else game.broadcastAll(function(player,list){
player.storage.zhengsu_mingzhi_list=list;
player.storage.zhengsu_mingzhi_markcount=list.length;
},player,list);
}
player.markSkill('zhengsu_mingzhi');
},
intro:{
content:'<li>条件:回合内所有于弃牌阶段弃置的牌花色均不相同且不少于两张。',
},
},
},
},
renku:{
intro:{
markcount:function(){
@ -48311,8 +48499,8 @@
if(typeof get.info(event.skill).viewAs=='function') event.result.card=get.info(event.skill).viewAs(event.result.cards,event.player);
else event.result.card=get.copy(get.info(event.skill).viewAs);
if(event.result.cards.length==1&&event.result.card){
event.result.card.suit=get.suit(event.result.cards[0]);
event.result.card.number=get.number(event.result.cards[0]);
if(!event.result.card.suit) event.result.card.suit=get.suit(event.result.cards[0]);
if(!event.result.card.number) event.result.card.number=get.number(event.result.cards[0]);
}
if(event.skillDialog&&get.objtype(event.skillDialog)=='div'){
event.skillDialog.close();

View File

@ -1,8 +1,9 @@
window.noname_update={
version:'1.9.112.1',
update:'1.9.112.0.1',
version:'1.9.112.2',
update:'1.9.112.1',
changeLog:[
'新武将',
'界夏侯氏、陈登',
'界沮授、吕范、皇甫嵩、星黄忠、手杀杨婉、刘赪',
'bug修复',
],
files:[
@ -17,7 +18,7 @@ window.noname_update={
//'card/swd.js',
//'card/yunchou.js',
//'card/yingbian.js',
//'card/yongjian.js',
'card/yongjian.js',
//'card/zhenfa.js',
//'card/zhulu.js',
//'character/diy.js',
@ -33,15 +34,15 @@ window.noname_update={
//'character/ow.js',
'character/rank.js',
'character/refresh.js',
'character/shenhua.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/yingbian.js',
//'character/yingbian.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
@ -51,7 +52,7 @@ window.noname_update={
//'layout/nova/layout.css',
//'layout/mobile/equip.css',
'mode/boss.js',
//'mode/brawl.js',
'mode/brawl.js',
//'mode/chess.js',
//'mode/connect.js',
//'mode/doudizhu.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

View File

@ -9628,7 +9628,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
boss_chujiangwang:'楚江王·厉温',
boss_bingfeng:'冰封',
boss_bingfeng_info:'锁定技,你死亡时,若杀死你的角色武将牌是正面朝上, 你令其翻面。',
boss_songdiwang:'余懃',
boss_songdiwang:'宋帝王·余懃',
boss_heisheng:'黑绳',
boss_heisheng_info:'锁定技,你死亡时,横置所有场上角色。',
boss_shengfu:'绳缚',

View File

@ -3704,6 +3704,30 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
},
{
name:'雒城之战',
place:[true,false,false,true],
character:['liubei','re_wuyi','zhangren','pangtong'],
lib:{
character:{
liubei:['male','shu',4,['rezhijian','jijiu','reyingzi'],[]],
re_wuyi:['male','qun',4,['weijing','rerende'],[]],
zhangren:['male','qun',4,['shefu','gnsheque'],[]],
pangtong:['male','shu',3,['dujin'],[]],
},
translate:{
liubei:'雒城刘备',
re_wuyi:'雒城吴懿',
zhangren:'雒城张任',
pangtong:'雒城庞统',
rezhijian:'厚恩',
zhijian:'厚恩',
jijiu:'驰援',
reyingzi:'征令',
rerende:'遣军',
},
},
},
];
if(_status.keyVerified) list=[
{

View File

@ -486,7 +486,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(player==game.zhu){
player.addSkill(game.zhuSkill);
}
else player.addSkill(['binglin_shaxue','binglin_neihong']);
else player.addSkill('binglin_neihong');
}
game.zhu.hp++;
game.zhu.maxHp++;
@ -1809,10 +1809,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
zhuSkill_xiangyang:'襄阳',
zhuSkill_xiangyang_info:'回合结束时,你可获得一个额外的出牌阶段或摸牌阶段。',
zhuSkill_jiangling:'江陵',
zhuSkill_jiangling_info:'当你使用【杀】或普通锦囊牌选择唯一目标时,你可为此牌增加一个目标(该目标不可响应此牌)。',
zhuSkill_jiangling0:'江陵',
zhuSkill_jiangling1:'江陵',
zhuSkill_jiangling_info:'出牌阶段开始时,你可选择一项:①本阶段内使用【杀】或普通锦囊牌选择唯一目标时可增加一个目标。②本阶段内使用【杀】或普通锦囊牌无次数限制。',
zhuSkill_fancheng:'樊城',
zhuSkill_fancheng2:'樊城',
zhuSkill_fancheng_info:'限定技出牌阶段你可摸X张牌获得如下效果直到回合结束每回合限X次当你造成伤害时此伤害+1X为游戏轮数。',
zhuSkill_fancheng0:'樊城',
zhuSkill_fancheng1:'樊城',
zhuSkill_fancheng_info:'限定技,出牌阶段,你可选择获得一项效果直到游戏结束:①因执行【杀】的效果而对其他角色造成的伤害+1。②对其他角色造成的渠道不为【杀】的伤害+1。',
binglin_shaxue:'歃血',
binglin_shaxue_info:'锁定技,每局游戏限三次,当你受到队友造成的伤害时,你防止此伤害。',
binglin_neihong:'内讧',
@ -1952,6 +1955,21 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
zhuSkill_jiangling:{
trigger:{player:'phaseUseBegin'},
direct:true,
charlotte:true,
content:function(){
'step 0'
player.chooseControl('加目标','多刀','取消').set('prompt',get.prompt2('zhuSkill_jiangling')).set('ai',()=>(3-game.countPlayer()));
'step 1'
if(result.index<2){
player.logSkill('zhuSkill_jiangling');
player.addTempSkill('zhuSkill_jiangling'+result.index,'phaseUseAfter');
game.log(player,'选择了','#y'+result.control,'的效果');
}
},
},
zhuSkill_jiangling0:{
trigger:{player:'useCard2'},
direct:true,
charlotte:true,
@ -1994,12 +2012,20 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player.logSkill('zhuSkill_jiangling',event.targets);
if(trigger.targets.contains(event.targets[0])) trigger.targets.removeArray(event.targets);
else{
trigger.directHit.addArray(event.targets);
//trigger.directHit.addArray(event.targets);
trigger.targets.addArray(event.targets);
}
}
},
},
zhuSkill_jiangling1:{
charlotte:true,
mod:{
cardUsable:function(card,player){
if(card.name=='sha'||get.type(card)=='trick') return Infinity;
},
},
},
zhuSkill_fancheng:{
enable:'phaseUse',
limited:true,
@ -2007,24 +2033,47 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
skillAnimation:true,
animationColor:'gray',
content:function(){
player.draw(game.roundNumber);
'step 0'
player.awakenSkill('zhuSkill_fancheng');
player.addTempSkill('zhuSkill_fancheng2');
player.chooseControl('杀','其他').set('prompt','选择要强化的伤害').set('ai',()=>get.rand(0,1));
'step 1'
player.addSkill('zhuSkill_fancheng'+result.index);
game.log(player,'本局游戏内',result.index?'#g杀以外':'#y杀','的伤害+1');
},
ai:{
order:100,
result:{player:100},
},
},
zhuSkill_fancheng2:{
zhuSkill_fancheng0:{
trigger:{source:'damageBegin2'},
forced:true,
charlotte:true,
onremove:true,
filter:function(event,player){
return player.countMark('zhuSkill_fancheng2')<game.roundNumber;
return event.player!=player&&event.card&&event.card.name=='sha'&&event.getParent().name=='sha';
},
logTarget:'player',
content:function(){
trigger.num++;
player.addMark('zhuSkill_fancheng2',1,false);
},
mark:true,
marktext:'殺',
intro:{content:'因执行【杀】的效果对其他角色造成的伤害+1'},
},
zhuSkill_fancheng1:{
trigger:{source:'damageBegin2'},
forced:true,
charlotte:true,
filter:function(event,player){
return event.player!=player&&(!event.card||event.card.name!='sha');
},
logTarget:'player',
content:function(){
trigger.num++;
},
mark:true,
marktext:'谋',
intro:{content:'不因【杀】对其他角色造成的伤害+1'},
},
binglin_shaxue:{
init:function(player,skill){

View File

@ -1532,7 +1532,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(num>0) player.draw(num);
'step 4'
if(trigger.player.isIn()){
var target=trigger.player,tao=(lib.filter.cardEnabled({name:'tao',isCard:true},player)&&lib.filter.targetEnabled2({name:'tao',isCard:true},player,target)),sha=game.filterPlayer(function(current){
var target=trigger.player,tao=(lib.filter.cardEnabled({name:'tao',isCard:true},player,'forceEnable')&&lib.filter.targetEnabled2({name:'tao',isCard:true},player,target)),sha=game.filterPlayer(function(current){
return current!=target&&current!=player&&target.canUse({name:'sha',nature:'thunder',isCard:true},current,false);
});
if(sha.length){
@ -5367,7 +5367,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
event.targets=result.targets;
event.players=game.filterPlayer(function(current){
if(current==player) return false;
return current.isFriendOf(player)||current.isUnseen();
return current.isFriendOf(player)||(player.identity!='ye'&&current.isUnseen());
}).sort(lib.sort.seat);
event.num=0;
event.filterName=function(name){
@ -8324,12 +8324,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
'step 2'
target.storage.gzxiongsuan_restore=result.control;
target.addTempSkill('gzxiongsuan_restore','phaseZhunbeiBegin');
target.addTempSkill('gzxiongsuan_restore');
},
subSkill:{
restore:{
trigger:{global:'phaseAfter'},
silent:true,
charlotte:true,
content:function(){
player.restoreSkill(player.storage.gzxiongsuan_restore);
}
@ -10197,23 +10198,29 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
});
'step 6'
if(result.bool){
game.broadcastAll(function(player,target){
player.say('加入');
player.identity='ye';
player.setIdentity('ye');
player.storage.yexinjia_friend=target;
},target,source);
target.markSkill('yexinjia_friend');
source.removeMark('yexinjia_mark',1);
target.drawTo(4);
target.recover();
target.chat('加入');
if(!_status.yexinjia_list) _status.yexinjia_list=['夏','商','周','秦','汉','隋','唐','宋','辽','金','元','明'];
source.chooseControl(_status.yexinjia_list).set('prompt','请选择自己所属的野心家势力的标识').set('ai',()=>(_status.yexinjia_list?_status.yexinjia_list.randomGet():0));
}
else{
target.chat('拒绝');
game.delay(1.5);
if(targets.length) event.goto(5);
else event.goto(8);
}
'step 7'
game.broadcastAll(function(player,target,text){
player.identity='ye';
source.setIdentity(text,'ye');
player.setIdentity(text,'ye');
player.storage.yexinjia_friend=target;
},target,source,result.control);
_status.yexinjia_list.remove(result.control);
target.markSkill('yexinjia_friend');
source.removeMark('yexinjia_mark',1);
target.drawTo(4);
target.recover();
'step 8'
if(event.targets2.length) event.goto(3);
else delete _status.showYexings;
});