v1.9.97.4

This commit is contained in:
Spmario233 2020-01-26 19:35:17 +08:00 committed by GitHub
parent 22a691c79a
commit 881e0b50b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
50 changed files with 245 additions and 175 deletions

Binary file not shown.

Binary file not shown.

BIN
audio/skill/hmxili1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/hmxili2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/mansi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mansi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/manyi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/manyi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/refangquan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/refangquan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rehunzi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rehunzi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/renshi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/renshi2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/rezhijian1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rezhijian2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/souying1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/souying2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/wuyuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/wuyuan2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/zhanyuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhanyuan2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -561,7 +561,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.delay(); game.delay();
}, },
ai:{ ai:{
order:7, order:12,
result:{ result:{
target:function(player,target){ target:function(player,target){
var card=ui.selected.cards[0]; var card=ui.selected.cards[0];
@ -573,12 +573,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.countPlayer(function(current){ game.countPlayer(function(current){
if(current!=player&&target.canUse(card,current)) eff+=get.effect(current,card,target,target)>0 if(current!=player&&target.canUse(card,current)) eff+=get.effect(current,card,target,target)>0
}); });
return eff; if(eff>0||get.value(card)<3) return eff;
return 0;
} }
else if(game.hasPlayer(function(current){ else if(game.hasPlayer(function(current){
return current!=player&&target.canUse(card,current)&&get.effect(current,card,target,target)>0 return current!=player&&target.canUse(card,current)&&get.effect(current,card,target,target)>0
})) return 1.5; })) return 1.5;
else return -1; else if(get.value(card)<3) return -1;
return 0;
}, },
}, },
}, },
@ -4349,7 +4351,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.player==player) return false; if(event.player==player) return false;
if(_status.currentPhase==event.player) return false; if(_status.currentPhase==event.player) return false;
if(event.cards.length!=1) return false; if(event.cards.length!=1) return false;
return get.type(event.cards[0])=='equip'&&get.position(event.cards[0])=='h'; return get.type(event.cards[0])=='equip'&&get.position(event.cards[0])=='h'&&event.player.hasUseTarget(event.cards[0]);
}, },
logTarget:'player', logTarget:'player',
check:function(event,player){ check:function(event,player){
@ -4399,7 +4401,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.player.$give(1,player); trigger.player.$give(1,player);
} }
else{ else{
trigger.player.useCard(trigger.cards,trigger.player); trigger.player.chooseUseTarget(trigger.cards[0],true);
} }
} }
}, },

View File

@ -227,12 +227,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
animationColor:'metal', animationColor:'metal',
content:function(){ content:function(){
"step 0" "step 0"
event.delay=false;
player.removeMark('baonu',6); player.removeMark('baonu',6);
event.targets=game.filterPlayer(); event.targets=game.filterPlayer();
event.targets.remove(player); event.targets.remove(player);
event.targets.sort(lib.sort.seat); event.targets.sort(lib.sort.seat);
player.line(event.targets,'green'); player.line(event.targets,'green');
event.targets2=event.targets.slice(0); event.targets2=event.targets.slice(0);
event.targets3=event.targets.slice(0);
"step 1" "step 1"
if(event.targets2.length){ if(event.targets2.length){
event.targets2.shift().damage('nocard'); event.targets2.shift().damage('nocard');
@ -244,11 +246,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.current.discard(event.current.getCards('e')).delay=false; event.current.discard(event.current.getCards('e')).delay=false;
} }
"step 3" "step 3"
event.current.chooseToDiscard('h',true,4).delay=false;
"step 4"
game.delay(0.5); game.delay(0.5);
if(event.targets.length) event.goto(2); if(event.targets.length) event.goto(2);
"step 4"
if(event.targets3.length){
event.targets3.shift().chooseToDiscard(4,'h',true).delay=false;
}
"step 5" "step 5"
game.delay(0.5);
if(event.targets3.length) event.goto(4);
"step 6"
player.turnOver(); player.turnOver();
}, },
ai:{ ai:{
@ -1805,7 +1812,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
gongxin:{ gongxin:{
audio:2, audio:2,
audioname:['re_lvmeng'], audioname:['re_lvmeng','gexuan'],
enable:'phaseUse', enable:'phaseUse',
usable:1, usable:1,
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
@ -2337,12 +2344,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.list2=[]; event.list2=[];
if(target.countCards('h')>0){ if(target.countCards('h')>0){
var chooseButton=player.chooseButton(4,'hidden',['你的手牌',player.getCards('h'),get.translation(target.name)+'的手牌',target.getCards('h'),'hidden']); var chooseButton=player.chooseButton(4,'hidden',['你的手牌',player.getCards('h'),get.translation(target.name)+'的手牌',target.getCards('h'),'hidden']);
}else{ }
else{
var chooseButton=player.chooseButton(4,'hidden',['你的手牌',player.getCards('h'),'hidden']); var chooseButton=player.chooseButton(4,'hidden',['你的手牌',player.getCards('h'),'hidden']);
} }
chooseButton.set('target',target);
chooseButton.set('ai',function(button){ chooseButton.set('ai',function(button){
//if(button.link.name=='du') return 1; var player=_status.event.player;
return 0; var target=_status.event.target;
var ps=[];
var ts=[];
for(var i=0;i<ui.selected.buttons.length;i++){
var card=ui.selected.buttons[i].link;
if(target.getCards('h').contains(card)) ts.push(card);
else ps.push(card);
}
var card=button.link;
var owner=get.owner(card);
var val=get.value(card)||1;
if(owner==target){
if(ts.length>1) return 0;
if(ts.length==0||player.hp>3) return val;
return 2*val;
}
return 7-val;
}); });
chooseButton.set('filterButton',function(button){ chooseButton.set('filterButton',function(button){
for(var i=0;i<ui.selected.buttons.length;i++){ for(var i=0;i<ui.selected.buttons.length;i++){
@ -2522,29 +2547,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"nzry_junlve":"军略", "nzry_junlve":"军略",
"nzry_junlve_info":"锁定技当你受到或造成伤害后你获得X个“军略”标记(X为伤害点数)", "nzry_junlve_info":"锁定技当你受到或造成伤害后你获得X个“军略”标记(X为伤害点数)",
"nzry_cuike":"摧克", "nzry_cuike":"摧克",
"nzry_cuike_info":"出牌阶段开始时,若“军略”标记的数量为奇数,你可以对一名角色造成一点伤害;若“军略”标记的数量为偶数你可以横置一名角色并弃置其区域内的一张牌。若“军略”标记的数量超过7个你可以移去全部“军略”标记并对所有其他角色造成一点伤害", "nzry_cuike_info":"出牌阶段开始时,若“军略”标记的数量为奇数,你可以对一名角色造成一点伤害若“军略”标记的数量为偶数,你可以横置一名角色并弃置其区域内的一张牌。然后,若“军略”标记的数量超过7个你可以移去全部“军略”标记并对所有其他角色造成一点伤害",
"nzry_dinghuo":"绽火", "nzry_dinghuo":"绽火",
"nzry_dinghuo_info":"限定技出牌阶段你可以移去全部“军略”标记令至多等量的已横置角色弃置所有装备区内的牌。然后你对其中一名角色造成1点火焰伤害", "nzry_dinghuo_info":"限定技出牌阶段你可以移去全部“军略”标记令至多等量的已横置角色弃置所有装备区内的牌。然后你对其中一名角色造成1点火焰伤害",
"shen_liubei":"神刘备", "shen_liubei":"神刘备",
"nzry_longnu":"龙怒", "nzry_longnu":"龙怒",
"nzry_longnu_info":"转换技,锁定技,①出牌阶段开始时,你失1点体力并摸一张牌然后本回合你的红色手牌均视为火杀且无距离限制。②出牌阶段开始时你减1点体力上限并摸一张牌然后本回合你的锦囊牌均视为雷杀且无使用次数限制", "nzry_longnu_info":"转换技,锁定技,①出牌阶段开始时,你1点体力并摸一张牌然后本回合你的红色手牌均视为火且无距离限制。②出牌阶段开始时你减1点体力上限并摸一张牌然后本回合你的锦囊牌均视为雷且无使用次数限制",
"nzry_jieying":"结营", "nzry_jieying":"结营",
"nzry_jieying_info":"锁定技,你始终处于横置状态;已横置的角色手牌上限+2;结束阶段,你横置一名其他角色", "nzry_jieying_info":"锁定技,游戏开始时或当你的武将牌重置时,你横置;所有已横置的角色手牌上限+2结束阶段你横置一名其他角色。",
"shen_ganning":"神甘宁", "shen_ganning":"神甘宁",
"shen_zhangliao":"神张辽", "shen_zhangliao":"神张辽",
"drlt_poxi":"魄袭", "drlt_poxi":"魄袭",
"drlt_poxi_info":"出牌阶段限一次,你可以观看一名其他角色的手牌,然后你可以弃置你与其手牌中的四张花色不同的牌。若如此做,根据此次弃置你的牌的数量执行以下效果:1.没有扣减一点体力上限2.一张,立即结束出牌阶段且本回合手牌上限-1三张恢复一点体力四张摸四张牌", "drlt_poxi_info":"出牌阶段限一次,你可以观看一名其他角色的手牌,然后你可以弃置你与其手牌中的四张花色不同的牌。若如此做,根据此次弃置你的牌的数量执行以下效果:零张,扣减一点体力上限;一张,你结束出牌阶段且本回合手牌上限-1三张你回复一点体力四张摸四张牌",
"drlt_jieying":"劫营", "drlt_jieying":"劫营",
"drlt_jieying_info":"回合开始时,若没有角色有“营”标记你获得1个“营”标记结束阶段你可以将你的“营”交给一名角色有“营”标记的角色摸牌阶段多摸一张牌其于出牌阶段使用【杀】的次数上限+1手牌上限+1。有“营”的其他角色回合结束,其移去“营”标记,然后你获得其所有手牌。", "drlt_jieying_info":"回合开始时,若场上没有拥有“营”标记的角色你获得1个“营”标记结束阶段你可以将你的一个“营”标记交给一名角色;有“营”标记的角色摸牌阶段多摸一张牌,出牌阶段使用【杀】的次数上限+1手牌上限+1。有“营”的其他角色回合结束,其移去“营”标记,然后你获得其所有手牌。",
drlt_jieying_mark:"劫营", drlt_jieying_mark:"劫营",
"drlt_duorui1":"失效技能", "drlt_duorui1":"失效技能",
"drlt_duorui1_bg":"锐", "drlt_duorui1_bg":"锐",
"drlt_duorui":"夺锐", "drlt_duorui":"夺锐",
"drlt_duorui_info":"当你于出牌阶段内对一名其他角色造成伤害后,你可以废除你装备区内的一个装备栏(若已全部废除则可以跳过此步骤),然后获得的一个技能直到其的下回合结束或其死亡(觉醒技,限定技,主公技等特殊技能除外)。若如此做,该角色该技能失效且你不能再发动〖夺锐〗直到你失去此技能。", "drlt_duorui_info":"当你于出牌阶段内对一名其他角色造成伤害后,你可以废除你装备区内的一个装备栏(若已全部废除则可以跳过此步骤),然后获得该角色的一个技能直到其的下回合结束或其死亡(觉醒技,限定技,主公技等特殊技能除外)。若如此做,该角色该技能失效且你不能再发动〖夺锐〗直到你失去法获得的技能。",
"drlt_zhiti":"止啼", "drlt_zhiti":"止啼",
"drlt_zhiti_info":"锁定技,你范围内已受伤的其他角色手牌上限-1当你拼点或【决斗】胜利或受到伤害后你恢复一个装备栏", "drlt_zhiti_info":"锁定技,你攻击范围内已受伤的其他角色手牌上限-1当你拼点或【决斗】胜利或受到伤害后你恢复一个装备栏",
shen_zhaoyun:'神赵云', shen_zhaoyun:'神赵云',
shen_guanyu:'神关羽', shen_guanyu:'神关羽',
@ -2555,13 +2580,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shen_zhouyu:'神周瑜', shen_zhouyu:'神周瑜',
shen_lvbu:'神吕布', shen_lvbu:'神吕布',
xinjuejing:'绝境', xinjuejing:'绝境',
xinjuejing_info:'锁定技,你的手牌上限+2当你进入或脱离濒死状态时你摸一张牌', xinjuejing_info:'锁定技,你的手牌上限+2当你进入或脱离濒死状态时你摸一张牌',
xinlonghun:'龙魂', xinlonghun:'龙魂',
xinlonghun1:'龙魂♥︎', xinlonghun1:'龙魂♥︎',
xinlonghun2:'龙魂♦︎', xinlonghun2:'龙魂♦︎',
xinlonghun3:'龙魂♠︎', xinlonghun3:'龙魂♠︎',
xinlonghun4:'龙魂♣︎', xinlonghun4:'龙魂♣︎',
xinlonghun_info:'你可以将同花色的X张牌按下列规则使用或打出:红桃当【桃】,方块当焰伤害的【杀】,梅花当【闪】,黑桃当【无懈可击】。若你以此法使用了两张红色牌,则此牌回复值或伤害值+1。若你以此法使用了两张黑色牌则你弃置当前回合角色一张牌', xinlonghun_info:'你可以将同花色的一至两张牌按下列规则使用或打出:红桃当【桃】,方块当火【杀】,梅花当【闪】,黑桃当【无懈可击】。若你以此法使用了两张红色牌,则此牌回复值或伤害值+1。若你以此法使用了两张黑色牌则你弃置当前回合角色一张牌',
longhun:'龙魂', longhun:'龙魂',
longhun1:'龙魂♥︎', longhun1:'龙魂♥︎',
longhun2:'龙魂♦︎', longhun2:'龙魂♦︎',
@ -2571,7 +2596,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
longhun_info:'你可以将同花色的X张牌按下列规则使用或打出红桃当【桃】方块当具火焰伤害的【杀】梅花当【闪】黑桃当【无懈可击】X为你当前的体力值且至少为1', longhun_info:'你可以将同花色的X张牌按下列规则使用或打出红桃当【桃】方块当具火焰伤害的【杀】梅花当【闪】黑桃当【无懈可击】X为你当前的体力值且至少为1',
juejing_info:'锁定技,摸牌阶段,你摸牌的数量改为你已损失的体力值+2你的手牌上限+2。', juejing_info:'锁定技,摸牌阶段,你摸牌的数量改为你已损失的体力值+2你的手牌上限+2。',
wushen:'武神', wushen:'武神',
wushen_info:'锁定技,你的红桃手牌视为杀;锁定技,你使用红桃杀时无距离限制。', wushen_info:'锁定技,你的红桃手牌和判定牌均视为【杀】;锁定技,你使用红桃【杀】无距离限制。',
wuhun:'武魂', wuhun:'武魂',
wuhun21:'武魂', wuhun21:'武魂',
wuhun22:'武魂', wuhun22:'武魂',
@ -2586,26 +2611,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
gongxin_top:'牌堆顶', gongxin_top:'牌堆顶',
renjie:'忍戒', renjie:'忍戒',
renjie2:'忍戒', renjie2:'忍戒',
renjie_info:'锁定技,每当你受到一次伤害后,你获得等同于你受到的伤害数量的“忍”标记;锁定技,每当你于弃牌阶段内因你的弃置而失去手牌时,你获得等同于你失去的手牌数量的“忍”标记。', renjie_info:'锁定技,当你受到1点伤害后你获得一枚“忍”标记锁定技当你于弃牌阶段内弃置牌后你获得等同于失去的牌数量的“忍”标记。',
sbaiyin:'拜印', sbaiyin:'拜印',
sbaiyin_info:'觉醒技,准备阶段开始时,若你拥有的“忍”标记数不小于4你减1点体力上限然后获得“极略”', sbaiyin_info:'觉醒技,准备阶段开始时,若你的“忍”标记数不小于4你减1点体力上限然后获得〖极略〗',
jilue:'极略', jilue:'极略',
jilue_info:'每当一名角色的判定牌生效前若你有牌你可以弃1枚“忍”标记发动“鬼才”(界)每当你受到伤害后你可以弃1枚“忍”标记发动“放逐”每当你使用锦囊牌时你可以弃1枚“忍”标记发动“集智”(界)出牌阶段限一次若你有牌你可以弃1枚“忍”标记发动“制衡”(界)出牌阶段你可以弃1枚“忍”标记执行“完杀”的效果直到回合结束。', jilue_info:'当一名角色的判定牌生效前你可以弃1枚“忍”标记并发动〖鬼才〗每当你受到伤害后你可以弃1枚“忍”标记并发动〖放逐〗当你使用普通锦囊牌时你可以弃1枚“忍”标记并发动〖集智〗出牌阶段限一次你可以弃1枚“忍”标记并发动〖制衡〗出牌阶段你可以弃1枚“忍”标记并获得〖完杀〗直到回合结束。',
jilue_guicai:'鬼才', jilue_guicai:'鬼才',
jilue_fangzhu:'放逐', jilue_fangzhu:'放逐',
jilue_wansha:'完杀', jilue_wansha:'完杀',
jilue_zhiheng:'制衡', jilue_zhiheng:'制衡',
jilue_jizhi:'集智', jilue_jizhi:'集智',
lianpo:'连破', lianpo:'连破',
lianpo_info:'若你在一回合内杀死了至少一名角色,此回合结束后,你可以进行一个额外的回合。', lianpo_info:'一名角色的回合结束时,若你本回合内杀死过角色,则你可以进行一个额外的回合。',
guixin:'归心', guixin:'归心',
qinyin:'琴音', qinyin:'琴音',
yeyan:'业炎', yeyan:'业炎',
shelie_info:'摸牌阶段,你可以改为从牌堆顶亮出五张牌,你获得不同花色的牌各一张', shelie_info:'摸牌阶段,你可以改为从牌堆顶亮出五张牌,然后选择获得不同花色的牌各一张。',
gongxin_info:'出牌阶段,你可以观看一名其他角色的手牌,并可以展示其中一张红桃牌,然后将其弃置或置于牌堆顶,每阶段限一次。', gongxin_info:'出牌阶段限一次,你可以观看一名其他角色的手牌,并可以展示其中一张红桃牌,然后将其弃置或置于牌堆顶。',
guixin_info:'当你受到1点伤害后你可以获得每名其他角色区域里的一张牌然后你翻面', guixin_info:'当你受到1点伤害后你可以获得每名其他角色区域里的一张牌然后你翻面',
guixin_info_alter:'当你受到1点伤害后你可以随机获得每名其他角色区域里的一张牌然后你翻面', guixin_info_alter:'当你受到1点伤害后你可以随机获得每名其他角色区域里的一张牌然后你翻面',
qinyin_info:'弃牌阶段结束时,若你于此阶段内弃置过你的至少两张手牌则你可以选择一项1. 所有角色各回复1点体力2. 所有角色各失去1点体力。', qinyin_info:'弃牌阶段结束时,若你于此阶段内弃置过两张或更多的牌则你可以选择一项1. 令所有角色各回复1点体力2. 令所有角色各失去1点体力。',
// qinyin_info:'每当你于弃牌阶段内因你的弃置而失去第X张手牌时X至少为2你可以选择一项1.令所有角色各回复1点体力2.令所有角色各失去1点体力。每阶段限一次。', // qinyin_info:'每当你于弃牌阶段内因你的弃置而失去第X张手牌时X至少为2你可以选择一项1.令所有角色各回复1点体力2.令所有角色各失去1点体力。每阶段限一次。',
yeyan_info:'限定技出牌阶段你可以对一至三名角色造成至多共3点火焰伤害你可以任意分配每名目标角色受到的伤害点数若你将对一名角色分配2点或更多的火焰伤害你须先弃置四张不同花色的手牌再失去3点体力。', yeyan_info:'限定技出牌阶段你可以对一至三名角色造成至多共3点火焰伤害你可以任意分配每名目标角色受到的伤害点数若你将对一名角色分配2点或更多的火焰伤害你须先弃置四张不同花色的手牌再失去3点体力。',
qixing:'七星', qixing:'七星',
@ -2618,30 +2643,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dawu2:'大雾', dawu2:'大雾',
dawu3:'大雾', dawu3:'大雾',
// dawu2_info:'已获得大雾标记', // dawu2_info:'已获得大雾标记',
dawu_info:'结束阶段你可以弃置X枚“星”并指定X名角色直到你的下回合开始防止这些角色受到的除雷电伤害外的伤害。', dawu_info:'结束阶段你可以弃置X张“星”并指定等量的角色:直到你的下回合开始,当这些角色受到非雷电伤害时,防止此伤害。',
kuangfeng:'狂风', kuangfeng:'狂风',
kuangfeng2:'狂风', kuangfeng2:'狂风',
kuangfeng2_bg:'风', kuangfeng2_bg:'风',
// kuangfeng2_info:'已获得狂风标记', // kuangfeng2_info:'已获得狂风标记',
kuangfeng3:'狂风', kuangfeng3:'狂风',
kuangfeng_info:'结束阶段你可以弃置1“星”并指定一名角色:直到你的下回合开始,该角色每次受到火焰伤害+1。', kuangfeng_info:'结束阶段你可以弃置1“星”并指定一名角色:直到你的下回合开始,该角色受到火焰伤害时,此伤害+1。',
baonu:'狂暴', baonu:'狂暴',
baonu_bg:'暴', baonu_bg:'暴',
baonu_info:'锁定技,游戏开始时,你获得两枚“暴怒”标记;锁定技,当你造成/受到1点伤害后你获得1枚“暴怒”标记。', baonu_info:'锁定技,游戏开始时,你获得两枚“暴怒”标记;锁定技,当你造成/受到1点伤害后你获得1枚“暴怒”标记。',
shenfen:'神愤', shenfen:'神愤',
shenfen_info:'限定技出牌阶段你可以弃置6枚暴怒标记对场上所有其他角色造成一点伤害然后令其弃置4张牌', shenfen_info:'限定技出牌阶段你可以弃置6枚暴怒标记对场上所有其他角色造成一点伤害然后令其弃置4张牌',
wuqian:'无前', wuqian:'无前',
wuqian_info:'出牌阶段,你可以弃置两枚暴怒标记并获得技能【无双】直到回合结束', wuqian_info:'出牌阶段,你可以弃置两枚暴怒标记并获得技能【无双】直到回合结束',
wumou:'无谋', wumou:'无谋',
wumou_info:'锁定技,每当你使用非延时类锦囊牌选择目标后你选择一项1.弃1枚“暴怒”标记2.失去1点体力。', wumou_info:'锁定技,当你使用普通锦囊牌时你选择一项1.弃置1枚“暴怒”标记2.失去1点体力。',
ol_wuqian:'无前', ol_wuqian:'无前',
ol_wuqian_info:'出牌阶段,你可以弃2枚“暴怒”标记并选择一名其他角色你视为拥有技能〖无双〗并令其防具无效直到回合结束。', ol_wuqian_info:'出牌阶段,你可以弃置2枚“暴怒”标记并选择一名本回合内未选择过的其他角色你获得技能〖无双〗并令其防具无效直到回合结束。',
ol_shenfen:'神愤', ol_shenfen:'神愤',
ol_shenfen_info:'出牌阶段限一次,你可以弃6枚“暴怒”标记并选择所有其他角色各造成1点伤害。然后这些角色先各弃置其装备区里的牌再各弃置四张手牌。最后你将你的武将牌翻面。', ol_shenfen_info:'出牌阶段限一次,你可以弃6枚“暴怒”标记并选择所有其他角色这些角色各造成1点伤害。然后这些角色先各弃置其装备区里的牌再各弃置四张手牌。最后你将你的武将牌翻面。',
"new_wuhun":"武魂", "new_wuhun":"武魂",
"new_wuhun_info":"锁定技当你受到伤害后伤害来源获得X个“梦魇”标记X为伤害点数。锁定技当你死亡时你选择一名“梦魇”标记数量最多的其他角色。你的死亡流程结算完成后,该角色进行一次判定:若判定结果不为【桃】或【桃园结义】,则该角色立刻死亡。", "new_wuhun_info":"锁定技当你受到伤害后伤害来源获得X个“梦魇”标记X为伤害点数。锁定技当你死亡时你选择一名“梦魇”标记数量最多的其他角色。该角色进行判定:若判定结果不为【桃】或【桃园结义】,则该角色死亡。",
"new_guixin":"归心", "new_guixin":"归心",
"new_guixin_info":"当你受到1点伤害后你可以随机获得每名其他角色区域里的一张牌,然后你翻面。", "new_guixin_info":"当你受到1点伤害后你可以按照你选择的区域优先度随机获得每名其他角色区域里的一张牌,然后你翻面。",
}, },
}; };
}); });

View File

@ -148,8 +148,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return num+player.getDamagedHp(); return num+player.getDamagedHp();
}, },
}, },
audio:2, //audio:2,
trigger:{player:'phaseDiscardBegin'}, //trigger:{player:'phaseDiscardBegin'},
forced:true, forced:true,
firstDo:true, firstDo:true,
filter:function(event,player){ filter:function(event,player){

View File

@ -1853,7 +1853,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reguanxing:{ reguanxing:{
audio:'guanxing', audio:'guanxing',
audioname:['jiangwei','re_jiangwei','re_zhugeliang'], audioname:['jiangwei','re_jiangwei','re_zhugeliang','gexuan'],
trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']}, trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']},
frequent:true, frequent:true,
filter:function(event,player,name){ filter:function(event,player,name){
@ -2885,7 +2885,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
reyingzi:{ reyingzi:{
audio:2, audio:2,
audioname:['heqi','sunce'], audioname:['heqi','sunce','gexuan','re_sunben'],
trigger:{player:'phaseDrawBegin2'}, trigger:{player:'phaseDrawBegin2'},
forced:true, forced:true,
content:function(){ content:function(){

View File

@ -2595,7 +2595,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//priority:-50, //priority:-50,
content:function(){ content:function(){
"step 0" "step 0"
player.chooseToDiscard('是否弃置一张牌并令一名其他角色进行一个额外回合?').set('logSkill','fangquan').ai=function(card){ player.chooseToDiscard('是否弃置一张牌并令一名其他角色进行一个额外回合?').set('logSkill',player.name=='re_liushan'?'refangquan':'fangquan').ai=function(card){
return 20-get.value(card); return 20-get.value(card);
}; };
"step 1" "step 1"
@ -3045,7 +3045,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
hunzi:{ hunzi:{
audioname:['re_sunben'], //audioname:['re_sunben'],
skillAnimation:true, skillAnimation:true,
animationColor:'wood', animationColor:'wood',
audio:2, audio:2,
@ -3084,13 +3084,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhiba:{ zhiba:{
unique:true, unique:true,
global:'zhiba2', global:'zhiba2',
audioname:['re_sunben'],
audio:'zhiba2', audio:'zhiba2',
zhuSkill:true, zhuSkill:true,
}, },
zhiba2:{ zhiba2:{
audio:2, audio:2,
audioname:['re_sunben'], audioname:['re_sunben'],
forceaudio:true, //forceaudio:true,
enable:'phaseUse', enable:'phaseUse',
prompt:function(){ prompt:function(){
var player=_status.event.player; var player=_status.event.player;
@ -3111,6 +3112,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return target.hasZhuSkill('zhiba',player)&&player.canCompare(target); return target.hasZhuSkill('zhiba',player)&&player.canCompare(target);
}, },
direct:true,
prepare:function(cards,player,targets){
targets[0].logSkill('zhiba');
},
usable:1, usable:1,
content:function(){ content:function(){
"step 0" "step 0"

View File

@ -669,7 +669,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
trigger:{global:'useCardAfter'}, trigger:{global:'useCardAfter'},
filter:function(event,player){ filter:function(event,player){
return event.card.name=='nanman'&&game.countPlayer(function(current){ return event.card.name=='nanman'&&game.countPlayer2(function(current){
return current.getHistory('damage',function(evt){ return current.getHistory('damage',function(evt){
return evt.getParent(2)==event; return evt.getParent(2)==event;
}).length>0; }).length>0;
@ -677,7 +677,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
frequent:true, frequent:true,
content:function(){ content:function(){
var num=game.countPlayer(function(current){ var num=game.countPlayer2(function(current){
return current.getHistory('damage',function(evt){ return current.getHistory('damage',function(evt){
return evt.getParent(2)==trigger; return evt.getParent(2)==trigger;
}).length>0; }).length>0;
@ -9949,6 +9949,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
frequent:true, frequent:true,
//usable:3, //usable:3,
filter:function(event,player){ filter:function(event,player){
if(_status.currentPhase!=player) return false;
var evt=player.getLastUsed(1); var evt=player.getLastUsed(1);
if(!evt) return false; if(!evt) return false;
var color1=get.color(evt.card); var color1=get.color(evt.card);
@ -10336,17 +10337,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseControl('draw_card','加伤害','cancel2').set('prompt',get.prompt2('fengpo')); player.chooseControl('draw_card','加伤害','cancel2').set('prompt',get.prompt2('fengpo'));
'step 1' 'step 1'
if(result.control&&result.control!='cancel2'){ if(result.control&&result.control!='cancel2'){
player.logSkill('fengpo'); player.logSkill('fengpo',trigger.target);
var nd=trigger.target.countCards('h',{suit:'diamond'}); var nd=trigger.target.countCards('h',{suit:'diamond'});
if(result.control=='draw_card'){ if(result.control=='draw_card'){
player.draw(nd); player.draw(nd);
} }
else{ else{
var trigger2=trigger.getParent(); var trigger2=trigger.getParent();
if(typeof trigger2.extraDamage!='number'){ if(typeof trigger2.baseDamage!='number'){
trigger2.extraDamage=0; trigger2.baseDamage=0;
} }
trigger2.extraDamage+=nd; trigger2.baseDamage+=nd;
} }
} }
} }

View File

@ -688,14 +688,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
jijiang:{ jijiang:{
audio:'jijiang1', audio:'jijiang1',
audioname:['liushan','re_liubei'], audioname:['liushan','re_liubei','re_liushan'],
unique:true, unique:true,
group:['jijiang1','jijiang2'], group:['jijiang1','jijiang2'],
zhuSkill:true, zhuSkill:true,
}, },
jijiang1:{ jijiang1:{
audio:2, audio:2,
audioname:['liushan','re_liubei'], audioname:['liushan','re_liubei','re_liushan'],
trigger:{player:'chooseToRespondBegin'}, trigger:{player:'chooseToRespondBegin'},
check:function(event){ check:function(event){
if(event.jijiang) return false; if(event.jijiang) return false;
@ -753,8 +753,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
jijiang2:{ jijiang2:{
audio:'jijiang1', audio:'jijiang1',
audioname:['liushan','re_liubei'], audioname:['liushan','re_liubei','re_liushan'],
enable:'chooseToUse', enable:'chooseToUse',
prompt:'选择一名目标角色。若有其他蜀势力角色打出【杀】响应,则视为你对其使用此【杀】。',
filter:function(event,player){ filter:function(event,player){
if(event.filterCard&&!event.filterCard({name:'sha'},player,event)) return false; if(event.filterCard&&!event.filterCard({name:'sha'},player,event)) return false;
if(!player.hasZhuSkill('jijiang')) return false; if(!player.hasZhuSkill('jijiang')) return false;

View File

@ -1410,6 +1410,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
viewAsFilter:function (player){ viewAsFilter:function (player){
if(player.hasSkill('huoji')) return false; if(player.hasSkill('huoji')) return false;
if(!game.hasPlayer(function(current){
return current.hasSkill('xinfu_jianjie');
})) return false;
if(!player.countCards('h',{color:'red'})) return false; if(!player.countCards('h',{color:'red'})) return false;
}, },
prompt:"将一张红色牌当火攻使用", prompt:"将一张红色牌当火攻使用",
@ -1420,56 +1423,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return 4-get.value(card) return 4-get.value(card)
}, },
ai:{
basic:{
order:4,
value:[3,1],
useful:1,
},
wuxie:function (target,card,player,current,state){
if(get.attitude(current,player)>=0&&state>0) return false;
},
result:{
player:function (player){
var nh=player.countCards('h');
if(nh<=player.hp&&nh<=4&&_status.event.name=='chooseToUse'){
if(typeof _status.event.filterCard=='function'&&
_status.event.filterCard({name:'huogong'})){
return -10;
}
if(_status.event.skill){
var viewAs=get.info(_status.event.skill).viewAs;
if(viewAs=='huogong') return -10;
if(viewAs&&viewAs.name=='huogong') return -10;
}
}
return 0;
},
target:function (player,target){
if(target.hasSkill('huogong2')||target.countCards('h')==0) return 0;
if(player.countCards('h')<=1) return 0;
if(target==player){
if(typeof _status.event.filterCard=='function'&&
_status.event.filterCard({name:'huogong'})){
return -1.5;
}
if(_status.event.skill){
var viewAs=get.info(_status.event.skill).viewAs;
if(viewAs=='huogong') return -1.5;
if(viewAs&&viewAs.name=='huogong') return -1.5;
}
return 0;
}
return -1.5;
},
},
tag:{
damage:1,
fireDamage:1,
natureDamage:1,
norepeat:1,
},
},
}, },
"smh_lianhuan":{ "smh_lianhuan":{
audio:2, audio:2,
@ -1477,6 +1430,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:"phaseUse", enable:"phaseUse",
filter:function (event,player){ filter:function (event,player){
if(player.hasSkill('lianhuan')||player.hasSkill('xinlianhuan')) return false; if(player.hasSkill('lianhuan')||player.hasSkill('xinlianhuan')) return false;
if(!game.hasPlayer(function(current){
return current.hasSkill('xinfu_jianjie');
})) return false;
if((player.getStat().skill.smh_lianhuan||0)+(player.getStat().skill.smh_lianhuan1||0)>=3) return false; if((player.getStat().skill.smh_lianhuan||0)+(player.getStat().skill.smh_lianhuan1||0)>=3) return false;
return player.countCards('h',{suit:'club'})>0; return player.countCards('h',{suit:'club'})>0;
}, },
@ -1495,41 +1451,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:"<li>出牌阶段限三次,你可以将你的任意一张梅花手牌当作【铁索连环】使用或重铸。", content:"<li>出牌阶段限三次,你可以将你的任意一张梅花手牌当作【铁索连环】使用或重铸。",
}, },
group:["smh_lianhuan1"], group:["smh_lianhuan1"],
ai:{
wuxie:function (){
if(Math.random()<0.5) return 0;
},
basic:{
useful:4,
value:4,
order:7,
},
result:{
target:function (player,target){
if(target.isLinked()){
if(target.hasSkillTag('link')) return 0;
var f=target.hasSkillTag('nofire');
var t=target.hasSkillTag('nothunder');
if(f&&t) return 0;
if(f||t) return 0.5;
return 2;
}
if(get.attitude(player,target)>=0) return -0.9;
if(ui.selected.targets.length) return -0.9;
if(game.hasPlayer(function(current){
return get.attitude(player,current)<=-1&&current!=target&&!current.isLinked();
})){
return -0.9;
}
return 0;
},
},
tag:{
multitarget:1,
multineg:1,
norepeat:1,
},
},
}, },
"xinfu_jianjie2":{ "xinfu_jianjie2":{
trigger:{ trigger:{
@ -1579,6 +1500,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:"phaseUse", enable:"phaseUse",
filter:function (event,player){ filter:function (event,player){
if(player.hasSkill('lianhuan')||player.hasSkill('xinlianhuan')) return false; if(player.hasSkill('lianhuan')||player.hasSkill('xinlianhuan')) return false;
if(!game.hasPlayer(function(current){
return current.hasSkill('xinfu_jianjie');
})) return false;
if((player.getStat().skill.smh_lianhuan||0)+(player.getStat().skill.smh_lianhuan1||0)>=3) return false; if((player.getStat().skill.smh_lianhuan||0)+(player.getStat().skill.smh_lianhuan1||0)>=3) return false;
return player.countCards('h',{suit:'club'})>0; return player.countCards('h',{suit:'club'})>0;
}, },
@ -1615,6 +1539,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
animationColor:'gray', animationColor:'gray',
prompt:"限定技出牌阶段你可以对一至三名角色造成至多共3点火焰伤害你可以任意分配每名目标角色受到的伤害点数若你将对一名角色分配2点或更多的火焰伤害你须先弃置四张不同花色的手牌再失去3点体力。", prompt:"限定技出牌阶段你可以对一至三名角色造成至多共3点火焰伤害你可以任意分配每名目标角色受到的伤害点数若你将对一名角色分配2点或更多的火焰伤害你须先弃置四张不同花色的手牌再失去3点体力。",
filter:function (event,player){ filter:function (event,player){
if(!game.hasPlayer(function(current){
return current.hasSkill('xinfu_jianjie');
})) return false;
return player.hasSkill('smh_lianhuan'); return player.hasSkill('smh_lianhuan');
}, },
filterTarget:function (card,player,target){ filterTarget:function (card,player,target){
@ -1774,7 +1701,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{ else{
return att/100; return att/100;
} }
}).set('enemy',get.value(event.togive[0])<0); }).set('enemy',get.value(event.togive[0],player,'raw')<0);
} }
"step 3" "step 3"
if(result.targets.length){ if(result.targets.length){
@ -2089,12 +2016,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
prompt:"弃置“后土”标记将一张手牌当桃使用", prompt:"弃置“后土”标记将一张手牌当桃使用",
check:function (card){return 15-get.value(card)}, check:function (card){return 15-get.value(card)},
precontent:function (){ precontent:function (){
player.hasMark('xinfu_falu_club'); player.removeMark('xinfu_falu_club');
}, },
ai:{ ai:{
skillTagFilter:function (player){ skillTagFilter:function (player){
if(!player.isDying()) return false; if(!player.isDying()) return false;
return player.storage.xinfu_falu_map.club; return player.hasMark('xinfu_falu_club');
}, },
save:true, save:true,
respondTao:true, respondTao:true,
@ -3583,10 +3510,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.addTempSkill('xinfu_kannan_phase'); target.addTempSkill('xinfu_kannan_phase');
if(!target.hasSkill('kannan_eff')){ if(!target.hasSkill('kannan_eff')){
target.addSkill('kannan_eff'); target.addSkill('kannan_eff');
}else{ }
else{
if(!target.storage.kannan_eff) player.storage.kannan_eff=0; if(!target.storage.kannan_eff) player.storage.kannan_eff=0;
target.storage.kannan_eff++; //target.storage.kannan_eff++;
target.markSkill('kannan_eff'); //target.markSkill('kannan_eff');
} }
target.storage.kannan_eff++; target.storage.kannan_eff++;
target.markSkill('kannan_eff'); target.markSkill('kannan_eff');
@ -3606,10 +3534,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
forced:true, forced:true,
content:function (){ content:function (){
"step 0"
if(!trigger.baseDamage) trigger.baseDamage=1; if(!trigger.baseDamage) trigger.baseDamage=1;
trigger.baseDamage+=player.storage.kannan_eff; trigger.baseDamage+=player.storage.kannan_eff;
"step 1"
player.removeSkill('kannan_eff'); player.removeSkill('kannan_eff');
}, },
init:function (player){ init:function (player){

View File

@ -218,12 +218,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
else{ else{
var num=0; var num=0;
for(var i=0;i<game.players.length;i++){ game.countPlayer2(function(current){
var history=game.players[i].getHistory('useCard'); var history=current.getHistory('useCard');
for(var j=0;j<history.length;j++){ for(var j=0;j<history.length;j++){
if(['basic','trick'].contains(get.type(history[j].card))&&history[j].targets&&history[j].targets.contains(player)) num++; if(['basic','trick'].contains(get.type(history[j].card))&&history[j].targets&&history[j].targets.contains(player)) num++;
} }
} });
event.num=num; event.num=num;
player.chooseBool(get.prompt('xindanshou')+'(可摸'+get.cnNumber(num)+'张牌)',get.translation('xindanshou_info')); player.chooseBool(get.prompt('xindanshou')+'(可摸'+get.cnNumber(num)+'张牌)',get.translation('xindanshou_info'));
} }
@ -6458,9 +6458,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.getParent().triggeredTargets3.length>1) return false; if(event.getParent().triggeredTargets3.length>1) return false;
return get.suit(event.card)=='spade'&& return get.suit(event.card)=='spade'&&
_status.currentPhase==event.player&&event.targets&&event.targets.length&& _status.currentPhase==event.player&&event.targets&&event.targets.length&&
event.player!=player&&!game.hasPlayer(function(current){ event.player!=player&&game.countPlayer2(function(current){
return current.getHistory('damage').length>0; return current.getHistory('damage').length>0;
}); })==0;
}, },
direct:true, direct:true,
content:function(){ content:function(){
@ -8890,6 +8890,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
zhiyan:{ zhiyan:{
audio:2, audio:2,
audioname:['gexuan'],
trigger:{player:'phaseJieshuBegin'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
content:function(){ content:function(){

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[ window.noname_asset_list=[
'1.9.97.2', '1.9.97.4',
'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3', 'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3', 'audio/background/aozhan_rewrite.mp3',
@ -2053,7 +2053,43 @@ window.noname_asset_list=[
'audio/skill/xjshijian1.mp3', 'audio/skill/xjshijian1.mp3',
'audio/skill/xjshijian2.mp3', 'audio/skill/xjshijian2.mp3',
'audio/skill/yuxu1.mp3', 'audio/skill/yuxu1.mp3',
'audio/skill/yuxu2.mp3', 'audio/skill/yuxu2.mp3',
'audio/skill/guzheng_re_zhangzhang1.mp3',
'audio/skill/guzheng_re_zhangzhang2.mp3',
'audio/skill/hmxili1.mp3',
'audio/skill/hmxili2.mp3',
'audio/skill/jiang_re_sunben1.mp3',
'audio/skill/jiang_re_sunben2.mp3',
'audio/skill/jijiang1_re_liushan1.mp3',
'audio/skill/jijiang1_re_liushan2.mp3',
'audio/skill/mansi1.mp3',
'audio/skill/mansi2.mp3',
'audio/skill/manyi1.mp3',
'audio/skill/manyi2.mp3',
'audio/skill/refangquan1.mp3',
'audio/skill/refangquan2.mp3',
'audio/skill/rehunzi1.mp3',
'audio/skill/rehunzi2.mp3',
'audio/skill/renshi1.mp3',
'audio/skill/renshi2.mp3',
'audio/skill/reyingzi_re_sunben1.mp3',
'audio/skill/reyingzi_re_sunben2.mp3',
'audio/skill/rezhijian1.mp3',
'audio/skill/rezhijian2.mp3',
'audio/skill/ruoyu_re_liushan1.mp3',
'audio/skill/ruoyu_re_liushan2.mp3',
'audio/skill/souying1.mp3',
'audio/skill/souying2.mp3',
'audio/skill/wuyuan1.mp3',
'audio/skill/wuyuan2.mp3',
'audio/skill/xiangle_re_liushan1.mp3',
'audio/skill/xiangle_re_liushan2.mp3',
'audio/skill/yinghun_re_sunben1.mp3',
'audio/skill/yinghun_re_sunben2.mp3',
'audio/skill/zhanyuan1.mp3',
'audio/skill/zhanyuan2.mp3',
'audio/skill/zhiba2_re_sunben1.mp3',
'audio/skill/zhiba2_re_sunben2.mp3',
'font/huangcao.ttf', 'font/huangcao.ttf',
'font/shousha.ttf', 'font/shousha.ttf',

View File

@ -10082,7 +10082,7 @@
} }
} }
player.ai.tempIgnore=[]; player.ai.tempIgnore=[];
game.countPlayer(function(current){ game.countPlayer2(function(current){
current.actionHistory.push({useCard:[],respond:[],skipped:[],lose:[],gain:[],sourceDamage:[],damage:[]}); current.actionHistory.push({useCard:[],respond:[],skipped:[],lose:[],gain:[],sourceDamage:[],damage:[]});
current.stat.push({card:{},skill:{}}); current.stat.push({card:{},skill:{}});
}); });
@ -26097,7 +26097,7 @@
else if(typeof arguments[i]=='function'){ else if(typeof arguments[i]=='function'){
onerror=arguments[i] onerror=arguments[i]
} }
if(_status.video&&arguments[1]!='video') break; if(_status.video) break;
} }
if(_status.skillaudio.contains(str)) return; if(_status.skillaudio.contains(str)) return;
_status.skillaudio.add(str); _status.skillaudio.add(str);
@ -32582,6 +32582,14 @@
} }
return false; return false;
}, },
hasPlayer2:function(func){
var players=game.players.slice(0).concat(game.dead);
for(var i=0;i<players.length;i++){
if(players[i].isOut()) continue;
if(func(players[i])) return true;
}
return false;
},
countPlayer:function(func){ countPlayer:function(func){
var num=0; var num=0;
if(typeof func!='function'){ if(typeof func!='function'){
@ -32599,6 +32607,24 @@
} }
return num; return num;
}, },
countPlayer2:function(func){
var num=0;
if(typeof func!='function'){
func=lib.filter.all;
}
var players=game.players.slice(0).concat(game.dead);
for(var i=0;i<players.length;i++){
if(players[i].isOut()) continue;
var result=func(players[i]);
if(typeof result=='number'){
num+=result;
}
else if(result){
num++;
}
}
return num;
},
filterPlayer:function(func,list){ filterPlayer:function(func,list){
if(!Array.isArray(list)){ if(!Array.isArray(list)){
list=[]; list=[];
@ -32614,6 +32640,22 @@
} }
return list; return list;
}, },
filterPlayer2:function(func,list){
if(!Array.isArray(list)){
list=[];
}
if(typeof func!='function'){
func=lib.filter.all;
}
var players=game.players.slice(0).concat(game.dead);
for(var i=0;i<game.players.length;i++){
if(players[i].isOut()) continue;
if(func(players[i])){
list.add(players[i]);
}
}
return list;
},
findPlayer:function(func){ findPlayer:function(func){
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
if(game.players[i].isOut()) continue; if(game.players[i].isOut()) continue;
@ -32623,6 +32665,16 @@
} }
return null; return null;
}, },
findPlayer2:function(func){
var players=game.players.slice(0).concat(game.dead);
for(var i=0;i<players.length;i++){
if(players[i].isOut()) continue;
if(func(players[i])){
return players[i];
}
}
return null;
},
findCards:function(func,all){ findCards:function(func,all){
var cards=[]; var cards=[];
for(var i in lib.card){ for(var i in lib.card){

View File

@ -1,8 +1,7 @@
window.noname_update={ window.noname_update={
version:'1.9.97.3.1', version:'1.9.97.4',
update:'1.9.97.3', update:'1.9.97.3.1',
changeLog:[ changeLog:[
'花鬘解禁',
'BUG修复', 'BUG修复',
], ],
files:[ files:[
@ -13,35 +12,35 @@ window.noname_update={
//'card/swd.js', //'card/swd.js',
//'card/guozhan.js', //'card/guozhan.js',
//'card/gwent.js', //'card/gwent.js',
//'character/diy.js', 'character/diy.js',
//'character/extra.js', 'character/extra.js',
//'character/hearth.js', //'character/hearth.js',
//'character/gujian.js', //'character/gujian.js',
//'character/gwent.js', //'character/gwent.js',
//'character/mobile.js', 'character/mobile.js',
//'character/mtg.js', //'character/mtg.js',
//'character/old.js', //'character/old.js',
//'character/refresh.js', 'character/refresh.js',
//'character/shenhua.js', 'character/shenhua.js',
'character/sp.js', 'character/sp.js',
//'character/tw.js', //'character/tw.js',
//'character/standard.js', 'character/standard.js',
//'character/swd.js', //'character/swd.js',
//'character/xianjian.js', //'character/xianjian.js',
//'character/xinghuoliaoyuan.js', 'character/xinghuoliaoyuan.js',
//'character/yijiang.js', 'character/yijiang.js',
//'character/yxs.js', //'character/yxs.js',
//'extension/boss/extension.js', //'extension/boss/extension.js',
//'layout/default/layout.css', //'layout/default/layout.css',
//'mode/identity.js', //'mode/identity.js',
//'mode/doudizhu.js', //'mode/doudizhu.js',
//'mode/guozhan.js', 'mode/guozhan.js',
//'mode/single.js', //'mode/single.js',
//'mode/stone.js', //'mode/stone.js',
//'mode/brawl.js', 'mode/brawl.js',
//'mode/versus.js', //'mode/versus.js',
//'mode/boss.js', //'mode/boss.js',
//'game/game.js', 'game/game.js',
//'game/NoSleep.js', //'game/NoSleep.js',
//'game/config.js', //'game/config.js',
//'game/package.js', //'game/package.js',

View File

@ -726,7 +726,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
'step 3' 'step 3'
if(game.playerx().length<=4&&!_status._aozhan){ if(game.playerx().length<=4&&!_status._aozhan){
game.countPlayer(function(current){ game.countPlayer2(function(current){
delete current._toKill; delete current._toKill;
delete current._toSave; delete current._toSave;
}); });
@ -801,6 +801,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
logTarget:'source', logTarget:'source',
content:function(){ content:function(){
var source=trigger.source; var source=trigger.source;
source.draw();
if(source.skillH.length==3) source.removeSkillH(source.skillH.randomGet());
var skills=lib.huanhuazhizhan.skills;
skills.randomSort();
for(var i=0;i<skills.length;i++){
if(!source.skillH.contains(skills[i])){
source.addSkillH(skills[i]);
break;
}
}
}, },
}, },
hhzz_huizhen:{ hhzz_huizhen:{
@ -1021,11 +1031,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
game.me.addSkillH(result.control); game.me.addSkillH(result.control);
game.countPlayer(function(current){ game.countPlayer(function(current){
current.storage._lingli=0;
if(!current.name){ if(!current.name){
current.init(_status.characterlist.randomRemove(1)[0]); current.init(_status.characterlist.randomRemove(1)[0]);
current.addSkillH(['xiandeng','shulv','xisheng'].randomGet()); current.addSkillH(['xiandeng','shulv','xisheng'].randomGet());
} }
current.storage._lingli=0;
current.markSkill('_lingli');
}); });
game.showIdentity(true); game.showIdentity(true);
'step 3' 'step 3'

View File

@ -2523,16 +2523,27 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(get.suit(card)=='spade') return 8-get.value(card); if(get.suit(card)=='spade') return 8-get.value(card);
return 5-get.value(card); return 5-get.value(card);
}, },
contentBefore:function(){
var evt=event.getParent();
evt.draw=[];
if(get.suit(cards[0])=='spade') evt.draw.push(player);
},
content:function (){ content:function (){
"step 0" "step 0"
if(num==0&&get.suit(cards[0])=='spade') player.draw(); player.discardPlayerCard(target,'he',true);
player.choosePlayerCard(targets[num],'he',true);
"step 1" "step 1"
if(result.bool){ if(result.bool){
if(result.links.length) targets[num].discard(result.links[0]); if(get.suit(result.cards[0])=='spade') event.getParent().draw.push(target);
if(get.suit(result.links[0])=='spade') targets[num].draw();
} }
}, },
contentAfter:function(){
'step 0'
var list=event.getParent().draw;
if(!list.length) event.finish();
else game.asyncDraw(list);
'step 1'
game.delay();
},
ai:{ ai:{
result:{ result:{
target:-1, target:-1,