削弱部分DIY武将
This commit is contained in:
parent
94656f4856
commit
f6a068e43e
|
@ -565,7 +565,7 @@ character.extra={
|
|||
if(target.isMin()) return 0;
|
||||
if(target.skills.contains('biantian2')) return 0;
|
||||
var att=ai.get.attitude(player,target);
|
||||
if(att>=5){
|
||||
if(att>=4){
|
||||
if(target.hp==1&&target.maxHp>2) return att;
|
||||
if(target.hp==2&&target.maxHp>3&&target.num('he')==0) return att*0.7;
|
||||
return 0;
|
||||
|
|
|
@ -584,9 +584,13 @@ character.gujian={
|
|||
filterTarget:function(card,player,target){
|
||||
return player!=target&&player.next!=target&&player.canUse('sha',target,false);
|
||||
},
|
||||
filter:function(event,player){
|
||||
var min=Math.max(1,player.maxHp-player.hp);
|
||||
return lib.filter.filterCard({name:'sha'},player);
|
||||
},
|
||||
content:function(){
|
||||
game.swapSeat(player,target,true,true);
|
||||
player.useCard({name:'sha'},target,false);
|
||||
player.useCard({name:'sha'},target);
|
||||
},
|
||||
ai:{
|
||||
result:{
|
||||
|
@ -1023,7 +1027,7 @@ character.gujian={
|
|||
boyun2:'拨云',
|
||||
boyun_info:'在你的回合内,你可以弃置一张装备牌,并展示牌堆顶的一张牌,若其为装备牌,你须将其交给任意一张角色并对其造成一点伤害,否则你摸一张牌',
|
||||
jizhan:'疾战',
|
||||
jizhan_info:'出牌阶段,你可以将移动到任意一名角色的前一位,视为对其使用了一张杀,每阶段限一次',
|
||||
jizhan_info:'出牌阶段限一次,你可以将移动到任意一名角色的前一位,视为对其使用了一张杀',
|
||||
qianjun:'千军',
|
||||
qianjun_info:'每当你使用一张杀,你可以弃置一张非基本牌,令距离目标1以内的所有角色成为额外目标',
|
||||
xuanning:'玄凝',
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
'use strict';
|
||||
character.hearth={
|
||||
character:{
|
||||
// hs_jaina:['female','wei',3,[],['fullskin']],
|
||||
|
@ -38,9 +39,41 @@ character.hearth={
|
|||
}
|
||||
},
|
||||
tzhenji:{
|
||||
trigger:{player:'respond'},
|
||||
filter:function(event,player){
|
||||
return event.card.name=='shan';
|
||||
trigger:{player:'discardAfter'},
|
||||
direct:true,
|
||||
filter:function(event){
|
||||
if(event.cards){
|
||||
for(var i=0;i<event.cards.length;i++){
|
||||
if(get.color(event.cards[i])=='black') return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
"step 0";
|
||||
player.chooseTarget('是否发动【震击】?').ai=function(target){
|
||||
return ai.get.damageEffect(target,player,player,'thunder')-(target.num('he')?1:0);
|
||||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
game.delay(0.5);
|
||||
var target=result.targets[0];
|
||||
player.logSkill('tzhenji',target,'thunder');
|
||||
target.damage('thunder',Math.floor(Math.random()*2));
|
||||
var cs=target.get('he');
|
||||
if(cs.length){
|
||||
target.discard(cs.randomGet());
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
threaten:0.7
|
||||
}
|
||||
},
|
||||
tzhenji_old:{
|
||||
trigger:{player:['useCard','respondEnd']},
|
||||
filter:function(event){
|
||||
return get.suit(event.card)=='spade';
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
|
@ -52,26 +85,32 @@ character.hearth={
|
|||
if(result.bool){
|
||||
player.logSkill('tzhenji',result.targets,'thunder');
|
||||
event.target=result.targets[0];
|
||||
event.target.judge(function(card){
|
||||
if(get.color(card)=='black') return -2;
|
||||
return 0;
|
||||
});
|
||||
event.target.judge();
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
"step 2"
|
||||
if(result.bool==false){
|
||||
if(result.color=='red'){
|
||||
event.target.damage('fire');
|
||||
}
|
||||
else{
|
||||
event.target.damage('thunder');
|
||||
var cs=event.target.get('he');
|
||||
if(cs.length){
|
||||
event.target.discard(cs.randomGet());
|
||||
}
|
||||
cs=player.get('he');
|
||||
if(cs.length){
|
||||
player.discard(cs.randomGet());
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card,player,target,current){
|
||||
expose:0.2,
|
||||
threaten:1.2,
|
||||
effect_old:{
|
||||
target:function(card,player,target){
|
||||
if(get.tag(card,'respondShan')){
|
||||
var hastarget=false;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
|
@ -91,7 +130,7 @@ character.hearth={
|
|||
return [0,0];
|
||||
}
|
||||
if(nh==0){
|
||||
return [1.5,0];
|
||||
return 1.5;
|
||||
}
|
||||
return [1,0.05];
|
||||
}
|
||||
|
@ -135,7 +174,7 @@ character.hearth={
|
|||
usable:1,
|
||||
filterCard:true,
|
||||
check:function(card){
|
||||
return 8-ai.get.value(card);
|
||||
return 6-ai.get.value(card);
|
||||
},
|
||||
filter:function(event,player){
|
||||
var rand=['tuteng1','tuteng2','tuteng3','tuteng4'];
|
||||
|
@ -213,6 +252,9 @@ character.hearth={
|
|||
intro:{
|
||||
content:'每当你造成一次伤害,你摸一张牌'
|
||||
},
|
||||
filter:function(event){
|
||||
return event.num>0;
|
||||
},
|
||||
trigger:{source:'damageAfter'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
|
@ -226,7 +268,7 @@ character.hearth={
|
|||
},
|
||||
trigger:{player:'damageBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
filter:function(event){
|
||||
return event.num>0;
|
||||
},
|
||||
content:function(){
|
||||
|
@ -240,7 +282,7 @@ character.hearth={
|
|||
},
|
||||
trigger:{source:'damageBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
filter:function(event){
|
||||
return event.card&&get.type(event.card)=='trick';
|
||||
},
|
||||
content:function(){
|
||||
|
@ -322,7 +364,7 @@ character.hearth={
|
|||
tuteng3:'石爪图腾',
|
||||
tuteng4:'空气之怒图腾',
|
||||
tzhenji:'震击',
|
||||
tzhenji_info:'每当你使用或打出一张闪,可以指定一名角色进行判定,若结果为黑色,其受到一点雷电伤害并随机弃置一张牌',
|
||||
tzhenji_info:'每当你因弃置而失去黑色牌,可对一名角色造成0~1点雷电伤害,然后随机弃置其一张牌',
|
||||
fenliu:'分流',
|
||||
fenliu_info:'出牌阶段限一次,你可以失去一点体力并获得3张牌',
|
||||
hongxi:'虹吸',
|
||||
|
|
|
@ -31,14 +31,14 @@ character.swd={
|
|||
swd_xiarou:['female','shu',3,['xianghui','huiqi'],['fullskin']],
|
||||
swd_moye:['female','wu',3,['rexue','liuli'],['fullskin']],
|
||||
|
||||
swd_zhaoyun:['male','shu',4,['ningjian','pozhen','tanlin'],['fullskin']],
|
||||
swd_zhaoyun:['male','shu',4,['longdan','pozhen','tanlin'],['fullskin']],
|
||||
swd_hengai:['female','shu',3,['funiao','ningxian','lingbo'],['fullskin']],
|
||||
swd_duanmeng:['female','shu',4,['jizhan','lieren'],['fullskin']],
|
||||
swd_jiangwu:['male','shu',4,['yijue','dangping'],['fullskin']],
|
||||
swd_tuwei:['male','shu',3,['zhanlu','susheng'],['fullskin']],
|
||||
swd_yeyaxi:['female','shu',3,['rexue','huopu'],['fullskin']],
|
||||
|
||||
swd_muyun:['male','wei',4,['ningjian','polang','jikong'],['fullskin']],
|
||||
swd_muyun:['male','wei',4,['zhuhai','polang','jikong'],['fullskin']],
|
||||
swd_lanyin:['female','wei',3,['xingdian','yulin','luomei'],['fullskin']],
|
||||
swd_zhiyin:['female','wei',3,['xuehuang','ningshuang','zhuyu'],['fullskin']],
|
||||
swd_qiner:['female','wei',3,['huanyin','tianhuo','xuanzhou'],['fullskin']],
|
||||
|
@ -656,10 +656,10 @@ character.swd={
|
|||
},
|
||||
lianda2:{},
|
||||
huiqi:{
|
||||
trigger:{player:'changeHp'},
|
||||
trigger:{player:'damageEnd'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return event.num<0&&player.hp<player.maxHp;
|
||||
return player.hp<player.maxHp;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
|
@ -682,7 +682,7 @@ character.swd={
|
|||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('huiqi',result.targets);
|
||||
result.targets[0].draw(Math.min(3,player.maxHp-player.hp));
|
||||
result.targets[0].draw(player.maxHp-player.hp);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -3715,43 +3715,70 @@ character.swd={
|
|||
}
|
||||
},
|
||||
liaoyuan:{
|
||||
trigger:{player:'shaAfter'},
|
||||
trigger:{player:'shaBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
if(get.itemtype(event.cards)!='cards') return false;
|
||||
if(player.num('he',{suit:get.suit(event.cards)})>0){
|
||||
for(var i=0;i<event.targets.length;i++){
|
||||
if(event.targets[i].isAlive()) return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return player.num('he',{suit:get.suit(event.cards)})>0;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.storage.liaoyuan=0;
|
||||
event.num=0;
|
||||
event.cards=[];
|
||||
"step 1"
|
||||
var suit=get.suit(trigger.cards);
|
||||
player.chooseCard('he','是否将一张'+get.translation(suit)+'牌当杀对'+
|
||||
get.translation(trigger.targets)+'使用?',{suit:suit}).ai=function(card){
|
||||
var eff=0;
|
||||
for(var i=0;i<trigger.targets.length;i++){
|
||||
eff+=ai.get.effect(trigger.targets[i],{name:'sha'},player,player);
|
||||
}
|
||||
if(eff>0){
|
||||
event.suit=suit;
|
||||
player.chooseCard('he','是否发动【燎原】?',{suit:suit}).ai=function(card){
|
||||
if(ai.get.attitude(player,trigger.target)>=0) return 0;
|
||||
if(ai.get.effect(trigger.target,{name:'sha'},player,player)>0){
|
||||
return 7-ai.get.value(card);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
"step 1"
|
||||
"step 2"
|
||||
if(result.bool){
|
||||
player.logSkill('liaoyuan');
|
||||
if(result.cards[0].name=='sha'){
|
||||
player.useCard(result.cards,trigger.targets);
|
||||
if(event.num==0){
|
||||
player.logSkill('liaoyuan');
|
||||
}
|
||||
else{
|
||||
player.useCard({name:'sha'},result.cards,trigger.targets);
|
||||
player.discard(result.cards);
|
||||
event.num++;
|
||||
if(player.num('he',{suit:event.suit})>1){
|
||||
event.goto(1);
|
||||
}
|
||||
}
|
||||
"step 3"
|
||||
if(event.num){
|
||||
trigger.target.chooseToRespond({name:'shan'}).ai=ai.get.unuseful2;
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
"step 4"
|
||||
if(result.bool){
|
||||
event.num--;
|
||||
event.goto(3);
|
||||
}
|
||||
else{
|
||||
trigger.untrigger();
|
||||
trigger.directHit=true;
|
||||
player.storage.liaoyuan=event.num;
|
||||
}
|
||||
},
|
||||
group:'liaoyuan2'
|
||||
},
|
||||
liaoyuan2:{
|
||||
trigger:{source:'damageBegin'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
filter:function(event,player){
|
||||
return event.card&&event.card.name=='sha'&&player.storage.liaoyuan>0;
|
||||
},
|
||||
content:function(){
|
||||
trigger.num+=player.storage.liaoyuan;
|
||||
player.storage.liaoyuan>0;
|
||||
}
|
||||
},
|
||||
|
||||
dunxing:{
|
||||
mod:{
|
||||
targetEnabled:function(card,player,target){
|
||||
|
@ -4096,7 +4123,9 @@ character.swd={
|
|||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('he','是否发动【唤魂】?').ai=function(card){
|
||||
player.chooseToDiscard('he','是否发动【唤魂】?',function(card){
|
||||
return get.color(card)=='red';
|
||||
}).ai=function(card){
|
||||
if(ai.get.attitude(player,trigger.player)>0){
|
||||
return 8-ai.get.value(card);
|
||||
}
|
||||
|
@ -7595,7 +7624,7 @@ character.swd={
|
|||
xianghui:'祥晖',
|
||||
xianghui_info:'出牌阶段限一次,你可以弃置一张红色手牌,然后令场上体力值最少的角色各回复一点体力',
|
||||
huiqi:'回气',
|
||||
huiqi_info:'每当你的体力值减少,可令一名角色摸X张牌,X为你已损失的体力值且最多为3',
|
||||
huiqi_info:'每当你受到一次伤害,可令一名角色摸X张牌,X为你已损失的体力值',
|
||||
toudan:'投弹',
|
||||
toudan_info:'出牌阶段限一次,你可以弃置一张黑桃牌对一名其他角色造成一点火焰伤害,然后令距离该角色1以内的所有角色弃置一张牌',
|
||||
shending:'神丁',
|
||||
|
@ -7922,10 +7951,10 @@ character.swd={
|
|||
huanyin_info:'锁定技,每当你成为其他角色的卡牌的目标时,你进行一次判定,若为黑桃则取消之,若为红桃你摸一张牌',
|
||||
luomu_info:'锁定技,每当你造成伤害时,受伤害角色随机弃置一张牌',
|
||||
poxing_info:'锁定技,每当你即将造成伤害,若目标的体力值大于你,你令伤害+1',
|
||||
liaoyuan_info:'每当你使用一张杀结算完毕后,可以将一张与此牌花色相同的牌当杀对目标使用',
|
||||
liaoyuan_info:'每当你使用一张杀指定目标后,你可以弃置任意张与此杀花色相同的牌,若如此做,目标需额外打出等量的闪,否则此杀不可闪避且伤害+X,X为少打出的闪的个数',
|
||||
yuhuo_info:'限定技,濒死阶段,你可以重置角色牌,减少一点体力上限,然后将体力回复至体力上限',
|
||||
yishan_info:'每当你受到一次伤害,你可以重新获得最近失去的两张牌',
|
||||
huanhun_info:'当一名角色进入濒死状态时,你可以弃置一张牌令其进行一次判定,若结果为红色,其回复一点体力',
|
||||
huanhun_info:'当一名角色进入濒死状态时,你可以弃置一张红色牌并令其进行一次判定,若结果为红色,其回复一点体力',
|
||||
daixing_info:'回合结束阶段,你可以弃置至多X张牌,并抵挡等量伤害,效果在下一个回合结束阶段失效,X为现存角色数-1',
|
||||
swd_wuxie_info:'锁定技,你不能成为其他角色的延时锦囊的目标',
|
||||
qingcheng_info:'回合开始阶段,你可以进行判定,若为红色则可以继续判定,判定结束后将判定成功的牌收入手牌',
|
||||
|
|
|
@ -135,6 +135,9 @@ character.woods={
|
|||
event.player.classList.contains('dead')==false&&
|
||||
event.player.num('h')&&player.num('h'));
|
||||
},
|
||||
check:function(event,player){
|
||||
return ai.get.attitude(player,event.player)<=0;
|
||||
},
|
||||
priority:5,
|
||||
content:function(){
|
||||
"step 0"
|
||||
|
|
|
@ -31,18 +31,18 @@ character.xianjian={
|
|||
},
|
||||
skill:{
|
||||
xuanyan:{
|
||||
trigger:{source:'damageBefore'},
|
||||
forced:true,
|
||||
priority:5,
|
||||
check:function(event,player){
|
||||
return player.hp>3;
|
||||
},
|
||||
filter:function(event){
|
||||
return event.card&&get.color(event.card)=='red';
|
||||
},
|
||||
content:function(){
|
||||
trigger.nature='fire';
|
||||
},
|
||||
// trigger:{source:'damageBefore'},
|
||||
// forced:true,
|
||||
// priority:5,
|
||||
// check:function(event,player){
|
||||
// return player.hp>3;
|
||||
// },
|
||||
// filter:function(event){
|
||||
// return event.card&&get.color(event.card)=='red';
|
||||
// },
|
||||
// content:function(){
|
||||
// trigger.nature='fire';
|
||||
// },
|
||||
group:['xuanyan2','xuanyan3']
|
||||
},
|
||||
xuanyan2:{
|
||||
|
@ -1327,7 +1327,7 @@ character.xianjian={
|
|||
|
||||
xuanyan:'玄炎',
|
||||
xuanyan2:'玄炎',
|
||||
xuanyan_info:'锁定技,你的红色牌造成的伤害均视为火属性;你的火属性伤害+1;你造成火属性后流失1点体力',
|
||||
xuanyan_info:'锁定技,你的火属性伤害+1;你造成火属性伤害后流失1点体力',
|
||||
ningbin:'凝冰',
|
||||
ningbin_info:'锁定技,每当你造成或受到1次雷属性伤害,你回复1点体力',
|
||||
fenxin:'焚心',
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
character.xswd={
|
||||
character:{
|
||||
swd_wushi:['male','wei',3,['zhoufu','yingbin','xuying']],
|
||||
swd_lanmoshen:['female','wei',4,['bingjian','lieren'],['fullskin']],
|
||||
swd_lanmoshen:['female','wei',3,['bingjian','lieren'],['fullskin']],
|
||||
swd_huanglei:['male','qun',3,['jilve','gongshen'],['fullskin']],
|
||||
swd_libai:['female','qun',3,['miaobi','zhexian']],
|
||||
swd_kendi:['male','qun',3,['guanxing','jianyan']],
|
||||
|
|
22
game/game.js
22
game/game.js
|
@ -1636,8 +1636,25 @@ window.play={};
|
|||
}
|
||||
}
|
||||
player.changeHp(-num,false);
|
||||
player.popup(-num,event.nature);
|
||||
player.$damage(source);
|
||||
if(player._damagetimeout!=source){
|
||||
player.$damage(source);
|
||||
player._damagetimeout=source;
|
||||
setTimeout(function(){
|
||||
delete player._damagetimeout;
|
||||
},500);
|
||||
}
|
||||
if(player._damagepopup){
|
||||
player._damagepopup-=num;
|
||||
player._damagenature=event.nature;
|
||||
}
|
||||
else{
|
||||
player._damagepopup=-num;
|
||||
setTimeout(function(){
|
||||
player.popup(player._damagepopup,player._damagenature);
|
||||
delete player._damagepopup;
|
||||
delete player._damagenature;
|
||||
},300);
|
||||
}
|
||||
event.trigger('damage');
|
||||
"step 1"
|
||||
if(player.hp<=0&&player.isAlive()){
|
||||
|
@ -3517,6 +3534,7 @@ window.play={};
|
|||
var that=this;
|
||||
setTimeout(function(){that._popup();},1000);
|
||||
}
|
||||
return node;
|
||||
},
|
||||
_popup:function(){
|
||||
if(this.popups.length){
|
||||
|
|
Loading…
Reference in New Issue