This commit is contained in:
Spmario233 2019-11-07 22:42:15 +08:00 committed by GitHub
parent 3cdf2e7718
commit 2e6567cc6e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 167 additions and 20 deletions

View File

@ -1414,7 +1414,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 4"
player.chooseControl("2点","3点").set('prompt','请选择伤害点数').set('ai',function(){
return "3点";
}).forceDie=true;
}).set('forceDie',true);
"step 5"
targets[0].damage('fire',result.control=="2点"?2:3,'nocard');
},

View File

@ -410,14 +410,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
filter:function (event,player){
if(event._notrigger.contains(event.player)) return false;
return event.card&&event.card.name=='sha'&&event.player.isAlive()&&event.player.countGainableCards(player,'he')>0;
return event.card&&event.card.name=='sha'&&event.player.isAlive()&&event.player.countGainableCards(player,'hej')>0;
},
direct:true,
content:function (){
'step 0'
player.gainPlayerCard(get.prompt2('new_liyu',trigger.player),trigger.player,'he','visibleMove').set('ai',function(card){
player.gainPlayerCard(get.prompt2('new_liyu',trigger.player),trigger.player,'hej','visibleMove').set('ai',function(card){
var player=_status.event.player;
var evt=_status.event.target;
if(get.attitude(player,evt)>0&&get.position(card)=='j') return 4+get.value(card);
if(get.type(card)=='equip'){
if(get.attitude(player,evt)>0&&game.hasPlayer(function(current){
return (player.canUse({name:'juedou'},current)&&current!=evt.target&&get.effect(current,{name:'juedou'},player,player)>2);

View File

@ -35,7 +35,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_yuanshao:['male','qun',4,['luanji','xueyi'],['zhu']],
re_pangde:['male','qun',4,['mashu','jianchu']],
menghuo:['male','shu',4,['huoshou','zaiqi']],
menghuo:['male','shu',4,['huoshou','zaiqixx']],
zhurong:['female','shu',4,['juxiang','lieren']],
caopi:['male','wei',3,['xingshang','fangzhu','songwei'],['zhu']],
re_xuhuang:['male','wei',4,['duanliang','jiezi']],
@ -3739,6 +3739,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.source=player;
}
},
zaiqixx:{
audio:'zaiqi',
inherit:'zaiqi',
},
zaiqi:{
audio:2,
trigger:{player:'phaseDrawBefore'},
@ -3757,7 +3761,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
"step 0"
trigger.cancel();
event.cards=get.cards(player.getDamagedHp());
event.cards=get.cards(player.getDamagedHp()+(event.name=='zaiqi'?0:1));
player.showCards(event.cards);
"step 1"
var num=0;
@ -6551,6 +6555,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
huoshou1:'祸首',
huoshou2:'祸首',
zaiqi:'再起',
zaiqixx:'再起',
juxiang:'巨象',
juxiang1:'巨象',
juxiang2:'巨象',
@ -6577,6 +6582,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jiezi_info:'锁定技,其他角色跳过摸牌阶段后,你摸一张牌。',
huoshou_info:'锁定技,【南蛮入侵】对你无效;你视为所有【南蛮入侵】的伤害来源。',
zaiqi_info:'摸牌阶段若你已受伤则你可以改为展示牌堆顶的X张牌X为你已损失的体力值并回复X点体力X为其中♥牌的数目。然后你将这些♥牌置入弃牌堆并获得其余的牌。',
zaiqixx_info:'摸牌阶段若你已受伤则你可以改为展示牌堆顶的X张牌X为你已损失的体力值+1并回复X点体力X为其中♥牌的数目。然后你将这些♥牌置入弃牌堆并获得其余的牌。',
juxiang_info:'锁定技,【南蛮入侵】对你无效。其他角色使用的【南蛮入侵】结算后进入弃牌堆时,你获得之。',
lieren_info:'当你使用【杀】造成伤害后,可与受到该伤害的角色进行拼点;若你赢,你获得对方的一张牌。',
xingshang_info:'当有角色死亡后,你可以获得该角色的所有牌。',

View File

@ -14,10 +14,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"],
sp_guozhan:["shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan"],
sp_guozhan2:["mifuren","mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","kongrong","bianfuren","liqueguosi","lvfan","cuimao","jiling","zangba","zhangren","zoushi"],
sp_single:["hejin","hansui","niujin"],
sp_others:["hanba"],
},
},
character:{
hejin:['male','qun',4,['mouzhu','yanhuo']],
hansui:['male','qun',4,['mashu','niluan']],
niujin:['male','wei',4,['cuorui','liewei']],
guanlu:['male','wei',3,['tuiyan','busuan','mingjie']],
gexuan:['male','wu',3,['lianhua','zhafu']],
wenyang:['male','wei',5,['xinlvli','choujue']],
@ -157,6 +162,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//kaisa:["male","western",4,["zhengfu"]],
},
characterIntro:{
hejin:'何进(?~189年字遂高南阳郡宛县今河南南阳市宛城区人。东汉时期外戚大臣灵思皇后之兄。初以妹妹有宠拜为郎中出任虎贲中郎将、颍川太守迁侍中、将作大匠、河南尹。黄巾起义时拜为大将军总镇京师发现并镇压马元义的密谋封为慎侯。为张大威望在京师讲武结营置西园八校尉。汉灵帝驾崩后粉碎了中常侍蹇硕拥立皇子刘协的图谋听从袁绍之言博征智谋之士内借元舅之资外据辅政之权独揽朝中大权。中平六年189不纳陈琳和曹操劝谏阴结军阀董卓联合袁绍谋诛宦竖。事情败露后为中常侍张让等人损害其后代是魏晋高门士族南阳何氏。',
hansui:'韩遂215年字文约。凉州金城郡人。东汉末年军阀、将领汉末群雄之一。原名韩约后改名遂。韩遂最初闻名于西州被羌胡叛军劫持并推举为首领以诛宦官为名举兵造反聚众十万先后败皇甫嵩、张温、董卓、孙坚等名将使得天下骚动。后受朝廷招安拥兵割据一方长达三十余年。韩遂曾与马腾结为异姓兄弟后二人关系破裂。袁绍、曹操相争之际马腾、韩遂被钟繇说服依附于曹操。马腾入京后留其子马超统领部队。马超推举韩遂为都督起兵反叛曹操为曹操所败韩遂逃奔凉州后又为夏侯渊所败病死一说被杀享年七十余岁。',
niujin:'牛金(生卒年不详),初为曹仁部曲将,周瑜军数万人来攻,前锋数千人始至,曹仁登城望,乃募得三百人,遣牛金迎战。但对方兵力较多,牛金遂被围困。曹仁亲自杀入阵中救出牛金。司马懿使牛金轻骑饵诱蜀军,刚交战诸葛亮就退兵,追至祁山。蜀将马岱入寇,司马懿遣将军牛金击退,斩千余级。公孙渊反,司马懿帅牛金、胡遵等步骑四万发自洛阳,后平定辽东。牛金官至后将军。',
guanlu:"管辂209年256年字公明平原今山东德州平原县人。三国时期曹魏术士。年八九岁便喜仰观星辰。成人后精通《周易》善于卜筮、相术习鸟语相传每言辄中出神入化。体性宽大常以德报怨。正元初为少府丞。北宋时被追封为平原子。管辂是历史上著名的术士被后世奉为卜卦观相的祖师。",
gexuan:"葛玄164年-244年汉族吴丹阳郡句容县都乡吉阳里人今句容市祖籍山东琅琊三国著名高道道教灵宝派祖师。字孝先号仙翁被尊称为“葛天师”。道教尊为葛仙翁又称太极仙翁与张道陵、许逊、萨守坚共为四大天师。为汉下邳僮侯葛艾后裔祖葛矩安平太守黄门郎从祖葛弥豫章第五郡太守。父葛焉字德儒州主簿山阴令散骑常侍大尚书。随左慈学道得《太清丹经》、《黄帝九鼎神丹经》、《金液丹经》等道经。曾采药海山吴嘉禾二年233年在閤皂山修道建庵筑坛立炉修炼九转金丹。喜好遨游山川去过括苍山、南岳山、罗浮山。编撰《灵宝经诰》精研上清、灵宝等道家真经并嘱弟子世世箓传。",
wenyang:"文俶238年—291年一作文淑字次骞小名阿鸯世称文鸯谯郡今安徽亳州市人。魏末晋初名将曹魏扬州刺史文钦之子。骁勇善战依附大将军曹爽效忠于王室。司马师废黜皇帝曹芳后随父联合毌丘俭于淮南起兵勤王。兵败之后向南投奔吴国。诸葛诞发动淮南叛乱奉命率军驰援。双方发生内讧父亲为诸葛诞所害遂降于司马昭封关内侯。西晋建立后任平虏护军。咸宁三年277年拜平西将军、都督凉秦雍州三州军事大破鲜卑首领秃发树机能名震天下迁使持节、护东夷校尉、监辽东军事。八王之乱中为诸葛诞外孙、东安王司马繇所诬杀惨遭灭族时年五十四岁。",
@ -560,6 +568,123 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//新1v1
yanhuo:{
trigger:{player:'die'},
forceDie:true,
filter:function(event,player){
return player.countCards('he')>0;
},
direct:true,
skillAnimation:true,
animationColor:'thunder',
content:function(){
'step 0'
player.chooseTarget(get.prompt2('yanhuo'),function(card,player,target){
return target!=player&&target.countDiscardableCards(player,'he')>0
}).set('forceDie',true).ai=function(target){
return -target.countCards('he')*get.attitude(player,target);
};
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('yanhuo',target);
event.count=player.countCards('he');
}
else event.finish()
'step 2'
if(target.countDiscardableCards(player,'he')){
player.line(target);
player.discardPlayerCard(target,'he',true).set('forceDie',true);
event.count--;
if(event.count) event.redo();
}
},
},
mouzhu:{
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return target!=player&&target.countCards('he')>0;
},
content:function(){
'step 0'
target.chooseCard('he','交给'+get.translation(player)+'一张牌',true);
'step 1'
player.gain(result.cards,target,'giveAuto');
'step 2'
if(player.countCards('h')<=target.countCards('h')){
event.finish();
return;
}
var list=[];
if(target.canUse('sha',player,false)) list.push('sha');
if(target.canUse('juedou',player,false)) list.push('juedou');
if(!list.length) event.finish();
else if(list.length==1) event._result={control:list[0]};
else target.chooseControl(list).set('prompt','对'+get.translation(player)+'使用一张【杀】或【决斗】。');
'step 3'
target.useCard({name:result.control},player);
},
},
niluan:{
audio:2,
trigger:{global:'phaseEnd'},
filter:function(event,player){
return event.player!=player&&(event.player.hp>player.hp||event.player.countUsed('sha'))
},
direct:true,
content:function(){
var next=player.chooseToUse();
next.logSkill='niluan';
next.set('openskilldialog',get.prompt2('niluan'));
next.set('norestore',true);
next.set('_backupevent','niluanx');
next.backup('niluanx');
},
},
niluanx:{
viewAs:{name:'sha'},
filterCard:{color:'black'},
position:'he',
},
cuorui:{
audio:2,
trigger:{global:'gameDrawAfter'},
forced:true,
filter:function(event,player){
return player.maxHp>0&&!get.is.single();
},
content:function(){
player.draw(Math.min(5,player.maxHp),false);
},
group:'cuorui_nojudge',
subSkill:{
nojudge:{
trigger:{
player:'phaseJudgeBefore',
},
forced:true,
filter:function(event,player){
return !player.storage.cuorui&&(get.is.single()||player.countCards('j'));
},
content:function(){
player.storage.cuorui=true;
trigger.cancel();
game.log(player,'跳过了','#g判定阶段');
},
},
},
},
liewei:{
audio:2,
trigger:{source:'dieAfter'},
frequent:true,
content:function(){
player.draw(3);
},
},
//管辂和葛玄
lianhua:{
audio:2,
@ -1134,8 +1259,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish();
}
else player.chooseCard('h',true,function(card){
return get.suit(card)!=suit2
},'交给'+get.translation(target)+'一张不为'+get.translation(suit2)+'花色的牌');
return get.suit(card)!=_status.event.suit2
},'交给'+get.translation(target)+'一张不为'+get.translation(suit2)+'花色的牌').set('suit2',suit2);
}
}
else event.finish();
@ -1681,7 +1806,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseControl(['basic','trick','equip']).set('ai',function(){
if(!trigger.target.countCards('h','sha')&&trigger.target.countCards('h','shan')) return 'trick';
return 'basic';
}).prompt='请选择一种牌的类别';
}).set('prompt','请选择一种牌的类别');
'step 1'
trigger.target.chooseCard('he','交给'+get.translation(player)+'一张'+get.translation(result.control)+'牌,否则此【杀】不可被闪避。',function(card){
return get.type(card,'trick')==result.control;
@ -2975,7 +3100,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
player.$throw(list);
player.lose(list,ui.discardPile);
player.lose(list,ui.discardPile,'visible');
game.log(player,'将',list,'置入弃牌堆');
}
},
@ -7670,7 +7795,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lose:false,
prepare:'give',
content:function(){
player.lose(cards,ui.special,'toStorage');
player.lose(cards,ui.special,'toStorage','visible');
if(target.hasSkill('yanxiao2')&&target.storage.yanxiao2){
target.storage.yanxiao2.push(cards[0]);
target.syncStorage('yanxiao2');
@ -9586,7 +9711,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
"step 0"
player.lose(trigger.cards,ui.discardPile);
player.lose(trigger.cards,ui.discardPile,'visible');
player.$throw(trigger.cards,1000);
game.log(player,'将',trigger.cards,'置入了弃牌堆')
"step 1"
@ -12637,7 +12762,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_wenyang:'文鸯',
guanlu:'管辂',
gexuan:'葛玄',
hejin:'何进',
hansui:'韩遂',
niujin:'牛金',
mouzhu:'谋诛',
mouzhu_info:'出牌阶段限一次,你可以令一名有牌的其他角色交给你一张牌。然后若你的手牌数大于其,其选择视为对你使用一张【杀】或【决斗】。',
yanhuo:'延祸',
yanhuo_info:'当你死亡时你可以依次弃置一名其他角色的X张牌。X为你的牌数',
niluan:'逆乱',
niluan_info:'其他角色的结束阶段开始时,若其本回合内使用过【杀】或其体力值大于你,则你可以将一张黑色牌当做【杀】使用。',
cuorui:'挫锐',
cuorui_info:'锁定技游戏开始时你摸X张牌X为你的体力上限。锁定技限定技判定阶段开始前若你的判定区有牌你跳过此阶段。',
cuorui_info_single:'锁定技你的起始手牌数改为X+2X为你剩余的备选武将数。你跳过登场后的第一个判定阶段。',
liewei:'裂围',
liewei_info:'当你杀死一名角色后,你可以摸三张牌。',
tuiyan:'推演',
tuiyan_info:'出牌阶段开始时,你可以观看牌堆顶的两张牌。',
busuan:'卜算',
@ -13241,6 +13380,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_guozhan:"国战",
sp_guozhan2:"国战移植",
sp_others:"其他",
sp_single:'新1v1',
},
};
});

View File

@ -1459,7 +1459,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function (){
'step 0'
if(targets[0].hasSkill('smh_huoji')&&targets[0].hasSkill('smh_lianhuan')){
player.chooseControl('龙印','凤印').prompt='请选择要移动的印';
player.chooseControl('龙印','凤印').set('prompt','请选择要移动的印');
}
else{
if(targets[0].hasSkill('smh_huoji')) event._result={control:'龙印'};
@ -2658,11 +2658,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var namelist=[];
var namedlist=[];
for(var i=0;i<event.cards.length;i++){
if(!namelist.contains(event.cards[i].name)) namelist.push(event.cards[i].name);
namelist.add(get.name(event.cards[i]));
}
var hs=player.getCards('h');
for(var j=0;j<hs.length;j++){
if(namelist.contains(hs[j].name)&&!event.cards.contains(hs[j])) return true;
if(namelist.contains(get.name(hs[j]))&&!event.cards.contains(hs[j])) return true;
}
return false;
},
@ -2673,17 +2673,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var nameddlist=[];
var namedddlist=[];
for(var i=0;i<trigger.cards.length;i++){
if(!namelist.contains(trigger.cards[i].name)) namelist.push(trigger.cards[i].name);
namelist.add(get.name(trigger.cards[i]));
}
var hs=player.getCards('h');
for(var j=0;j<hs.length;j++){
if(namelist.contains(hs[j].name)&&!trigger.cards.contains(hs[j])){
if(namelist.contains(get.name(hs[j]))&&!trigger.cards.contains(hs[j])){
namedlist.push(hs[j]);
if(!namedddlist.contains(hs[j].name)) namedddlist.push(hs[j].name);
namedddlist.add(get.name(hs[j]));
}
}
for(var k=0;k<trigger.cards.length;k++){
if(namedddlist.contains(trigger.cards[k].name)) nameddlist.push(trigger.cards[k]);
if(namedddlist.contains(get.name(trigger.cards[k]))) nameddlist.push(trigger.cards[k]);
}
var showlist=namedlist.concat(nameddlist);
player.showCards(showlist);

View File

@ -4659,14 +4659,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ui.cardPile.insertBefore(cards[0],ui.cardPile.firstChild);
game.updateRoundNumber();
'step 2'
target.chooseToDiscard('he',true).prompt='请弃置一张锦囊牌,或依次弃置两张非锦囊牌。';
target.chooseToDiscard('he',true).set('prompt','请弃置一张锦囊牌,或依次弃置两张非锦囊牌。');
'step 3'
if((!result.cards||get.type(result.cards[0],'trick')!='trick')&&target.countCards('he',function(card){
return get.type(card,'trick')!='trick';
})){
target.chooseToDiscard('he',true,function(card){
return get.type(card,'trick')!='trick';
}).prompt='请弃置第二张非锦囊牌';
}).set('prompt','请弃置第二张非锦囊牌');
}
},
ai:{