|
@ -277,7 +277,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
result:{
|
||||
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:{
|
||||
|
|
|
@ -1198,12 +1198,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
nopop:true,
|
||||
intro:{
|
||||
content:function(storage,player){
|
||||
return '你不能成为延时锦囊牌的目标(剩余'+player.storage.molicha_markcount+'回合)'
|
||||
return '你不能成为过河拆桥或延时锦囊牌的目标(剩余'+player.storage.molicha_markcount+'回合)'
|
||||
}
|
||||
},
|
||||
mod:{
|
||||
targetEnabled:function(card){
|
||||
if(get.type(card)=='delay'){
|
||||
if(get.type(card)=='delay'||card.name=='guohe'){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -1218,15 +1218,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
else{
|
||||
player.updateMarks();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card){
|
||||
if(get.type(card)=='delay'){
|
||||
return 'zeroplayertarget';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
yuanbaorou:{
|
||||
|
@ -1637,7 +1628,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
yuanbaorou:'元宝肉',
|
||||
yuanbaorou_info:'你在出牌阶段可以额外使用一张杀,持续三回合',
|
||||
molicha:'茉莉茶',
|
||||
molicha_info:'弃置判定区内的所有牌;你不能成为延时锦囊牌的目标,持续五回合',
|
||||
molicha_info:'弃置判定区内的所有牌;你不能成为过河拆桥或延时锦囊牌的目标,持续五回合',
|
||||
mapodoufu:'麻婆豆腐',
|
||||
mapodoufu_info:'结束阶段,你有65%的机率弃置一名随机敌人的一张随机牌,持续三回合',
|
||||
},
|
||||
|
|
|
@ -541,7 +541,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
tag:{
|
||||
loseCard:1,
|
||||
discard:1
|
||||
discard:1,
|
||||
norepeat:1
|
||||
}
|
||||
},
|
||||
},
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1047,7 +1047,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 2"
|
||||
if(event.dialog) event.dialog.close();
|
||||
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++){
|
||||
if(get.suit(button.link)==get.suit(ui.selected.buttons[i].link)) return false;
|
||||
}
|
||||
|
|
|
@ -5762,7 +5762,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
intro:{
|
||||
content:'防止所有伤害'
|
||||
content:'防止一切伤害'
|
||||
}
|
||||
},
|
||||
bianxing2:{},
|
||||
|
@ -7907,7 +7907,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
bingjia2:'冰甲',
|
||||
bingjia3:'冰甲',
|
||||
bingjia3_bg:'免',
|
||||
bingjia_info:'出牌阶段,若你武将牌上没有牌,你可以将一张手牌背面朝上置于你的武将牌上,当你成为其他角色的与此牌花色相同的牌的目标时,你移去此牌,获得一点护甲,并且本回合内防止所有伤害',
|
||||
bingjia_info:'出牌阶段,若你武将牌上没有牌,你可以将一张手牌背面朝上置于你的武将牌上,当你成为其他角色的与此牌花色相同的牌的目标时,你移去此牌,获得一点护甲,并且本回合内防止一切伤害',
|
||||
bianxing:'变形',
|
||||
bianxing_info:'当一其他角色于回合内使用卡牌指定了惟一的其他目标后,你可以用一张合理的基本牌替代此牌,每名角色的回合限一次',
|
||||
xianzhi:'先知',
|
||||
|
|
|
@ -56,6 +56,7 @@ window.noname_character_rank={
|
|||
'swd_shuwaner',
|
||||
],
|
||||
a:[
|
||||
'pal_mingxiu',
|
||||
'pal_yueqi',
|
||||
'pal_luozhaoyan',
|
||||
'pal_xia',
|
||||
|
|
|
@ -6,6 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
pal_lixiaoyao:['male','qun',4,['tianjian','yufeng']],
|
||||
pal_zhaoliner:['female','wei',3,['huimeng','tianshe']],
|
||||
pal_linyueru:['female','wei',3,['guiyuan','qijian']],
|
||||
// pal_anu:['female','wu',3,[]],
|
||||
|
||||
pal_wangxiaohu:['male','qun',4,['husha']],
|
||||
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_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_luozhaoyan:['female','shu',4,['fenglue','tanhua']],
|
||||
pal_jushifang:['male','shu',3,['yujia','xiepan','yanshi']],
|
||||
|
@ -84,6 +85,310 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
pal_jiangcheng:'折剑山庄庄主欧阳英的得意门生,但因其蚩尤后人魔族的身份,令他无法被容于人界;再加上人界半魔同族饱受人类迫害,故最终成为净天教教主魔君“姜世离”,毅然肩负起保护同族的重任。',
|
||||
},
|
||||
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:{
|
||||
trigger:{player:'useCardToBegin'},
|
||||
filter:function(event,player){
|
||||
|
@ -3604,6 +3909,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
pal_mingxiu:'明绣',
|
||||
pal_jushifang:'居十方',
|
||||
|
||||
linghuo:'灵火',
|
||||
linghuo_info:'每两轮限一次,在一名其他角色的结束阶段,若其本回合内造成过伤害,你可以对其造成一点火属性伤害',
|
||||
guijin:'归烬',
|
||||
guijin2:'归烬',
|
||||
guijin2_bg:'烬',
|
||||
guijin_info:'每三轮限一次,出牌阶段,你可以观看牌堆顶的4张牌,然后可以将其中任意张牌分配给任意角色,被分到牌的角色跳过下一摸牌阶段,然后将剩余牌以原顺序放回牌堆顶',
|
||||
chengxin:'澄心',
|
||||
chengxin2:'澄心',
|
||||
chengxin2_bg:'心',
|
||||
chengxin_info:'每四轮限一次,当一名角色进入濒死状态时,你可以令将体力值回复至1,然后该角色防止一切伤害直到下一回合结束',
|
||||
tianwu:'天舞',
|
||||
tianwu_info:'每当你使用卡牌指定一名敌方角色为惟一目标,你可以对其施加一个随机的负面效果',
|
||||
liguang:'离光',
|
||||
|
|
|
@ -555,6 +555,7 @@ window.noname_asset_list=[
|
|||
'image/character/ow_wensidun.jpg',
|
||||
'image/character/ow_zhaliya.jpg',
|
||||
'image/character/ow_ana.jpg',
|
||||
'image/character/pal_anu.jpg',
|
||||
'image/character/pal_changqing.jpg',
|
||||
'image/character/pal_hanlingsha.jpg',
|
||||
'image/character/pal_jiangcheng.jpg',
|
||||
|
|
10
game/game.js
|
@ -8904,14 +8904,14 @@
|
|||
else{
|
||||
if(info.logTarget&&info.logLine!==false){
|
||||
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'){
|
||||
player.logSkill(event.skill,info.logTarget(trigger,player));
|
||||
player.logSkill(event.skill,info.logTarget(trigger,player),info.line);
|
||||
}
|
||||
}
|
||||
else{
|
||||
player.logSkill(event.skill);
|
||||
player.logSkill(event.skill,false,info.line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -41364,7 +41364,7 @@
|
|||
var modepack=lib.characterPack['mode_'+get.mode()];
|
||||
if(lib.config.show_favourite&&lib.character[node.name]&&game.players.contains(node)&&
|
||||
(!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;
|
||||
if(lib.config.favouriteCharacter.contains(node.name)){
|
||||
addFavourite.innerHTML='移除收藏';
|
||||
|
@ -41783,7 +41783,7 @@
|
|||
var modepack=lib.characterPack['mode_'+get.mode()];
|
||||
if(lib.config.show_favourite&&
|
||||
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.style.marginBottom='15px';
|
||||
if(lib.config.favouriteCharacter.contains(node.link)){
|
||||
|
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 134 KiB |
Before Width: | Height: | Size: 179 KiB After Width: | Height: | Size: 90 KiB |