This commit is contained in:
libccy 2017-01-14 16:57:14 +08:00
parent 8ee21026da
commit 72b8f9d030
5 changed files with 108 additions and 57 deletions

View File

@ -1,7 +1,7 @@
'use strict'; 'use strict';
character.hearth={ character.hearth={
character:{ character:{
hs_jaina:['female','wei',3,['huopu','bianxing','bingjia']], hs_jaina:['female','wei',3,['huopu','aoshu','bingjia']],
hs_lrexxar:['male','shu',4,['shoulie','gongji']], hs_lrexxar:['male','shu',4,['shoulie','gongji']],
hs_wuther:['male','qun',4,['fengxian','jieming']], hs_wuther:['male','qun',4,['fengxian','jieming']],
hs_jgarrosh:['male','shu',4,['zhanhou','qiangxi']], hs_jgarrosh:['male','shu',4,['zhanhou','qiangxi']],
@ -95,6 +95,24 @@ character.hearth={
hs_malfurion:['hs_malorne'], hs_malfurion:['hs_malorne'],
}, },
skill:{ skill:{
aoshu:{
enable:'phaseUse',
usable:1,
position:'he',
filterCard:function(card){
return get.suit(card)=='spade';
},
viewAs:{name:'wuzhong'},
viewAsFilter:function(player){
if(!player.num('he',{suit:'spade'})) return false;
},
prompt:'将一张黑桃手牌当作无中生有使用',
check:function(card){return 7-ai.get.value(card)},
ai:{
threaten:1.4,
order:9,
}
},
bzhuiji:{ bzhuiji:{
trigger:{global:'dieAfter'}, trigger:{global:'dieAfter'},
check:function(event,player){ check:function(event,player){
@ -5072,9 +5090,9 @@ character.hearth={
kuixin_info:'回合结束阶段你可以将你的手牌与一名其他角色交换手牌数之差不能多于1', kuixin_info:'回合结束阶段你可以将你的手牌与一名其他角色交换手牌数之差不能多于1',
lianzhan:'连斩', lianzhan:'连斩',
lianzhan_info:'出牌阶段结束时你可以摸X张牌X为你本回合使用的卡牌数', lianzhan_info:'出牌阶段结束时你可以摸X张牌X为你本回合使用的卡牌数',
yanshu:'炎', yanshu:'炎',
yanshu_info:'每回合限一次,当你弃置非基本牌后,你可以获得一张流星火雨', yanshu_info:'每回合限一次,当你弃置非基本牌后,你可以获得一张流星火雨',
bingshuang:'冰', bingshuang:'冰',
bingshuang_info:'你使用锦囊牌造成伤害后,可令目标摸两张牌并翻面', bingshuang_info:'你使用锦囊牌造成伤害后,可令目标摸两张牌并翻面',
shengyan:'圣言', shengyan:'圣言',
shengyan_info:'任意一名角色回复体力后,你可以令其额外回复一点体力,每回合限发动一次', shengyan_info:'任意一名角色回复体力后,你可以令其额外回复一点体力,每回合限发动一次',
@ -5082,6 +5100,8 @@ character.hearth={
qingliu_info:'锁定技,你防止即将受到的火焰伤害', qingliu_info:'锁定技,你防止即将受到的火焰伤害',
liechao:'猎潮', liechao:'猎潮',
liechao_info:'出牌阶阶段限一次,若你的武将牌正面朝上且手牌数不大于当前体力值,你可以翻面并摸四张牌,若如此做,你跳过本回合的弃牌阶段', liechao_info:'出牌阶阶段限一次,若你的武将牌正面朝上且手牌数不大于当前体力值,你可以翻面并摸四张牌,若如此做,你跳过本回合的弃牌阶段',
aoshu:'奥术',
aoshu_info:'出牌阶段限一次,你可以将一张黑桃牌当作无中生有使用',
fengxing:'风行', fengxing:'风行',
fengxing_info:'每当你使用一张杀,你可以摸一张牌', fengxing_info:'每当你使用一张杀,你可以摸一张牌',

View File

@ -345,11 +345,12 @@ window.characterRank={
'hs_zhouzhuo', 'hs_zhouzhuo',
'hs_liadrin', 'hs_liadrin',
'hs_anomalus', 'hs_anomalus',
'sp_pangde', 'mifuren',
'sp_jiaxu',
], ],
b:[ b:[
'caochun', 'caochun',
'sp_pangde',
'sp_jiaxu',
'sp_liubei', 'sp_liubei',
'zhuling', 'zhuling',
'xin_liru', 'xin_liru',
@ -392,7 +393,6 @@ window.characterRank={
're_lidian', 're_lidian',
'jiangqing', 'jiangqing',
'hs_lrexxar', 'hs_lrexxar',
'mifuren',
'diy_huangzhong', 'diy_huangzhong',
'diy_weiyan', 'diy_weiyan',
're_simayi', 're_simayi',

View File

@ -700,20 +700,26 @@ character.sp={
'step 0' 'step 0'
target.draw(); target.draw();
'step 1' 'step 1'
var goon=ai.get.damageEffect(target,player,target)>0&&ai.get.attitude(target,player)>=0; var goon=ai.get.damageEffect(target,player,target)>=0;
if(!goon&&target.hp>=4&&ai.get.attitude(player,target)<0){
var es=target.get('e');
for(var i=0;i<es.length;i++){
if(ai.get.equipValue(es[i],target)>=8){
goon=true;break;
}
}
}
target.chooseControl('选项一','选项二',function(){ target.chooseControl('选项一','选项二',function(){
if(_status.event.goon) return '选项二'; if(_status.event.goon) return '选项二';
return '选项一'; return '选项一';
}).set('goon',goon).set('prompt','定叛<br><br><div class="text">选项一:令'+get.translation(player)+'弃置你装备区里的一张牌</div><br><div class="text">选项二:令'+get.translation(player)+'获得你装备区内的所有牌并对你造成一点伤害</div>'); }).set('goon',goon).set('prompt','定叛<br><br><div class="text">选项一:令'+get.translation(player)+'弃置你装备区里的一张牌</div><br><div class="text">选项二:获得你装备区内的所有牌并受到一点伤害</div>');
'step 2' 'step 2'
if(result.control=='选项一'){ if(result.control=='选项一'){
player.discardPlayerCard(target,true,'e'); player.discardPlayerCard(target,true,'e');
event.finish(); event.finish();
} }
else{ else{
var es=target.get('e'); target.gain(target.get('e'),'gain2');
player.gain(es,target);
target.$give(es,player);
} }
'step 3' 'step 3'
game.delay(0.5); game.delay(0.5);
@ -723,18 +729,22 @@ character.sp={
order:7, order:7,
result:{ result:{
target:function(player,target){ target:function(player,target){
if(ai.get.damageEffect(target,player,target)>0) return 2; if(ai.get.damageEffect(target,player,target)>=0) return 2;
var att=ai.get.attitude(player,target); var att=ai.get.attitude(player,target);
if(att==0) return 0; if(att==0) return 0;
var es=target.get('e'); var es=target.get('e');
var goon=false;
if(att>0&&target.num('h')<target.hp){
goon=true;
}
for(var i=0;i<es.length;i++){ for(var i=0;i<es.length;i++){
var val=ai.get.equipValue(es[i],target); var val=ai.get.equipValue(es[i],target);
if(val>=7&&att<0) return -1; if(val<=4){
if(val<=4&&att>0&&goon) return 1; if(att>0){
return 1;
}
}
else if(val>=7){
if(att<0){
return -1;
}
}
} }
return 0; return 0;
} }
@ -4329,41 +4339,57 @@ character.sp={
trigger:{player:'damageEnd'}, trigger:{player:'damageEnd'},
priority:9, priority:9,
audio:2, audio:2,
check:function(event,player){ direct:true,
return ai.get.attitude(player,event.source)<0;
},
filter:function(event){ filter:function(event){
return event&&event.source; return event&&event.source;
}, },
content:function(){ content:function(){
trigger.source.addSkill('jilei2'); 'step 0'
player.chooseControl('basic','trick','equip','cancel',function(){
var source=_status.event.source;
if(_status.currentPhase!=source) return 'trick';
if(lib.filter.cardUsable({name:'sha'},source)&&source.num('h')>=2) return 'basic';
return 'trick';
}).set('prompt',get.prompt('jilei',trigger.source)).set('source',trigger.source);
'step 1'
if(result.control!='cancel'){
player.logSkill('jilei',trigger.source);
player.popup(get.translation(result.control)+'牌');
trigger.source.storage.jilei2=result.control;
trigger.source.addTempSkill('jilei2','phaseAfter');
}
}, },
ai:{ ai:{
threaten:0.6 threaten:0.7
} }
}, },
jilei2:{ jilei2:{
unique:true, unique:true,
trigger:{global:'phaseAfter'}, intro:{
forced:true, content:function(storage){
priority:10, return '不能使用、打出或弃置'+get.translation(storage)+'牌';
audio:2,
mod:{
cardEnabled:function(){
return false;
},
cardUsable:function(){
return false;
},
cardRespondable:function(){
return false;
},
cardSavable:function(){
return false;
} }
}, },
content:function(){ mark:true,
player.removeSkill('jilei2') onremove:function(player){
delete player.storage.jilei2;
},
mod:{
cardDiscardable:function(card,player){
if(player.storage.jilei2==get.type(card,'trick')) return false;
},
cardEnabled:function(card,player){
if(player.storage.jilei2==get.type(card,'trick')) return false;
},
cardUsable:function(card,player){
if(player.storage.jilei2==get.type(card,'trick')) return false;
},
cardRespondable:function(card,player){
if(player.storage.jilei2==get.type(card,'trick')) return false;
},
cardSavable:function(card,player){
if(player.storage.jilei2==get.type(card,'trick')) return false;
},
}, },
}, },
danlao:{ danlao:{
@ -5394,11 +5420,11 @@ character.sp={
yongjue:{ yongjue:{
audio:2, audio:2,
trigger:{global:'useCardEnd'}, trigger:{global:'useCardEnd'},
usable:1,
filter:function(event,player){ filter:function(event,player){
if(event.card.name!='sha') return false; if(event.card.name!='sha') return false;
if(event.player==player) return false; if(event.player==player) return false;
if(event.targets.contains(player)) return false; if(event.targets.contains(player)) return false;
if(player.tempSkills.yongjue2) return false;
if(event.cards){ if(event.cards){
for(var i=0;i<event.cards.length;i++){ for(var i=0;i<event.cards.length;i++){
if(get.position(event.cards[i])=='d') return true; if(get.position(event.cards[i])=='d') return true;
@ -5415,10 +5441,8 @@ character.sp={
} }
} }
player.gain(cards,'gain2'); player.gain(cards,'gain2');
player.addTempSkill('yongjue2','phaseAfter');
}, },
}, },
yongjue2:{},
guixiu:{ guixiu:{
audio:2, audio:2,
trigger:{target:'shaBegin'}, trigger:{target:'shaBegin'},
@ -5454,10 +5478,9 @@ character.sp={
player.storage.cunsi=true; player.storage.cunsi=true;
game.delay(); game.delay();
target.addSkill('yongjue'); target.addSkill('yongjue');
target.markSkillCharacter('yongjue',player,'存嗣','$<div><div class="skill">【勇决】</div><div>每当其他角色于回合内使用一张杀,若目标不是你,你可以获得之(每回合最多能以此法获得一张杀)</div></div>'); target.markSkillCharacter('yongjue',player,'存嗣','$<div><div class="skill">【勇决】</div><div>每当其他角色于回合内使用一张杀,若目标不是你,你可以获得之,每回合限一次</div></div>');
"step 1" "step 1"
player.turnOver(); player.turnOver();
player.removeSkill('guixiu');
}, },
intro:{ intro:{
content:'limited' content:'limited'
@ -7335,6 +7358,7 @@ character.sp={
taichen:'抬榇', taichen:'抬榇',
jilei:'鸡肋', jilei:'鸡肋',
jilei2:'鸡肋', jilei2:'鸡肋',
jilei2_bg:'肋',
fulu:'符箓', fulu:'符箓',
fuji:'助祭', fuji:'助祭',
fenyin:'奋音', fenyin:'奋音',
@ -7347,7 +7371,7 @@ character.sp={
fenyin_info:'你的回合内当你使用牌时若此牌与你于此回合内使用的上一张牌颜色不同则你可以摸一张牌每回合最多发动3次', fenyin_info:'你的回合内当你使用牌时若此牌与你于此回合内使用的上一张牌颜色不同则你可以摸一张牌每回合最多发动3次',
fuji_info:'当一名角色造成雷电伤害时,你可以令其进行一次判定,若结果为黑色,此伤害+1若结果为红色该角色获得此牌。', fuji_info:'当一名角色造成雷电伤害时,你可以令其进行一次判定,若结果为黑色,此伤害+1若结果为红色该角色获得此牌。',
fulu_info:'你可以将【杀】当雷【杀】使用。', fulu_info:'你可以将【杀】当雷【杀】使用。',
jilei_info:'每当你受到一次伤害,可以令伤害来源不能使用或打出其手牌直到回合结束', jilei_info:'每当你受到有来源的伤害时,你可以选择一种牌的类别,令伤害来源不能使用、打出或弃置其此类别的手牌,直到回合结束',
danlao:'啖酪', danlao:'啖酪',
danlao_info:'当你成为一张指定了多个目标的锦囊牌的目标时,你可以取消之,并摸一张牌。', danlao_info:'当你成为一张指定了多个目标的锦囊牌的目标时,你可以取消之,并摸一张牌。',
gongao:'功獒', gongao:'功獒',
@ -7403,7 +7427,7 @@ character.sp={
shoucheng_info:'每当一名其他角色在其回合外失去最后的手牌时,你可令该角色摸一张牌。', shoucheng_info:'每当一名其他角色在其回合外失去最后的手牌时,你可令该角色摸一张牌。',
shengxi_info:'若你于出牌阶段未造成伤害,你可在弃牌阶段开始时摸两张牌。', shengxi_info:'若你于出牌阶段未造成伤害,你可在弃牌阶段开始时摸两张牌。',
hengzheng_info:'摸牌阶段开始时若你的体力值为1或你没有手牌你可以放弃摸牌获得每名其他角色区域里的一张牌。', hengzheng_info:'摸牌阶段开始时若你的体力值为1或你没有手牌你可以放弃摸牌获得每名其他角色区域里的一张牌。',
cunsi_info:'限定技,出牌阶段,你可以将所有手牌交给一名男性角色,令该角色获得技能【勇决】,然后翻面并失去技能【闺秀】', cunsi_info:'限定技,出牌阶段,你可以将所有手牌交给一名男性角色,令该角色获得技能【勇决】,然后将武将牌翻面',
guixiu_info:'每当你成为杀的目标,若你的手牌数小于体力值,可以摸一张牌', guixiu_info:'每当你成为杀的目标,若你的手牌数小于体力值,可以摸一张牌',
fenming_info:'结束阶段开始时,若你处于连环状态,你可以弃置处于连环状态的每名角色的一张牌。', fenming_info:'结束阶段开始时,若你处于连环状态,你可以弃置处于连环状态的每名角色的一张牌。',
duanxie_info:'出牌阶段限一次,你可以令一名其他角色横置武将牌,若如此做,你横置武将牌。', duanxie_info:'出牌阶段限一次,你可以令一名其他角色横置武将牌,若如此做,你横置武将牌。',

View File

@ -3564,6 +3564,8 @@ character.swd={
}, },
huopu:{ huopu:{
enable:'phaseUse', enable:'phaseUse',
usable:1,
position:'he',
filterCard:function(card){ filterCard:function(card){
return get.suit(card)=='heart'; return get.suit(card)=='heart';
}, },
@ -8274,7 +8276,7 @@ character.swd={
rexue:'热血', rexue:'热血',
rexue_info:'任意一名角色的回合开始阶段,你可以对其使用一张杀,然后摸一张牌', rexue_info:'任意一名角色的回合开始阶段,你可以对其使用一张杀,然后摸一张牌',
huopu:'火瀑', huopu:'火瀑',
huopu_info:'你可以将一张红桃牌当作流星火羽使用', huopu_info:'出牌阶段限一次,你可以将一张红桃牌当作流星火羽使用',
benlei:'奔雷', benlei:'奔雷',
benlei2:'奔雷', benlei2:'奔雷',
benlei_info:'你可以将三张牌当惊雷闪使用;每当你造成一次雷属性伤害,你回复一点体力', benlei_info:'你可以将三张牌当惊雷闪使用;每当你造成一次雷属性伤害,你回复一点体力',

View File

@ -5117,11 +5117,14 @@
game.reload(); game.reload();
}, },
u:function(){ u:function(){
var card={name:'sha'},source=game.me.next; var card={name:'sha'},source=game.me.next,targets=[];
for(var i=0;i<arguments.length;i++){ for(var i=0;i<arguments.length;i++){
if(get.itemtype(arguments[i])=='player'){ if(get.itemtype(arguments[i])=='player'){
source=arguments[i]; source=arguments[i];
} }
else if(Array.isArray(arguments[i])){
targets=arguments[i];
}
else if(typeof arguments[i]=='object'){ else if(typeof arguments[i]=='object'){
card=arguments[i]; card=arguments[i];
} }
@ -5129,7 +5132,8 @@
card={name:arguments[i]} card={name:arguments[i]}
} }
} }
source.useCard(game.createCard(card.name,card.suit,card.number,card.nature),game.me); targets.add(game.me);
source.useCard(game.createCard(card.name,card.suit,card.number,card.nature),targets);
}, },
rank:function(){ rank:function(){
var list=lib.rank.s.concat(lib.rank.ap).concat(lib.rank.a).concat(lib.rank.am). var list=lib.rank.s.concat(lib.rank.ap).concat(lib.rank.a).concat(lib.rank.am).
@ -5232,8 +5236,10 @@
ui.updatehl(); ui.updatehl();
} }
}, },
s:function(skill){ s:function(){
game.me.addSkill(skill,true); for(var i=0;i<arguments.length;i++){
game.me.addSkill(arguments[i],true);
}
game.check(); game.check();
}, },
t:function(num){ t:function(num){
@ -8042,10 +8048,9 @@
gain:function(){ gain:function(){
"step 0" "step 0"
if(cards){ if(cards){
var owner=get.owner(cards[0]); var owner=event.source||get.owner(cards[0]);
event.source=event.source; if(owner){
if(event.source&&event.source==owner){ owner.lose(cards,ui.special);
event.source.lose(cards,ui.special);
} }
} }
else{ else{