This commit is contained in:
libccy 2017-05-07 15:22:55 +08:00
parent dc4bbb34d5
commit b2b52f52df
14 changed files with 339 additions and 24 deletions

View File

@ -277,7 +277,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}, },
result:{ result:{
target:function(player,target){ target:function(player,target){
return -1-target.countCards('h'); if(target.hasJudge('caomu')) return 0;
return -1.5/Math.sqrt(target.countCards('h')+1);
} }
}, },
tag:{ tag:{

View File

@ -1198,12 +1198,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
nopop:true, nopop:true,
intro:{ intro:{
content:function(storage,player){ content:function(storage,player){
return '你不能成为延时锦囊牌的目标(剩余'+player.storage.molicha_markcount+'回合)' return '你不能成为过河拆桥或延时锦囊牌的目标(剩余'+player.storage.molicha_markcount+'回合)'
} }
}, },
mod:{ mod:{
targetEnabled:function(card){ targetEnabled:function(card){
if(get.type(card)=='delay'){ if(get.type(card)=='delay'||card.name=='guohe'){
return false; return false;
} }
} }
@ -1218,15 +1218,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){
else{ else{
player.updateMarks(); player.updateMarks();
} }
},
ai:{
effect:{
target:function(card){
if(get.type(card)=='delay'){
return 'zeroplayertarget';
}
}
}
} }
}, },
yuanbaorou:{ yuanbaorou:{
@ -1637,7 +1628,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
yuanbaorou:'元宝肉', yuanbaorou:'元宝肉',
yuanbaorou_info:'你在出牌阶段可以额外使用一张杀,持续三回合', yuanbaorou_info:'你在出牌阶段可以额外使用一张杀,持续三回合',
molicha:'茉莉茶', molicha:'茉莉茶',
molicha_info:'弃置判定区内的所有牌;你不能成为延时锦囊牌的目标,持续五回合', molicha_info:'弃置判定区内的所有牌;你不能成为过河拆桥或延时锦囊牌的目标,持续五回合',
mapodoufu:'麻婆豆腐', mapodoufu:'麻婆豆腐',
mapodoufu_info:'结束阶段你有65%的机率弃置一名随机敌人的一张随机牌,持续三回合', mapodoufu_info:'结束阶段你有65%的机率弃置一名随机敌人的一张随机牌,持续三回合',
}, },

View File

@ -541,7 +541,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}, },
tag:{ tag:{
loseCard:1, loseCard:1,
discard:1 discard:1,
norepeat:1
} }
}, },
}, },

View File

@ -443,7 +443,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
} }
}); });
}, },
target:-1 target:function(player,target){
if(target.hasJudge('bingliang')) return 0;
return -1.5/Math.sqrt(target.countCards('h')+1);
}
}, },
} }
} }

View File

@ -1047,7 +1047,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 2" "step 2"
if(event.dialog) event.dialog.close(); if(event.dialog) event.dialog.close();
var dialog=ui.create.dialog('涉猎',event.cards); var dialog=ui.create.dialog('涉猎',event.cards);
player.chooseButton([0,5],dialog,true).filterButton=function(button){ player.chooseButton([0,5],dialog,true).set('ai',function(button){
return ai.get.value(button.link);
}).filterButton=function(button){
for(var i=0;i<ui.selected.buttons.length;i++){ for(var i=0;i<ui.selected.buttons.length;i++){
if(get.suit(button.link)==get.suit(ui.selected.buttons[i].link)) return false; if(get.suit(button.link)==get.suit(ui.selected.buttons[i].link)) return false;
} }

View File

@ -5762,7 +5762,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
intro:{ intro:{
content:'防止所有伤害' content:'防止一切伤害'
} }
}, },
bianxing2:{}, bianxing2:{},
@ -7907,7 +7907,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
bingjia2:'冰甲', bingjia2:'冰甲',
bingjia3:'冰甲', bingjia3:'冰甲',
bingjia3_bg:'免', bingjia3_bg:'免',
bingjia_info:'出牌阶段,若你武将牌上没有牌,你可以将一张手牌背面朝上置于你的武将牌上,当你成为其他角色的与此牌花色相同的牌的目标时,你移去此牌,获得一点护甲,并且本回合内防止所有伤害', bingjia_info:'出牌阶段,若你武将牌上没有牌,你可以将一张手牌背面朝上置于你的武将牌上,当你成为其他角色的与此牌花色相同的牌的目标时,你移去此牌,获得一点护甲,并且本回合内防止一切伤害',
bianxing:'变形', bianxing:'变形',
bianxing_info:'当一其他角色于回合内使用卡牌指定了惟一的其他目标后,你可以用一张合理的基本牌替代此牌,每名角色的回合限一次', bianxing_info:'当一其他角色于回合内使用卡牌指定了惟一的其他目标后,你可以用一张合理的基本牌替代此牌,每名角色的回合限一次',
xianzhi:'先知', xianzhi:'先知',

View File

@ -56,6 +56,7 @@ window.noname_character_rank={
'swd_shuwaner', 'swd_shuwaner',
], ],
a:[ a:[
'pal_mingxiu',
'pal_yueqi', 'pal_yueqi',
'pal_luozhaoyan', 'pal_luozhaoyan',
'pal_xia', 'pal_xia',

View File

@ -6,6 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pal_lixiaoyao:['male','qun',4,['tianjian','yufeng']], pal_lixiaoyao:['male','qun',4,['tianjian','yufeng']],
pal_zhaoliner:['female','wei',3,['huimeng','tianshe']], pal_zhaoliner:['female','wei',3,['huimeng','tianshe']],
pal_linyueru:['female','wei',3,['guiyuan','qijian']], pal_linyueru:['female','wei',3,['guiyuan','qijian']],
// pal_anu:['female','wu',3,[]],
pal_wangxiaohu:['male','qun',4,['husha']], pal_wangxiaohu:['male','qun',4,['husha']],
pal_sumei:['female','shu',3,['sheying','dujiang','huahu']], pal_sumei:['female','shu',3,['sheying','dujiang','huahu']],
@ -41,7 +42,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pal_yuejinzhao:['male','wei',4,['ywuhun','yingfeng']], pal_yuejinzhao:['male','wei',4,['ywuhun','yingfeng']],
pal_yueqi:['female','wei',3,['tianwu','liguang','shiying']], pal_yueqi:['female','wei',3,['tianwu','liguang','shiying']],
// pal_mingxiu:['female','qun',4,[]], pal_mingxiu:['female','shu',3,['linghuo','guijin','chengxin']],
// pal_xianqing:['male','qun',4,[]], // pal_xianqing:['male','qun',4,[]],
pal_luozhaoyan:['female','shu',4,['fenglue','tanhua']], pal_luozhaoyan:['female','shu',4,['fenglue','tanhua']],
pal_jushifang:['male','shu',3,['yujia','xiepan','yanshi']], pal_jushifang:['male','shu',3,['yujia','xiepan','yanshi']],
@ -84,6 +85,310 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pal_jiangcheng:'折剑山庄庄主欧阳英的得意门生,但因其蚩尤后人魔族的身份,令他无法被容于人界;再加上人界半魔同族饱受人类迫害,故最终成为净天教教主魔君“姜世离”,毅然肩负起保护同族的重任。', pal_jiangcheng:'折剑山庄庄主欧阳英的得意门生,但因其蚩尤后人魔族的身份,令他无法被容于人界;再加上人界半魔同族饱受人类迫害,故最终成为净天教教主魔君“姜世离”,毅然肩负起保护同族的重任。',
}, },
skill:{ skill:{
linghuo:{
init:function(player){
player.storage.linghuo=-1;
},
intro:{
content:function(storage,player){
var num=2-(game.roundNumber-storage);
if(num>0){
return get.cnNumber(num)+'轮后技能重置';
}
return '技能可发动';
},
markcount:function(storage,player){
var num=2-(game.roundNumber-storage);
if(num>0){
return num;
}
return 0;
}
},
trigger:{global:'phaseEnd'},
filter:function(event,player){
if(2-(game.roundNumber-player.storage.linghuo)>0) return false;
return event.player.getStat('damage')&&event.player!=player;
},
check:function(event,player){
return get.damageEffect(event.player,player,player,'fire')>0;
},
logTarget:'player',
line:'fire',
ai:{
expose:0.2,
threaten:1.3,
},
content:function(){
trigger.player.damage('fire');
player.storage.linghuo=game.roundNumber;
player.syncStorage('linghuo');
player.markSkill('linghuo');
},
group:'linghuo_mark',
subSkill:{
mark:{
trigger:{global:['phaseBegin','phaseCancelled']},
forced:true,
popup:false,
silent:true,
filter:function(event,player){
return _status.roundStart==event.player;
},
content:function(){
if(2-(game.roundNumber-player.storage.linghuo)>0){
player.updateMarks();
}
else{
player.unmarkSkill('linghuo');
}
}
}
}
},
guijin:{
init:function(player){
player.storage.guijin=-2;
},
intro:{
content:function(storage,player){
var num=3-(game.roundNumber-storage);
if(num>0){
return get.cnNumber(num)+'轮后技能重置';
}
return '技能可发动';
},
markcount:function(storage,player){
var num=3-(game.roundNumber-storage);
if(num>0){
return num;
}
return 0;
}
},
group:'guijin_mark',
enable:'phaseUse',
delay:0,
filter:function(event,player){
return 3-(game.roundNumber-player.storage.guijin)<=0;
},
content:function(){
'step 0'
event.cards=get.cards(4);
player.storage.guijin=game.roundNumber;
player.syncStorage('guijin');
player.markSkill('guijin');
'step 1'
if(event.cards.length){
var more=false,remain=0,nomore=false;
if(event.cards.length>=3){
for(var i=0;i<event.cards.length;i++){
var value=get.value(event.cards[i],player,'raw');
if(value>=8){
more=true;
}
if(event.cards.length>=4&&value<=4){
remain=Math.min(remain,value);
}
}
}
if(!more&&!game.hasPlayer(function(current){
return get.attitude(player,current)<0&&!current.skipList.contains('phaseDraw');
})){
var num=0;
for(var i=0;i<event.cards.length;i++){
num+=Math.max(0,get.value(event.cards[i],player,'raw'));
}
if(num>=12){
more=true;
}
else{
nomore=true;
}
}
player.chooseCardButton('归烬',event.cards,[1,event.cards.length]).ai=function(button){
if(nomore) return 0;
if(more){
return get.value(button.link,player,'raw')-remain;
}
else{
if(ui.selected.buttons.length) return 0;
return 8-get.value(button.link,player,'raw');
}
}
}
else{
event.goto(4);
}
'step 2'
if(result.bool){
for(var i=0;i<result.links.length;i++){
event.cards.remove(result.links[i]);
}
event.togive=result.links.slice(0);
player.chooseTarget('将'+get.translation(result.links)+'交给一名角色',true).ai=function(target){
var att=get.attitude(player,target)/Math.sqrt(target.countCards('h')+1);
if(result.links.length>1){
if(target==player&&target.needsToDiscard(result.links.length)>1){
return att/5;
}
return att;
}
else{
if(target.skipList.contains('phaseDraw')) return att/5;
return -att;
}
}
}
else{
event.goto(4);
}
'step 3'
if(result.targets.length){
result.targets[0].gain(event.togive,'draw');
result.targets[0].skip('phaseDraw');
result.targets[0].addTempSkill('guijin2',{player:'phaseBegin'});
player.line(result.targets[0],'green');
event.goto(1);
}
'step 4'
while(event.cards.length){
ui.cardPile.insertBefore(event.cards.pop(),ui.cardPile.firstChild);
}
},
ai:{
order:1,
result:{
player:function(player){
if(game.roundNumber==1&&player.hasUnknown()) return 0;
return 1;
}
}
},
subSkill:{
mark:{
trigger:{global:['phaseBegin','phaseCancelled']},
forced:true,
popup:false,
silent:true,
filter:function(event,player){
return _status.roundStart==event.player;
},
content:function(){
if(3-(game.roundNumber-player.storage.guijin)>0){
player.updateMarks();
}
else{
player.unmarkSkill('guijin');
}
}
}
}
},
guijin2:{
mark:true,
intro:{
content:'跳过下一个摸牌阶段'
},
ai:{
effect:{
target:function(card,player,target){
if(card.name=='bingliang'||card.name=='caomu') return 0;
}
}
}
},
chengxin:{
init:function(player){
player.storage.chengxin=-3;
},
intro:{
content:function(storage,player){
var num=4-(game.roundNumber-storage);
if(num>0){
return get.cnNumber(num)+'轮后技能重置';
}
return '技能可发动';
},
markcount:function(storage,player){
var num=4-(game.roundNumber-storage);
if(num>0){
return num;
}
return 0;
}
},
enable:'chooseToUse',
filter:function(event,player){
if(4-(game.roundNumber-player.storage.chengxin)>0) return false;
return event.type=='dying';
},
filterTarget:function(card,player,target){
return target==_status.event.dying;
},
selectTarget:-1,
content:function(){
target.recover(1-target.hp);
target.addTempSkill('chengxin2',{player:'phaseAfter'});
player.storage.chengxin=game.roundNumber;
player.syncStorage('chengxin');
player.markSkill('chengxin');
},
ai:{
order:6,
threaten:1.4,
skillTagFilter:function(player){
if(4-(game.roundNumber-player.storage.chengxin)>0) return false;
if(!_status.event.dying) return false;
},
save:true,
result:{
target:3
},
},
group:'chengxin_mark',
subSkill:{
mark:{
trigger:{global:['phaseBegin','phaseCancelled']},
forced:true,
popup:false,
silent:true,
filter:function(event,player){
return _status.roundStart==event.player;
},
content:function(){
if(4-(game.roundNumber-player.storage.chengxin)>0){
player.updateMarks();
}
else{
player.unmarkSkill('chengxin');
}
}
}
}
},
chengxin2:{
trigger:{player:'damageBefore'},
mark:true,
forced:true,
content:function(){
trigger.untrigger();
trigger.finish();
},
ai:{
nofire:true,
nothunder:true,
nodamage:true,
effect:{
target:function(card,player,target,current){
if(get.tag(card,'damage')) return [0,0];
}
},
},
intro:{
content:'防止一切伤害'
}
},
tianwu:{ tianwu:{
trigger:{player:'useCardToBegin'}, trigger:{player:'useCardToBegin'},
filter:function(event,player){ filter:function(event,player){
@ -3604,6 +3909,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pal_mingxiu:'明绣', pal_mingxiu:'明绣',
pal_jushifang:'居十方', pal_jushifang:'居十方',
linghuo:'灵火',
linghuo_info:'每两轮限一次,在一名其他角色的结束阶段,若其本回合内造成过伤害,你可以对其造成一点火属性伤害',
guijin:'归烬',
guijin2:'归烬',
guijin2_bg:'烬',
guijin_info:'每三轮限一次出牌阶段你可以观看牌堆顶的4张牌然后可以将其中任意张牌分配给任意角色被分到牌的角色跳过下一摸牌阶段然后将剩余牌以原顺序放回牌堆顶',
chengxin:'澄心',
chengxin2:'澄心',
chengxin2_bg:'心',
chengxin_info:'每四轮限一次当一名角色进入濒死状态时你可以令将体力值回复至1然后该角色防止一切伤害直到下一回合结束',
tianwu:'天舞', tianwu:'天舞',
tianwu_info:'每当你使用卡牌指定一名敌方角色为惟一目标,你可以对其施加一个随机的负面效果', tianwu_info:'每当你使用卡牌指定一名敌方角色为惟一目标,你可以对其施加一个随机的负面效果',
liguang:'离光', liguang:'离光',

View File

@ -555,6 +555,7 @@ window.noname_asset_list=[
'image/character/ow_wensidun.jpg', 'image/character/ow_wensidun.jpg',
'image/character/ow_zhaliya.jpg', 'image/character/ow_zhaliya.jpg',
'image/character/ow_ana.jpg', 'image/character/ow_ana.jpg',
'image/character/pal_anu.jpg',
'image/character/pal_changqing.jpg', 'image/character/pal_changqing.jpg',
'image/character/pal_hanlingsha.jpg', 'image/character/pal_hanlingsha.jpg',
'image/character/pal_jiangcheng.jpg', 'image/character/pal_jiangcheng.jpg',

View File

@ -8904,14 +8904,14 @@
else{ else{
if(info.logTarget&&info.logLine!==false){ if(info.logTarget&&info.logLine!==false){
if(typeof info.logTarget=='string'){ if(typeof info.logTarget=='string'){
player.logSkill(event.skill,trigger[info.logTarget]); player.logSkill(event.skill,trigger[info.logTarget],info.line);
} }
else if(typeof info.logTarget=='function'){ else if(typeof info.logTarget=='function'){
player.logSkill(event.skill,info.logTarget(trigger,player)); player.logSkill(event.skill,info.logTarget(trigger,player),info.line);
} }
} }
else{ else{
player.logSkill(event.skill); player.logSkill(event.skill,false,info.line);
} }
} }
} }
@ -41364,7 +41364,7 @@
var modepack=lib.characterPack['mode_'+get.mode()]; var modepack=lib.characterPack['mode_'+get.mode()];
if(lib.config.show_favourite&&lib.character[node.name]&&game.players.contains(node)&& if(lib.config.show_favourite&&lib.character[node.name]&&game.players.contains(node)&&
(!modepack||!modepack[node.name])&&(!simple||get.is.phoneLayout())){ (!modepack||!modepack[node.name])&&(!simple||get.is.phoneLayout())){
var addFavourite=ui.create.div('.text.center'); var addFavourite=ui.create.div('.text.center.pointerdiv');
addFavourite.link=node.link; addFavourite.link=node.link;
if(lib.config.favouriteCharacter.contains(node.name)){ if(lib.config.favouriteCharacter.contains(node.name)){
addFavourite.innerHTML='移除收藏'; addFavourite.innerHTML='移除收藏';
@ -41783,7 +41783,7 @@
var modepack=lib.characterPack['mode_'+get.mode()]; var modepack=lib.characterPack['mode_'+get.mode()];
if(lib.config.show_favourite&& if(lib.config.show_favourite&&
lib.character[node.link]&&(!modepack||!modepack[node.link])&&(!simple||get.is.phoneLayout())){ lib.character[node.link]&&(!modepack||!modepack[node.link])&&(!simple||get.is.phoneLayout())){
var addFavourite=ui.create.div('.text.center'); var addFavourite=ui.create.div('.text.center.pointerdiv');
addFavourite.link=node.link; addFavourite.link=node.link;
addFavourite.style.marginBottom='15px'; addFavourite.style.marginBottom='15px';
if(lib.config.favouriteCharacter.contains(node.link)){ if(lib.config.favouriteCharacter.contains(node.link)){

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 59 KiB

BIN
image/character/pal_anu.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 KiB

After

Width:  |  Height:  |  Size: 90 KiB