1.9.9.5
This commit is contained in:
parent
e5a33a1e49
commit
00e6f4aeef
|
@ -175,6 +175,9 @@ card.sp={
|
||||||
order:7,
|
order:7,
|
||||||
useful:4,
|
useful:4,
|
||||||
value:10,
|
value:10,
|
||||||
|
tag:{
|
||||||
|
draw:2
|
||||||
|
},
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target:function(player,target){
|
||||||
if(target.num('j','lebu')) return 0;
|
if(target.num('j','lebu')) return 0;
|
||||||
|
|
|
@ -901,6 +901,9 @@ card.swd={
|
||||||
order:10,
|
order:10,
|
||||||
value:6,
|
value:6,
|
||||||
useful:1,
|
useful:1,
|
||||||
|
tag:{
|
||||||
|
draw:2
|
||||||
|
},
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target:function(player,target){
|
||||||
if(target==player&&target.num('h',{type:'equip'})) return 2.5;
|
if(target==player&&target.num('h',{type:'equip'})) return 2.5;
|
||||||
|
|
|
@ -375,6 +375,9 @@ card.yunchou={
|
||||||
order:8.5,
|
order:8.5,
|
||||||
value:[6,1],
|
value:[6,1],
|
||||||
useful:[3,1],
|
useful:[3,1],
|
||||||
|
tag:{
|
||||||
|
draw:1
|
||||||
|
},
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target:function(player,target){
|
||||||
var hs=target.get('h');
|
var hs=target.get('h');
|
||||||
|
|
|
@ -3114,8 +3114,9 @@ character.hearth={
|
||||||
'step 0'
|
'step 0'
|
||||||
player.chooseTarget(get.prompt('jiaohui')).ai=function(target){
|
player.chooseTarget(get.prompt('jiaohui')).ai=function(target){
|
||||||
var att=ai.get.attitude(player,target);
|
var att=ai.get.attitude(player,target);
|
||||||
if(att>1&&target.hp<=1){
|
if(att>1){
|
||||||
att+=2;
|
if(target.hp<=1) att+=2;
|
||||||
|
if(target.hp<=2) att++;
|
||||||
}
|
}
|
||||||
return att;
|
return att;
|
||||||
};
|
};
|
||||||
|
@ -3908,11 +3909,13 @@ character.hearth={
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
|
if(!event.isMine()) game.delay(0.5);
|
||||||
|
'step 1'
|
||||||
player.addTempSkill('fengxing2','phaseAfter');
|
player.addTempSkill('fengxing2','phaseAfter');
|
||||||
player.chooseToDiscard('he',get.prompt('fengxing')).set('ai',function(card){
|
player.chooseToDiscard('he',get.prompt('fengxing')).set('ai',function(card){
|
||||||
return 7-ai.get.value(card);
|
return 7-ai.get.value(card);
|
||||||
}).logSkill='fengxing';
|
}).logSkill='fengxing';
|
||||||
'step 1'
|
'step 2'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
player.draw(2);
|
player.draw(2);
|
||||||
}
|
}
|
||||||
|
|
|
@ -384,6 +384,7 @@ window.characterRank={
|
||||||
'hs_lrexxar',
|
'hs_lrexxar',
|
||||||
'huatuo',
|
'huatuo',
|
||||||
'sunhao',
|
'sunhao',
|
||||||
|
'dongyun',
|
||||||
],
|
],
|
||||||
b:[
|
b:[
|
||||||
'diy_liufu',
|
'diy_liufu',
|
||||||
|
@ -420,6 +421,8 @@ window.characterRank={
|
||||||
'swd_jialanduo',
|
'swd_jialanduo',
|
||||||
'swd_jiting',
|
'swd_jiting',
|
||||||
//......
|
//......
|
||||||
|
'kanze',
|
||||||
|
'mazhong',
|
||||||
'zhaoxiang',
|
'zhaoxiang',
|
||||||
'heqi',
|
'heqi',
|
||||||
'sp_machao',
|
'sp_machao',
|
||||||
|
|
182
character/sp.js
182
character/sp.js
|
@ -76,7 +76,7 @@ character.sp={
|
||||||
zhaoxiang:['female','shu',4,['fanghun','fuhan']],
|
zhaoxiang:['female','shu',4,['fanghun','fuhan']],
|
||||||
mazhong:['male','shu',4,['fuman']],
|
mazhong:['male','shu',4,['fuman']],
|
||||||
dongyun:['male','shu',3,['bingzheng','sheyan']],
|
dongyun:['male','shu',3,['bingzheng','sheyan']],
|
||||||
// kanze:['male','wu',3,[]],
|
kanze:['male','wu',3,['xiashu','kuanshi']],
|
||||||
heqi:['male','wu',4,['qizhou','shanxi']],
|
heqi:['male','wu',4,['qizhou','shanxi']],
|
||||||
},
|
},
|
||||||
perfectPair:{
|
perfectPair:{
|
||||||
|
@ -104,6 +104,174 @@ character.sp={
|
||||||
dongbai:['dongzhuo']
|
dongbai:['dongzhuo']
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
kuanshi:{
|
||||||
|
trigger:{player:'phaseEnd'},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseTarget(get.prompt('kuanshi')).set('ai',function(target){
|
||||||
|
if(ai.get.attitude(_status.event.player,target)>0){
|
||||||
|
return 1/Math.sqrt(target.hp+1);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
player.logSkill('kuanshi',target);
|
||||||
|
target.storage.kuanshi2=player;
|
||||||
|
target.addSkill('kuanshi2');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
kuanshi2:{
|
||||||
|
mark:'character',
|
||||||
|
intro:{
|
||||||
|
content:'下一次受到超过1点的伤害时,防止此伤害,然后$跳过下个回合的摸牌阶段'
|
||||||
|
},
|
||||||
|
trigger:{player:'damageBegin'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.num>1;
|
||||||
|
},
|
||||||
|
priority:-11,
|
||||||
|
content:function(){
|
||||||
|
trigger.untrigger();
|
||||||
|
trigger.finish();
|
||||||
|
player.storage.kuanshi2.skip('phaseDraw');
|
||||||
|
player.removeSkill('kuanshi2');
|
||||||
|
},
|
||||||
|
group:'kuanshi2_remove',
|
||||||
|
onremove:true,
|
||||||
|
subSkill:{
|
||||||
|
remove:{
|
||||||
|
trigger:{global:['phaseBegin','dieAfter']},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.player==player.storage.kuanshi2;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.removeSkill('kuanshi2');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
xiashu:{
|
||||||
|
trigger:{player:'phaseUseBegin'},
|
||||||
|
direct:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.num('h')>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var maxval=0;
|
||||||
|
var hs=player.get('h');
|
||||||
|
for(var i=0;i<hs.length;i++){
|
||||||
|
maxval=Math.max(maxval,ai.get.value(hs[i]));
|
||||||
|
}
|
||||||
|
player.chooseTarget(get.prompt('xiashu'),lib.filter.notMe).set('ai',function(target){
|
||||||
|
var player=_status.event.player;
|
||||||
|
var maxval=_status.event.maxval;
|
||||||
|
var dh=target.num('h')-player.num('h');
|
||||||
|
var att=ai.get.attitude(player,target);
|
||||||
|
if(target.hasSkill('qingjian')) return false;
|
||||||
|
if(dh<=0) return 0;
|
||||||
|
if(att>0) return 0.1;
|
||||||
|
if(maxval>=8) return 0;
|
||||||
|
if(att==0) return 0.2;
|
||||||
|
if(dh>=3) return dh;
|
||||||
|
if(dh==2){
|
||||||
|
if(maxval<=7) return dh;
|
||||||
|
}
|
||||||
|
if(maxval<=6) return dh;
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}).set('maxval',maxval);
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
player.logSkill('xiashu',result.targets);
|
||||||
|
event.target=result.targets[0];
|
||||||
|
var hs=player.get('h');
|
||||||
|
event.target.gain(hs,player);
|
||||||
|
player.$give(hs.length,event.target);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
'step 2'
|
||||||
|
var hs=event.target.get('h');
|
||||||
|
if(!hs.length){
|
||||||
|
event.finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
hs.sort(function(a,b){
|
||||||
|
return ai.get.value(b,player,'raw')-ai.get.value(a,player,'raw');
|
||||||
|
});
|
||||||
|
event.target.chooseCard([1,hs.length],'展示至少一张手牌',true).set('ai',function(card){
|
||||||
|
var rand=_status.event.rand;
|
||||||
|
var list=_status.event.list;
|
||||||
|
if(_status.event.att){
|
||||||
|
if(ui.selected.cards.length>=Math.ceil(list.length/2)) return 0;
|
||||||
|
var value=ai.get.value(card);
|
||||||
|
if(_status.event.getParent().player.isHealthy()){
|
||||||
|
value+=(get.tag(card,'damage')?1.5:0)+(get.tag(card,'draw'?2:0));
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
if(ui.selected.cards.length>=Math.floor(list.length/2)) return 0;
|
||||||
|
return (list.indexOf(card)%2==rand)?1:0;
|
||||||
|
}).set('rand',(Math.random()<0.6)?1:0).set('list',hs).set('att',ai.get.attitude(event.target,player)>0);
|
||||||
|
'step 3'
|
||||||
|
event.target.showCards(result.cards);
|
||||||
|
event.cards1=result.cards;
|
||||||
|
event.cards2=event.target.get('h',function(card){
|
||||||
|
return !event.cards1.contains(card);
|
||||||
|
});
|
||||||
|
'step 4'
|
||||||
|
var choice;
|
||||||
|
var num1=event.cards1.length;
|
||||||
|
var num2=event.cards2.length;
|
||||||
|
if(ai.get.attitude(event.target,player)>0&&num1>=num2){
|
||||||
|
choice=0;
|
||||||
|
}
|
||||||
|
else if(num1==num2){
|
||||||
|
choice=(Math.random()<0.45)?0:1;
|
||||||
|
}
|
||||||
|
else if(num1>num2){
|
||||||
|
if(num1-num2==1){
|
||||||
|
choice=(Math.random()<0.6)?0:1;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
choice=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(num2-num1==1){
|
||||||
|
choice=(Math.random()<0.6)?1:0;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
choice=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.chooseControl(function(event,player){
|
||||||
|
return _status.event.choice;
|
||||||
|
}).set('choiceList',['获得'+get.translation(event.target)+'展示的牌',
|
||||||
|
'获得'+get.translation(event.target)+'未展示的牌']).set('choice',choice);
|
||||||
|
'step 5'
|
||||||
|
if(result.index==0){
|
||||||
|
player.gain(event.cards1,target);
|
||||||
|
target.$give(event.cards1,player);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.gain(event.cards2,target);
|
||||||
|
target.$giveAuto(event.cards2,player);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.1
|
||||||
|
}
|
||||||
|
},
|
||||||
sheyan:{
|
sheyan:{
|
||||||
trigger:{global:'useCard'},
|
trigger:{global:'useCard'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
|
@ -135,6 +303,9 @@ character.sp={
|
||||||
'step 2'
|
'step 2'
|
||||||
player.logSkill('sheyan',event.target);
|
player.logSkill('sheyan',event.target);
|
||||||
trigger.targets.push(event.target);
|
trigger.targets.push(event.target);
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.2
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
bingzheng:{
|
bingzheng:{
|
||||||
|
@ -181,8 +352,9 @@ character.sp={
|
||||||
'step 3'
|
'step 3'
|
||||||
if(event.target.num('h')==event.target.hp){
|
if(event.target.num('h')==event.target.hp){
|
||||||
player.draw();
|
player.draw();
|
||||||
var next=player.chooseCard('交给'+get.translation(event.target)+'一张牌','he');
|
var next=player.chooseCard('是否交给'+get.translation(event.target)+'一张牌?','he');
|
||||||
next.set('ai',function(card){
|
next.set('ai',function(card){
|
||||||
|
if(get.position(card)!='h') return 0;
|
||||||
if(_status.event.shan){
|
if(_status.event.shan){
|
||||||
return card.name=='shan'?1:0;
|
return card.name=='shan'?1:0;
|
||||||
}
|
}
|
||||||
|
@ -209,6 +381,7 @@ character.sp={
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
|
expose:0.2,
|
||||||
threaten:1.4
|
threaten:1.4
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -7598,6 +7771,11 @@ character.sp={
|
||||||
dongyun:'董允',
|
dongyun:'董允',
|
||||||
mazhong:'马忠',
|
mazhong:'马忠',
|
||||||
|
|
||||||
|
xiashu:'下书',
|
||||||
|
xiashu_info:'出牌阶段开始时,你可以将所有手牌交给一名其他角色,然后该角色亮出任意数量的手牌(至少一张),令你选择一项:1.获得其亮出的手牌;2.获得其未亮出的手牌',
|
||||||
|
kuanshi:'宽释',
|
||||||
|
kuanshi2:'宽释',
|
||||||
|
kuanshi_info:'结束阶段,你可以选择一名角色。直到你的下回合开始,该角色下一次受到超过1点的伤害时,防止此伤害,然后你跳过下个回合的摸牌阶段',
|
||||||
bingzheng:'秉正',
|
bingzheng:'秉正',
|
||||||
bingzheng_info:'出牌阶段结束时,你可以令手牌数不等于体力值的一名角色弃置一张手牌或摸一张牌。然后若其手牌数等于体力值,你摸一张牌,且可以交给该角色一张牌',
|
bingzheng_info:'出牌阶段结束时,你可以令手牌数不等于体力值的一名角色弃置一张手牌或摸一张牌。然后若其手牌数等于体力值,你摸一张牌,且可以交给该角色一张牌',
|
||||||
sheyan:'舍宴',
|
sheyan:'舍宴',
|
||||||
|
|
12
game/game.js
12
game/game.js
|
@ -6087,7 +6087,7 @@
|
||||||
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).
|
||||||
concat(lib.rank.bp).concat(lib.rank.b).concat(lib.rank.bm).concat(lib.rank.c).concat(lib.rank.d);
|
concat(lib.rank.bp).concat(lib.rank.b).concat(lib.rank.bm).concat(lib.rank.c).concat(lib.rank.d);
|
||||||
for(var i in lib.character){
|
for(var i in lib.character){
|
||||||
if(i!='zuoci'&&i.indexOf('boss_')!=0&&i.indexOf('tafang_')!=0&&!list.contains(i)) console.log(i);
|
if(i!='zuoci'&&i.indexOf('boss_')!=0&&i.indexOf('tafang_')!=0&&!list.contains(i)) console.log(get.translation(i));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
h:function(player){
|
h:function(player){
|
||||||
|
@ -16011,10 +16011,16 @@
|
||||||
lib.filter.targetInRange(card,player,target));
|
lib.filter.targetInRange(card,player,target));
|
||||||
},
|
},
|
||||||
notMe:function(card,player,target){
|
notMe:function(card,player,target){
|
||||||
return (player!=target)
|
return player!=target;
|
||||||
},
|
},
|
||||||
isMe:function(card,player,target){
|
isMe:function(card,player,target){
|
||||||
return (player==target)
|
return player==target;
|
||||||
|
},
|
||||||
|
attackFrom:function(card,player,target){
|
||||||
|
return get.distance(player,target,'attack')<=1;
|
||||||
|
},
|
||||||
|
globalFrom:function(card,player,target){
|
||||||
|
return get.distance(player,target)<=1;
|
||||||
},
|
},
|
||||||
selectCard:function(){
|
selectCard:function(){
|
||||||
return [1,1];
|
return [1,1];
|
||||||
|
|
Loading…
Reference in New Issue