diff --git a/character/rank.js b/character/rank.js
index ea3b1c3e5..4ed520396 100644
--- a/character/rank.js
+++ b/character/rank.js
@@ -967,6 +967,7 @@ window.noname_character_rank={
'xin_fuhuanghou',
'sp_xunchen',
'zhaozhong',
+ 'zongyu',
],
c:[
'xiahoudun',
diff --git a/character/shenhua.js b/character/shenhua.js
index 655ffec9f..60da709e8 100755
--- a/character/shenhua.js
+++ b/character/shenhua.js
@@ -73,7 +73,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
perfectPair:{
jiaxu:['liqueguosi'],
- re_yuanshao:['yanwen'],
+ re_yuanshao:['yanwen','tianfeng'],
menghuo:['zhurong'],
sp_zhugeliang:['pangtong','huangyueying'],
sunce:['zhouyu','taishici','daqiao'],
diff --git a/character/sp.js b/character/sp.js
index 5bc697061..491ced2a9 100755
--- a/character/sp.js
+++ b/character/sp.js
@@ -10,13 +10,14 @@ 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_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'],
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan"],
- sp_guozhan2:["mifuren","mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","kongrong","bianfuren","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi","huaxin","luyusheng"],
+ sp_guozhan2:["mifuren","mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","kongrong","bianfuren","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi","huaxin","luyusheng","zongyu"],
sp_single:["niujin"],
sp_others:["hanba","caiyang"],
},
},
characterFilter:{},
character:{
+ zongyu:['male','shu',3,['zyqiao','chengshang']],
luyusheng:['female','wu',3,['zhente','zhiwei']],
ol_xinxianying:['female','wei',3,['xincaishi','xinzhongjian']],
huaxin:['male','wei',3,['wanggui','xibing']],
@@ -154,6 +155,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//kaisa:["male","western",4,["zhengfu"]],
},
characterIntro:{
+ zongyu:'宗预(?-264年),字德艳 ,荆州南阳郡安众县(今河南省南阳市)人。三国时期蜀汉官员、将领。曾随张飞入蜀助平益州,又受辟为丞相诸葛亮手下主簿,升任参军、右中郎将。诸葛亮逝世后,宗预受命出使孙吴,得到孙权的赞赏。迁后将军,出督永安,又升任征西大将军,并受封关内侯。公元258年(景耀元年),因病回成都,受任镇军大将军。蜀汉灭亡后,宗预随后主刘禅徙往洛阳,在中途病逝。宗预为人坦率耿直,多次出使孙吴并深得孙权的敬重,为吴、汉两国同盟的巩固作出了一定的贡献。',
mifangfushiren:'麋芳(生卒年不详),字子方,东海郡朐县(今江苏省连云港市)人。汉末三国时期蜀国将领,刘备糜夫人的兄弟。麋芳本为徐州牧陶谦部下,曾被曹操表为彭城相。后来辞官,随刘备从徐州辗转至邺城、汝南、新野、长坂坡、江夏等地,奔波多年。傅士仁(生卒年不详),字君义,幽州广阳郡(今北京市)人,刘备手下将领。受到刘备的重用,但被关羽轻慢。
刘备称汉中王时,糜芳为南郡太守,但受到关羽的轻慢。后来,因未完成供给军资的任务而被关羽责骂,心中不安。吕蒙袭取荆州时,将已经投降的傅士仁展示给糜芳,麋芳于是选择投降,导致关羽兵败被杀。此后,在吴国担任将军,并且为吴征伐。',
mengda:'孟达(?-228),字子度,本字子敬,因刘备的叔父名叫刘子敬,为避讳而改字。扶风郡郿人,三国时期人物。本为刘璋属下,后降刘备。关羽围樊城、襄阳时因不发兵救关羽而触怒刘备,于是投奔曹魏。此后,劝降刘封,未果。在魏官至散骑常侍、建武将军,封平阳亭侯。此后又欲反曹魏而归蜀汉,事败而死。',
luyusheng:'陆郁生(?年-?),三国时期吴国官员陆绩之女。陆郁生的父亲陆绩是吴郡公认的才子,又是当时吴郡陆氏的领袖。陆绩赴任担任郁林太守,遂取此名。陆郁生年少的时候就定下坚贞的志向。建安二十四年(219年),陆绩早亡,她与两个兄弟陆宏、陆睿当时都只有几岁,一起返回吴县,被他们的从兄陆瑁接回抚养。13周岁的陆郁生嫁给同郡出身的张白为妻。出嫁3个月后,张白因为其兄张温一族的案件遭到连坐,被处以流刑,后死于流放地,陆郁生成为了寡妇,其后公开宣言不再改嫁,困难于生计但拒绝了所有提亲,在艰苦中从未停止服侍、照顾张白的姐妹。事情传到朝廷,皇帝褒奖陆郁生,号其为“义姑”。她的表侄姚信在文集中称赞她的义举。',
@@ -400,6 +402,64 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
+ //宗预
+ zyqiao:{
+ audio:2,
+ trigger:{target:'useCardToTargeted'},
+ logTarget:'player',
+ usable:2,
+ filter:function(event,player){
+ var source=event.player;
+ if(source==player) return false;
+ if(get.mode()=='guozhan'&&source.isFriendOf(player)) return false;
+ return source.countDiscardableCards(player,'he')>0;
+ },
+ check:function(event,player){
+ var target=event.player;
+ if(get.attitude(player,target)>=0) return false;
+ if(!player.countCards('he',function(card){
+ return lib.filter.cardDiscardable(card,player,'zyqiao');
+ })) return true;
+ if(player.countCards('he',(card)=>get.value(card,player)<5)) return true;
+ if(target.countCards('he',(card)=>get.value(card,target)>6)&&player.countCards('he',(card)=>get.value(card,player)<7)) return true;
+ return false;
+ },
+ content:function(){
+ 'step 0'
+ player.discardPlayerCard(trigger.player,true,'he');
+ 'step 1'
+ if(player.countCards('he',function(card){
+ return lib.filter.cardDiscardable(card,player,'zyqiao');
+ })) player.chooseToDiscard('he',true);
+ },
+ },
+ chengshang:{
+ audio:2,
+ trigger:{player:'useCardAfter'},
+ filter:function(event,player){
+ if(!lib.suit.contains(get.suit(event.card,false))||typeof get.number(event.card)!='number') return false;
+ if(player.getHistory('sourceDamage',function(evt){
+ return evt.card==event.card;
+ }).length) return false;
+ var phsu=event.getParent('phaseUse');
+ if(!phsu||phsu.player!=player) return false;
+ if(player.getHistory('gain',function(evt){
+ return evt.getParent().name=='chengshang';
+ }).length) return false;
+ for(var i of event.targets){
+ if(i!=player&&(get.mode()!='guozhan'||i.isEnemyOf(player))) return true;
+ }
+ return false;
+ },
+ content:function(){
+ var suit=get.suit(trigger.card);
+ var number=get.number(trigger.card);
+ var card=get.cardPile2(function(card){
+ return card.suit==suit&&card.number==number;
+ });
+ if(card) player.gain(card,'gain2');
+ },
+ },
//新丁奉
reduanbing:{
audio:2,
@@ -16618,6 +16678,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refenxun:'奋迅',
refenxun2:'奋迅',
refenxun_info:'出牌阶段限一次,你可以选择一名其他角色,然后本回合你计算与其的距离视为1;结束阶段开始时,若你未对其造成过伤害,你弃一张牌。',
+ zongyu:'宗预',
+ zyqiao:'气傲',
+ zyqiao_info:'每回合限两次。当你成为其他角色使用牌的目标后,你可以弃置其一张牌,然后你弃置一张牌。',
+ zyqiao_info_guozhan:'每回合限两次。当你成为其他势力的角色使用牌的目标后,你可以弃置其一张牌,然后你弃置一张牌。',
+ chengshang:'承赏',
+ chengshang_info:'当你于出牌阶段内使用的牌结算完成后,若此牌未造成过伤害且此牌的目标包含其他角色且你本阶段内未因〖承赏〗获得过牌,则你可以从牌堆中获得一张与此牌花色点数相同的牌。',
+ chengshang_info_guozhan:'当你于出牌阶段内使用的牌结算完成后,若此牌未造成过伤害且此牌的目标包含其他角色且你本阶段内未因〖承赏〗获得过牌,则你可以从牌堆中获得一张与此牌花色点数相同的牌。',
sp_default:"常规",
sp_zhongdan:"忠胆英杰",
diff --git a/character/sp2.js b/character/sp2.js
index 7930f173e..6f0ce2c64 100644
--- a/character/sp2.js
+++ b/character/sp2.js
@@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
character:{
caosong:['male','wei',3,['cslilu','csyizheng']],
- re_taoqian:['male','qun',3,['zhaohuo','reyixiang','yirang']],
+ re_taoqian:['male','qun',3,['zhaohuo','reyixiang','reyirang']],
zhaozhong:['male','qun',6,['yangzhong','huangkong']],
fanyufeng:['female','qun',3,['bazhan','jiaoying']],
ol_lisu:['male','qun',3,['qiaoyan','xianzhu']],
@@ -113,6 +113,41 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
skill:{
//陶谦和曹嵩
+ reyirang:{
+ audio:'yirang',
+ audioname:['re_taoqian'],
+ trigger:{player:'phaseUseBegin'},
+ direct:true,
+ filter:function(event,player){
+ if(!player.countCards('he',function(card){
+ return get.type(card)!='basic';
+ })){
+ return false;
+ }
+ return game.hasPlayer(function(current){
+ return current.maxHp>player.maxHp;
+ });
+ },
+ content:function(){
+ 'step 0'
+ player.chooseTarget(get.prompt2('reyirang'),function(card,player,target){
+ return target.maxHp>player.maxHp;
+ }).set('ai',function(target){
+ return (get.attitude(_status.event.player,target)-2)*target.maxHp;
+ });
+ 'step 1'
+ if(result.bool){
+ var cards=player.getCards('he',function(card){
+ return get.type(card)!='basic';
+ });
+ var target=result.targets[0];
+ player.logSkill('reyirang',target);
+ target.gain(cards,player,'give');
+ player.gainMaxHp(target.maxHp-player.maxHp,true);
+ player.recover(cards.length);
+ }
+ }
+ },
cslilu:{
audio:2,
trigger:{player:'phaseDrawBegin1'},
@@ -2674,7 +2709,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(result.bool){
var target=result.targets[0];
- player.logSkill('xinfu_wuniang',target);
+ player.logSkill('decadewuniang',target);
player.line(target,'fire');
player.gainPlayerCard(target,'he',true);
target.draw();
@@ -9892,7 +9927,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
duyu:'杜预',
sanchen:'三陈',
sanchen_info:'出牌阶段,你可选择一名本回合内未选择过的角色。其摸三张牌,然后弃置三张牌。若其未以此法弃置牌或以此法弃置的牌的类别均不相同,则其摸一张牌。否则你本阶段内不能再发动〖三陈〗。',
- sanchen_info_guozhan:'出牌阶段,你可选择一名本回合内未选择过的角色。其摸三张牌,然后弃置三张牌。若其未以此法弃置牌或以此法弃置的牌的类别均不相同,则其摸一张牌且你获得技能〖破竹〗只到回合结束。否则你本阶段内不能再发动〖三陈〗。',
+ sanchen_info_guozhan:'出牌阶段,你可选择一名本回合内未选择过的角色。其摸三张牌,然后弃置三张牌。若其未以此法弃置牌或以此法弃置的牌的类别均不相同,则其摸一张牌且你获得技能〖破竹〗直到回合结束。否则你本阶段内不能再发动〖三陈〗。',
zhaotao:'诏讨',
zhaotao_info:'觉醒技,准备阶段,若你本局游戏内发动〖三陈〗的次数大于2,则你减1点体力上限并获得〖破竹〗。',
pozhu:'破竹',
@@ -10002,10 +10037,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reyixiang_info:'锁定技,其他角色于其出牌阶段内使用的第一张牌对你的伤害-1;其使用的第二张牌若为黑色,则对你无效。',
caosong:'曹嵩',
cslilu:'礼赂',
- cslilu_info:'摸牌阶段,你可以放弃摸牌,改为将手牌摸至X张,然后将至少一张手牌交给一名其他角色。若你以此法给出的牌数大于你上次以此法给出的牌数,则你加1点体力上限并回复1点体力。',
+ cslilu_info:'摸牌阶段,你可以放弃摸牌,改为将手牌摸至X张(X为你的体力上限和5中的最小值),然后将至少一张手牌交给一名其他角色。若你以此法给出的牌数大于你上次以此法给出的牌数,则你加1点体力上限并回复1点体力。',
csyizheng:'翊正',
csyizheng2:'翊正',
csyizheng_info:'结束阶段开始时,你可以选择一名其他角色。你的下回合开始前,当该角色造成伤害或回复体力时,若其体力上限小于你,则你减1点体力上限,且令此伤害值/回复值+1。',
+ reyirang:'揖让',
+ reyirang_info:'出牌阶段开始时,你可以将所有非基本牌交给一名体力上限大于你的其他角色,然后调整体力上限至与该角色相同并回复X点体力(X为你以此法交给其的牌数)。',
sp_yingbian:'文德武备',
sp_whlw:"文和乱武",
diff --git a/character/xianjian.js b/character/xianjian.js
index 60d2973ce..9ea21eef4 100644
--- a/character/xianjian.js
+++ b/character/xianjian.js
@@ -37,7 +37,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pal_xiahoujinxuan:['male','shu',3,['xuanmo','danqing']],
pal_muchanglan:['female','wu',3,['feixia','lueying']],
- pal_xia:['female','shu',3,['zongyu','fanling']],
+ pal_xia:['female','shu',3,['xjzongyu','fanling']],
pal_jiangcheng:['male','qun',4,['yanzhan','fenshi']],
pal_yuejinzhao:['male','wei',4,['ywuhun','yingfeng']],
@@ -1338,7 +1338,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
threaten:1.3
}
},
- zongyu:{
+ xjzongyu:{
enable:'phaseUse',
usable:1,
filterCard:{color:'black'},
@@ -4222,8 +4222,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yingfeng_info:'锁定技,每当你使用一张杀结算完毕后,你随机对一名不是此杀目标的敌方角色使用一张杀',
fenglue:'风掠',
fenglue_info:'你可以放弃出牌阶段,改为指定一名其他角色并选择任意张手牌,依次对该角色使用,若如此做,此阶段内该角色每受到一点伤害,你在结算后摸一张牌',
- zongyu:'纵雨',
- zongyu_info:'出牌阶段限一次,你可以弃置一张黑色手牌,视为使用一张飞镖,随机指定两名敌方角色为目标',
+ xjzongyu:'纵雨',
+ xjzongyu_info:'出牌阶段限一次,你可以弃置一张黑色手牌,视为使用一张飞镖,随机指定两名敌方角色为目标',
fanling:'返灵',
fanling_info:'锁定技,每当一名角色失去体力,你回复一点体力,每回合只能发动一次',
huahu:'化狐',
diff --git a/game/asset.js b/game/asset.js
index 4d4daf16c..dfeed8355 100644
--- a/game/asset.js
+++ b/game/asset.js
@@ -1,5 +1,5 @@
window.noname_asset_list=[
- 'v1.9.109.3.4',
+ 'v1.9.109.3.5',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@@ -3857,6 +3857,8 @@ window.noname_asset_list=[
'image/character/re_taoqian.jpg',
'image/character/re_zhangchunhua.jpg',
'image/character/xin_handang.jpg',
+ 'image/character/zongyu.jpg',
+ 'image/character/key_ushio.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',
diff --git a/game/game.js b/game/game.js
index 3d66d9701..73e660873 100644
--- a/game/game.js
+++ b/game/game.js
@@ -6224,6 +6224,11 @@
init:true,
frequent:true
},
+ qunxionggeju:{
+ name:'群雄割据',
+ init:true,
+ frequent:true
+ },
duzhansanguo:{
name:'毒战三国',
init:true,
@@ -32877,6 +32882,7 @@
ui.playerids.style.display='';
}
+ if(mode[lib.config.mode].startBefore) mode[lib.config.mode].startBefore();
game.createEvent('game',false).setContent(mode[lib.config.mode].start);
if(lib.mode[lib.config.mode]&&lib.mode[lib.config.mode].fromextension){
var startstr=mode[lib.config.mode].start.toString();
@@ -34900,18 +34906,6 @@
}
else button.node.group.style.backgroundColor=get.translation('weiColor');
}
- var group=get.is.double(button.link,true);
- if(group&&group.length==2){
- var str='';
- for(var i of group){
- str+=get.translation(i);
- }
- button.node.group.innerHTML=str;
- if(button.classList.contains('newstyle')){
- button.node.name.dataset.nature=get.groupnature(group[0]);
- button.node.group.dataset.nature=get.groupnature(group[1]);
- }
- }
},
div:function(){
var str,innerHTML,position,position2,style,divposition,listen;
@@ -44026,16 +44020,9 @@
}
node.link=item;
if(type=='character'||type=='characterx'){
- if(type=='characterx'&&item.indexOf('gz_')==0&&lib.character[item]&&lib.character[item][4]){
- for(var ix of lib.character[item][4]){
- if(ix.indexOf('doublegroup:')==0){
- node._replaceButton=true;
- node._changeGroup=ix.split(':').slice(1);
- break;
- }
- }
- }
- else if(type=='characterx'&&lib.characterReplace[node._link]&&lib.characterReplace[node._link].length>1) node._replaceButton=true;
+ var double=get.is.double(node._link,true);
+ if(double) node._changeGroup=true;
+ if(type=='characterx'&&lib.characterReplace[node._link]&&lib.characterReplace[node._link].length>1) node._replaceButton=true;
var func=function(node,item){
node.setBackground(item,'character');
if(node.node){
@@ -44067,6 +44054,10 @@
node.node.name.dataset.nature=get.groupnature(infoitem[1]);
node.node.group.dataset.nature=get.groupnature(infoitem[1],'raw');
node.classList.add('newstyle');
+ if(double&&double.length){
+ node.node.name.dataset.nature=get.groupnature(double[0]);
+ node.node.group.dataset.nature=get.groupnature(double[double.length==2?1:0]);
+ }
ui.create.div(node.node.hp);
var textnode=ui.create.div('.text',get.numStr(infoitem[2]),node.node.hp);
if(infoitem[2]==0){
@@ -44109,7 +44100,18 @@
lib.setIntro(node);
}
if(infoitem[1]){
- node.node.group.innerHTML='