This commit is contained in:
libccy 2016-08-10 19:23:23 +08:00
parent 47e481b7fd
commit 3d483746b8
4 changed files with 264 additions and 23 deletions

View File

@ -1494,6 +1494,7 @@ card.standard={
filter:function(event,player){ filter:function(event,player){
if(event.name!='phaseJudge'){ if(event.name!='phaseJudge'){
if(!event.target) return false; if(!event.target) return false;
if(event.player.hasSkillTag('playernowuxie')) return false;
if(get.type(event.card)!='trick'&&!get.info(event.card).wuxieable) return false; if(get.type(event.card)!='trick'&&!get.info(event.card).wuxieable) return false;
} }
return true; return true;

View File

@ -3052,7 +3052,8 @@ character.shenhua={
}, },
huangtian:{ huangtian:{
unique:true, unique:true,
global:'huangtian2' global:'huangtian2',
zhuSkill:true
}, },
huangtian2:{ huangtian2:{
audio:2, audio:2,

View File

@ -82,8 +82,242 @@ character.sp={
caohong:['caoren'], caohong:['caoren'],
daxiaoqiao:['zhouyu','sunce'], daxiaoqiao:['zhouyu','sunce'],
cuiyan:['caocao'], cuiyan:['caocao'],
guansuo:['guanyu'],
}, },
skill:{ skill:{
zhenlue:{
mod:{
targetEnabled:function(card,player,target){
if(get.type(card)=='delay'&&player!=target){
return false;
}
}
},
ai:{
playernowuxie:true
}
},
jianshu:{
unique:true,
enable:'phaseUse',
animationColor:'thunder',
skillAnimation:'epic',
filter:function(event,player){
return !player.storage.jianshu&&player.num('h',{color:'black'})>0;
},
init:function(player){
player.storage.jianshu=false;
},
filterTarget:function(card,player,target){
if(ui.selected.targets.length){
return target.num('h')>0&&target.distanceTo(ui.selected.targets[0])<=1;
}
return true;
},
filterCard:{color:'black'},
mark:true,
discard:false,
prepare:function(cards,player,targets){
player.$give(cards,targets[0]);
},
check:function(card){return 6-ai.get.value(card);},
selectTarget:2,
multitarget:true,
content:function(){
'step 0'
player.unmark('jianshu');
player.storage.jianshu=true;
targets[0].gain(cards);
'step 1'
targets[0].chooseToCompare(targets[1]);
'step 2'
if(result.bool){
targets[0].chooseToDiscard('he',2,true);
targets[1].loseHp();
}
else{
targets[1].chooseToDiscard('he',2,true);
targets[0].loseHp();
}
},
intro:{
content:'limited'
},
ai:{
expose:0.4,
order:4,
result:{
target:function(player,target){
if(player.hasUnknown()) return 0;
if(ui.selected.targets.length) return -1;
return -0.5;
}
}
}
},
yongdi:{
unique:true,
trigger:{player:'damageEnd'},
animationColor:'fire',
skillAnimation:'legend',
filter:function(event,player){
return !player.storage.yongdi;
},
init:function(player){
player.storage.yongdi=false;
},
mark:true,
direct:true,
content:function(){
'step 0'
player.chooseTarget('是否发动【拥嫡】?',function(card,player,target){
return target.sex=='male';
}).set('ai',function(target){
if(!_status.event.goon) return 0;
var att=ai.get.attitude(player,target);
if(att<=1) return 0;
if(target.disabledSkills.zhu&&!target.isZhu) return att*2;
return att;
}).set('goon',player.hasUnknown());
},
ai:{
expose:0.2
}
},
gushe:{
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return target!=player&&target.num('h')>0;
},
selectTarget:[1,3],
filter:function(event,player){
return player.num('h')>0;
},
multitarget:true,
multiline:true,
content:function(){
player.chooseToCompare(targets).callback=lib.skill.gushe.callback;
},
init:function(player){
player.storage.gushe=0;
},
intro:{
name:'饶舌',
content:'mark'
},
chat:['粗鄙之语','天地不容','谄谀之臣','皓首匹夫,苍髯老贼','二臣贼子','断脊之犬','我从未见过有如此厚顔无耻之人!'],
callback:function(){
'step 0'
event.num1=event.card1.number;
event.num2=event.card2.number;
if(player.hasSkill('jici')&&event.num1<=player.storage.gushe){
player.chooseBool('是否发动【激词】?');
}
else{
event.goto(2);
}
'step 1'
if(result.bool){
if(event.num1<player.storage.gushe){
event.num1+=player.storage.gushe;
}
else{
player.getStat().skill.gushe--;
}
}
'step 2'
if(event.num1>event.num2){
target.chooseToDiscard('he','弃置一张牌,或令'+get.translation(player)+'摸一张牌').set('ai',function(card){
return 6-ai.get.value(card);
});
}
else{
target.chat(lib.skill.gushe.chat[player.storage.gushe]);
game.delay();
player.storage.gushe++;
player.markSkill('gushe');
if(player.storage.gushe>=7){
player.die();
}
else{
player.chooseToDiscard('弃置一张牌,或摸一张牌').set('ai',function(){return -1;});
}
}
'step 3'
if(!result.bool){
player.draw();
}
},
ai:{
order:7,
result:{
target:function(player,target){
var num=0;
for(var i=0;i<game.players.length;i++){
if(ai.get.attitude(player,game.players[i])<0&&game.players[i]!=player&&game.players[i].num('h')){
num++;
}
}
if(num>3) num=3;
var hs=player.get('h');
for(var i=0;i<hs.length;i++){
if(ai.get.value(hs[i])<=6){
switch(hs[i].number){
case 13:return -1;
case 12:if(player.storage.gushe+num<=8) return -1;break;
case 11:if(player.storage.gushe+num<=7) return -1;break;
default:if(hs[i].number>5&&player.storage.gushe+num<=6) return -1;
}
}
}
return 0;
},
}
}
},
jici:{},
juesi:{
enable:'phaseUse',
filter:function(event,player){
return player.num('h','sha')>0;
},
filterTarget:function(card,player,target){
return target!=player&&target.num('he')>0;
},
filterCard:{name:'sha'},
content:function(){
'step 0'
target.chooseToDiscard('he',true);
'step 1'
if(target.hp>=player.hp&&result.bool&&result.cards[0].name!='sha'){
player.useCard({name:'juedou'},target);
}
},
ai:{
order:2,
result:{
target:function(player,target){
if(ai.get.effect(target,{name:'juedou'},player,player)<=0){
return 0;
}
if(target.hp<player.hp){
if(player.num('h')>player.hp) return -0.1;
return 0;
}
var hs1=target.get('h','sha');
var hs2=player.get('h','sha');
if(hs1.length-1>hs2.length+1){
return 0;
}
if(hs1.length-1>hs2.length&&(!hs2.length||hs1[0].number>hs2[0].number)){
return 0;
}
return -1;
}
}
}
},
shefu:{ shefu:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseEnd'},
direct:true, direct:true,
@ -815,13 +1049,13 @@ character.sp={
else{ else{
player.chooseTarget('选择一个出杀目标',function(card,player,target){ player.chooseTarget('选择一个出杀目标',function(card,player,target){
return lib.filter.targetEnabled({name:'sha'},player,target); return lib.filter.targetEnabled({name:'sha'},player,target);
}).set('ai',function(target){ },true).set('ai',function(target){
return ai.get.effect(target,{name:'sha'},_status.event.player); return ai.get.effect(target,{name:'sha'},_status.event.player);
}); });
event.sha=true; event.sha=true;
} }
'step 2' 'step 2'
if(event.sha){ if(event.sha&&result.targets&&result.targets.length){
player.useCard({name:'sha'},result.targets); player.useCard({name:'sha'},result.targets);
} }
} }
@ -959,7 +1193,7 @@ character.sp={
'step 0' 'step 0'
player.chooseToCompare(target); player.chooseToCompare(target);
'step 1' 'step 1'
if(result.bool){ if(result.bool&&result.target){
event.type=true; event.type=true;
event.card=result.target; event.card=result.target;
player.chooseTarget('将'+get.translation(result.target)+'交给一名角色',function(card,player,target){ player.chooseTarget('将'+get.translation(result.target)+'交给一名角色',function(card,player,target){
@ -5976,16 +6210,18 @@ character.sp={
guansuo:'关索', guansuo:'关索',
tadun:'蹋顿', tadun:'蹋顿',
yanbaihu:'严白虎', yanbaihu:'严白虎',
wanglang:'王朗',
juesi:'决死', juesi:'决死',
juesi_info:'出牌阶段,你可以弃置一张杀并选择你攻击范围内的一名有牌的其他角色,该角色弃置一张牌,然后若弃置的牌不是杀且你的体力值不大于该角色,你视为对其使用决斗', juesi_info:'出牌阶段,你可以弃置一张杀并选择你攻击范围内的一名有牌的其他角色,该角色弃置一张牌,然后若弃置的牌不是杀且你的体力值不大于该角色,你视为对其使用决斗',
zhenlue:'缜略', zhenlue:'缜略',
zhenlue_info:'锁定技,你使用的非延时类锦囊牌不能被无懈可击响应;你不能被选择为延时类锦囊牌的目标', zhenlue_info:'锁定技,你使用的非延时类锦囊牌不能被无懈可击响应;你不能成为其他角色的延时类锦囊的目标',
jianshu:'间书', jianshu:'间书',
jianshu_info:'限定技,出牌阶段,你可以将一张黑色手牌交给一名其他角色,并选择一名攻击范围内含有其的另一名其他角色,然后令这两名角色拼点,赢的角色弃置两张牌,没赢的角色失去一点体力', jianshu_info:'限定技,出牌阶段,你可以将一张黑色手牌交给一名其他角色,并选择一名攻击范围内含有其的另一名其他角色,然后令这两名角色拼点,赢的角色弃置两张牌,没赢的角色失去一点体力',
yongdi:'拥嫡', yongdi:'拥嫡',
yongdi_info:'限定技,当你受到伤害后,你可令一名其他男性角色增加一点体力上限,然后若该角色的武将牌上有主公技且其不为主公,其获得此主公技', yongdi_info:'限定技,当你受到伤害后,你可令一名其他男性角色增加一点体力上限,然后若该角色的武将牌上有主公技且其不为主公,其获得此主公技',
gushe:'鼓舌', gushe:'鼓舌',
gushe_bg:'舌',
gushe_info:'出牌阶段限一次你可以用一张手牌与至多三名角色同时拼点然后依次结算拼点结果没赢的角色选择一项1.弃置一张牌2.令你摸一张牌。若拼点没赢的角色是你你需先获得一个“饶舌”标记你有7个饶舌标记时你死亡', gushe_info:'出牌阶段限一次你可以用一张手牌与至多三名角色同时拼点然后依次结算拼点结果没赢的角色选择一项1.弃置一张牌2.令你摸一张牌。若拼点没赢的角色是你你需先获得一个“饶舌”标记你有7个饶舌标记时你死亡',
jici:'激词', jici:'激词',
jici_info:'当你发动“鼓舌”拼点的牌亮出后若点数小于X你可令点数+X若点数等于X你可令你本回合发动“鼓舌”的次数上限+1X为你“饶舌”标记的数量', jici_info:'当你发动“鼓舌”拼点的牌亮出后若点数小于X你可令点数+X若点数等于X你可令你本回合发动“鼓舌”的次数上限+1X为你“饶舌”标记的数量',

View File

@ -61,6 +61,7 @@
devURL:'https://rawgit.com/libccy/noname/master/', devURL:'https://rawgit.com/libccy/noname/master/',
assetURL:'', assetURL:'',
hallURL:'websha.cn', hallURL:'websha.cn',
reserveSkillName:['others'],
changeLog:[], changeLog:[],
updates:[], updates:[],
canvasUpdates:[], canvasUpdates:[],
@ -198,10 +199,6 @@
restart:true, restart:true,
unfrequent:true, unfrequent:true,
}, },
change_skin:{
name:'双击换肤',
init:true
},
swipe:{ swipe:{
name:'滑动手势', name:'滑动手势',
init:true, init:true,
@ -647,6 +644,10 @@
} }
}, },
}, },
change_skin:{
name:'双击换肤',
init:true
},
card_style:{ card_style:{
name:'卡牌样式', name:'卡牌样式',
init:'default', init:'default',
@ -5210,10 +5211,6 @@
game.log(player,'的拼点牌为',event.card1); game.log(player,'的拼点牌为',event.card1);
"step 3" "step 3"
if(event.list.length){ if(event.list.length){
game.broadcastAll(function(){
ui.arena.classList.add('thrownhighlight');
});
game.addVideo('thrownhighlight1');
event.current=event.list.shift(); event.current=event.list.shift();
event.current.animate('target'); event.current.animate('target');
player.animate('target'); player.animate('target');
@ -5227,6 +5224,10 @@
} }
"step 4" "step 4"
if(event.callback){ if(event.callback){
game.broadcastAll(function(card1,card2){
if(card1.clone) card1.clone.style.opacity=0.5;
if(card2.clone) card2.clone.style.opacity=0.5;
},event.card1,event.card2);
var next=game.createEvent('compareMultiple'); var next=game.createEvent('compareMultiple');
next.player=player; next.player=player;
next.target=event.current; next.target=event.current;
@ -5235,11 +5236,7 @@
next.content=event.callback; next.content=event.callback;
} }
"step 5" "step 5"
game.broadcastAll(function(id){ game.broadcastAll(ui.clear);
ui.arena.classList.remove('thrownhighlight');
ui.clear();
});
game.addVideo('thrownhighlight2');
event.goto(3); event.goto(3);
}, },
chooseToCompare:function(){ chooseToCompare:function(){
@ -10168,6 +10165,12 @@
return true; return true;
} }
return false; return false;
},
distanceTo:function(target,method){
return get.distance(this,target,method);
},
distanceFrom:function(target,method){
return get.distance(target,this,method);
}, },
hasSkill:function(skill){ hasSkill:function(skill){
return game.expandSkills(this.get('s')).contains(skill); return game.expandSkills(this.get('s')).contains(skill);
@ -23241,14 +23244,14 @@
name=name[0]; name=name[0];
if(currentButton){ if(currentButton){
if(currentButton.link!=name){ if(currentButton.link!=name){
if(lib.skill[name]||page.content.pack.skill[name]){ if(lib.reserveSkillName.contains(name)||lib.skill[name]||page.content.pack.skill[name]){
editnode.classList.add('disabled'); editnode.classList.add('disabled');
return; return;
} }
} }
} }
else{ else{
if(lib.skill[name]||page.content.pack.skill[name]){ if(lib.reserveSkillName.contains(name)||lib.skill[name]||page.content.pack.skill[name]){
editnode.classList.add('disabled'); editnode.classList.add('disabled');
return; return;
} }
@ -23583,7 +23586,7 @@
name=name[0]; name=name[0];
if(currentButton){ if(currentButton){
if(currentButton.link!=name){ if(currentButton.link!=name){
if(lib.skill[name]||page.content.pack.skill[name]){ if(lib.reserveSkillName.contains(name)||lib.skill[name]||page.content.pack.skill[name]){
alert('技能名与现有技能重复,请更改\n提示技能名格式为id+|+中文名其中id必须惟一'); alert('技能名与现有技能重复,请更改\n提示技能名格式为id+|+中文名其中id必须惟一');
return; return;
} }
@ -23594,7 +23597,7 @@
} }
} }
else{ else{
if(lib.skill[name]||page.content.pack.skill[name]){ if(lib.reserveSkillName.contains(name)||lib.skill[name]||page.content.pack.skill[name]){
alert('技能名与现有技能重复,请更改\n提示技能名格式为id+|+中文名其中id必须惟一'); alert('技能名与现有技能重复,请更改\n提示技能名格式为id+|+中文名其中id必须惟一');
return; return;
} }