Merge pull request #175 from copcap/dev

新增十常侍、族钟琰、谋祝融、谋孟获、界曹冲;解禁陈泰、牵招、新杀孙寒华、桓范;代码调整
This commit is contained in:
Spmario233 2023-07-28 13:39:42 +08:00 committed by GitHub
commit a1dffe8de3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
107 changed files with 1804 additions and 59 deletions

BIN
audio/die/chentai.mp3 Normal file

Binary file not shown.

BIN
audio/die/dc_sunhanhua.mp3 Normal file

Binary file not shown.

BIN
audio/die/huanfan.mp3 Normal file

Binary file not shown.

BIN
audio/die/qianzhao.mp3 Normal file

Binary file not shown.

BIN
audio/die/re_caochong.mp3 Normal file

Binary file not shown.

BIN
audio/die/sb_menghuo.mp3 Normal file

Binary file not shown.

BIN
audio/die/sb_zhurong.mp3 Normal file

Binary file not shown.

BIN
audio/die/shichangshi.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
audio/skill/chengye3.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcchenyong1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcchenyong2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcchongxu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcchongxu2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/dcfumou1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcfumou2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dchuiling1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dchuiling2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/dctaji1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dctaji2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mbshihe1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mbshihe2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mbzhenfu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mbzhenfu2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/sbhuoshou1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sbhuoshou2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sbjuxiang1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sbjuxiang2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sblieren1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sblieren2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sbzaiqi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sbzaiqi2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/scsanruo1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/scschihe1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/scschiyan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/scskuiji1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/scsniqu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/scspicai1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/scstaoluan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/scsxiaolu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/scsyaozhuo1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/scszimou1.mp3 Normal file

Binary file not shown.

View File

@ -2158,8 +2158,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
player.chooseToUse(get.prompt('qinglong',trigger.target),function(card,player,event){
if(get.name(card)!='sha') return false;
if(player.getEquip('qinglong')==card) return false;
var target=_status.event.targetx;
if(!lib.filter.targetEnabled(card,player,target)) return false;
return lib.filter.filterCard.apply(this,arguments);
},trigger.target,-1).set('addCount',false).logSkill='qinglong_skill';
},trigger.target,-1).set('targetx',trigger.target).set('addCount',false).logSkill='qinglong_skill';
}
},
zhangba_skill:{

View File

@ -15,6 +15,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
clan_hanrong:['male','qun',3,['clanlianhe','clanhuanjia','clanxumin'],['clan:颍川韩氏']],
clan_wukuang:['male','qun',4,['clanlianzhu','clanmuyin'],['clan:陈留吴氏']],
clan_wangling:['male','wei',4,['clanbolong','clanzhongliu'],['clan:太原王氏']],
clan_zhongyan:['female','jin',3,['clanguangu','clanxiaoyong','clanbaozu'],['clan:颍川钟氏']],
},
characterSort:{
clan:{
@ -25,6 +26,257 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//钟琰族钟琰
clanguangu:{
audio:2,
enable:'phaseUse',
usable:1,
zhuanhuanji:true,
mark:true,
marktext:'☯',
intro:{
content:function(storage){
return '转换技。出牌阶段限一次,你可以观看'+(storage?'一名角色的至多四张手':'牌堆顶的至多四张')+'牌,然后可以使用其中的一张牌';
},
},
filter:function(event,player){
if(player.storage.clanguangu) return game.hasPlayer(current=>{
return current.countCards('h');
});
return true;
},
chooseButton:{
dialog:function(event,player){
var dialog=ui.create.dialog('观骨:选择观看牌堆的牌数','hidden');
if(player.storage.clanguangu) dialog.forceDirect=true;
return dialog;
},
chooseControl:function(event,player){
var list=[1,2,3,4].map(i=>{
return get.cnNumber(i,true);
});
list.push('cancel2');
return list;
},
check:function(button,player){
var ret;
if(!player.hasSkill('clanxiaoyong')) ret=4;
else{
var list=[4,3,2,1];
player.getHistory('useCard',evt=>{
var len=lib.skill.dcweidang.getLength(evt.card);
list.remove(len);
});
if(list.length) ret=list[0];
else ret=4;
}
return get.cnNumber(ret,true);
},
backup:function(result,player){
return {
audio:'clanguangu',
filterCard:()=>false,
selectCard:-1,
filterTarget:function(card,player,target){
if(player.storage.clanguangu) return true;
return false;
},
selectTarget:function(){
var player=_status.event.player;
if(player.storage.clanguangu) return 1;
return -1;
},
num:result.index+1,
content:function(){
'step 0'
player.changeZhuanhuanji('clanguangu');
if(!targets.length){
var num=lib.skill.clanguangu_backup.num;
var cards=get.cards(num);
game.cardsGotoOrdering(cards);
event.cards=cards;
event.goto(2);
}
else{
var ret;
if(!player.hasSkill('clanxiaoyong')) ret=4;
else{
var list=[4,3,2,1];
player.getHistory('useCard',evt=>{
var len=lib.skill.dcweidang.getLength(evt.card);
list.remove(len);
});
if(list.length) ret=list[0];
else ret=4;
}
player.choosePlayerCard(target,'h',true,[1,4]).set('prompt','观骨:观看'+get.translation(target)+'的至多四张牌').set('ai',button=>{
if(ui.selected.buttons.length>=_status.event.num) return 0;
return Math.random();
}).set('num',ret);
}
'step 1'
if(result.bool){
event.cards=result.links;
}
else{
event.finish();
}
'step 2'
var count=cards.length;
event.getParent().viewedCount=count;
player.chooseButton(['观骨:是否使用其中一张牌?',cards]).set('filterButton',button=>{
var player=_status.event.player;
var card=button.link;
var cardx={
name:get.name(card,get.owner(card)),
nature:get.nature(card,get.owner(card)),
cards:[card],
}
return player.hasUseTarget(cardx);
}).set('ai',button=>{
var len=_status.event.len;
var card=button.link;
var fix=1;
if(lib.skill.dcweidang.getLength(card)==len) fix=2;
return fix*_status.event.player.getUseValue(card);
}).set('len',function(){
if(!player.hasSkill('clanxiaoyong')) return 0;
var list=[];
player.getHistory('useCard',evt=>{
var len=lib.skill.dcweidang.getLength(evt.card);
list.add(len);
});
if(!list.contains(count)) return count;
if(list.length) return list.randomGet();
return 4;
}());
'step 3'
if(result.bool){
var card=result.links[0];
cards.remove(card);
var cardx={
name:get.name(card,get.owner(card)),
nature:get.nature(card,get.owner(card)),
cards:[card],
}
var next=player.chooseUseTarget(cardx,[card],true).set('oncard',(card)=>{
var owner=_status.event.getParent().owner;
if(owner) owner.$throw(card.cards);
});
if(card.name!=cardx.name||card.nature!=cardx.nature) next.viewAs=true;
var owner=get.owner(card);
if(owner!=player&&get.position(card)=='h'){
next.throw=false;
next.set('owner',owner);
}
}
'step 4'
if(!targets.length){
while(cards.length) ui.cardPile.insertBefore(cards.pop().fix(),ui.cardPile.firstChild);
game.updateRoundNumber();
}
},
ai:{
order:10,
result:{
target:function(player,target){
return -Math.min(target.countCards('h'),4)/2;
},
},
}
}
},
prompt:function(result){
if(result.index) return '点击“确定”以观看牌堆顶牌';
return '观骨:选择观看牌的目标';
},
},
subSkill:{
backup:{},
},
ai:{
order:10,
result:{
player:1,
}
},
},
clanxiaoyong:{
audio:2,
trigger:{
player:'useCard',
},
filter:function(event,player){
if(!player.getStat().skill.clanguangu) return false;
var history=player.getAllHistory('useSkill',evt=>{
return evt.skill=='clanguangu_backup';
}).map(evt=>evt.event);
if(!history.length) return false;
var num=0;
for(var i=history.length-1;i>=0;i--){
var evt=history[i];
if(evt.viewedCount){
num=evt.viewedCount;
break;
}
}
if(num&&lib.skill.dcweidang.getLength(event.card)==num) return true;
return false;
},
forced:true,
content:function(){
'step 0'
delete player.getStat().skill.clanguangu;
game.log(player,'重置了','#g【观骨】');
},
mod:{
aiOrder:function(player,card,num){
if(!player.hasSkill('clanguangu')||!player.getStat().skill.clanguangu) return;
var history=player.getAllHistory('useSkill',evt=>{
return evt.skill=='clanguangu_backup';
}).map(evt=>evt.event);
if(!history.length) return;
var numx=0;
for(var i=history.length-1;i>=0;i--){
var evt=history[i];
if(evt.viewedCount){
numx=evt.viewedCount;
break;
}
}
if(numx==lib.skill.dcweidang.getLength(card)){
if(!player.hasHistory('useCard',evt=>{
return numx==lib.skill.dcweidang.getLength(evt.card);
})){
return num+9;
}
}
},
}
},
clanbaozu:{
audio:2,
audioname:['clan_zhongyan'],
trigger:{
gloabl:'dying',
},
clanSkill:true,
limited:true,
skillAnimation:true,
animationColor:'water',
filter:function(event,player){
return event.player.hasClan('颍川钟氏')&&event.player.hp<=0&&!event.player.isLinked();
},
logTarget:'player',
check:function(event,player){
return get.recoverEffect(event.player,player,player)>10;
},
content:function(){
'step 0'
trigger.player.link(true);
trigger.player.recover();
}
},
//族王凌
clanbolong:{
audio:2,
@ -1548,6 +1800,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.storage.clanlianzhu) return '转换技。每名角色A的出牌阶段限一次。阴:A可以重铸一张牌,然后你可以重铸一张牌。若这两张牌颜色不同,则你的手牌上限-1<span class="bluetext">阳:A可以令你选择一名在你或A攻击范围内的另一名其他角色B,然后A和你可依次选择是否对B使用一张【杀】。若这两张【杀】颜色相同,则你的手牌上限+1</span>。';
return '转换技。每名角色A的出牌阶段限一次。<span class="bluetext">阴:A可以重铸一张牌,然后你可以重铸一张牌。若这两张牌颜色不同,则你的手牌上限-1</span>;阳:A可以令你选择一名在你或A攻击范围内的另一名其他角色B,然后A和你可依次选择是否对B使用一张【杀】。若这两张【杀】颜色相同,则你的手牌上限+1。';
},
clanguangu:function(player){
if(player.storage.clanguangu) return '转换技,出牌阶段限一次。阴:你可以观看牌堆顶的至多四张牌;<span class="bluetext">阳:你可以观看一名角色的至多四张手牌。</span>然后你可以使用其中的一张牌。';
return '转换技,出牌阶段限一次。<span class="bluetext">阴:你可以观看牌堆顶的至多四张牌;</span>阳:你可以观看一名角色的至多四张手牌。然后你可以使用其中的一张牌。';
},
},
translate:{
clan_wuxian:'族吴苋',
@ -1607,11 +1863,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
clanbolong_info:'出牌阶段限一次。你可以令一名其他角色选择一项1.你交给其一张牌然后视为对其使用一张雷【杀】2.交给你等同于你手牌数的牌,然后视为对你使用一张【酒】。',
clanzhongliu:'中流',
clanzhongliu_info:'宗族技,锁定技。当你使用牌时,若此牌对应的实体牌不全为同族角色的手牌,你重置武将牌上的技能。',
clan_zhongyan:'族钟琰',
clanguangu:'观骨',
clanguangu_info:'转换技,出牌阶段限一次。阴:你可以观看牌堆顶的至多四张牌;阳:你可以观看一名角色的至多四张手牌。然后你可以使用其中的一张牌。',
clanxiaoyong:'啸咏',
clanxiaoyong_info:'锁定技。当你于回合内首次使用字数为X的牌时你重置〖观骨〗X为你上次发动〖观骨〗观看的牌数。',
clanbaozu:'保族',
clanbaozu_info:'宗族技限定技。当一名同族角色进入濒死状态时你可以令其横置并回复1点体力。',
clan_wu:'陈留·吴氏',
clan_xun:'颍川·荀氏',
clan_han:'颍川·韩氏',
clan_wang:'太原·王氏',
clan_zhong:'颍川·钟氏',
},
};
});

File diff suppressed because it is too large Load Diff

View File

@ -67,7 +67,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pe_wenqin:['male','wei',4,['gzjinfa']],
pe_sunchen:['male','wu',4,['zyshilu','zyxiongnve']],
pe_mengda:['male','wei',4,['qiuan','liangfan']],
pe_zhonghui:['male','wei',4,['zyquanji','zypaiyi']],
pe_zhonghui:['male','wei',4,['zyquanji','zypaiyi'],['clan:颍川钟氏']],
pe_wangyun:['male','qun',3,['zylianji','zymoucheng'],['clan:太原王氏']],
shen_jiaxu:['male','shen',3,['weimu','zybishi','zyjianbing'],['qun']],
yj_zhenji:['female','wei',3,['yjluoshen','qingguo']],

View File

@ -66,7 +66,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xin_yujin:['male','wei',4,['jieyue']],
//lusu:['male','wu',3,['haoshi','dimeng']],
//yuanshao:['male','qun',4,['luanji','xueyi'],['zhu']],
old_zhonghui:['male','wei',3,['zzhenggong','zquanji','zbaijiang']],
old_zhonghui:['male','wei',3,['zzhenggong','zquanji','zbaijiang'],['clan:颍川钟氏']],
old_xusheng:['male','wu',4,['pojun']],
old_zhuran:['male','wu',4,['olddanshou']],
old_lingtong:['male','wu',4,['oldxuanfeng']],

View File

@ -300,6 +300,7 @@ window.noname_character_rank={
'wangguan',
'duanqiaoxiao',
'old_wanglang',
'shichangshi',
'key_misuzu',
'key_sunohara',
'key_umi',
@ -582,6 +583,7 @@ window.noname_character_rank={
'dc_ruiji',
'yuantanyuanxiyuanshang',
'yanghong',
'dc_sunhanhua',
],
bp:[
'chess_diaochan',
@ -926,6 +928,7 @@ window.noname_character_rank={
'ol_zhangzhang',
'ol_mengda',
'dc_wuban',
're_caochong',
],
b:[
'diy_feishi',
@ -1216,6 +1219,9 @@ window.noname_character_rank={
'vtb_xiaotao',
'zhangchu',
'dc_duyu',
'chentai',
'clan_zhongyan',
'sb_zhurong',
],
bm:[
'diy_xizhenxihong',
@ -1404,6 +1410,7 @@ window.noname_character_rank={
'yeshiwen',
'qianzhao',
'vtb_xiaosha',
'huanfan',
],
c:[
'xiahoudun',
@ -1465,6 +1472,7 @@ window.noname_character_rank={
'old_liubiao',
'luoxian',
'ol_huban',
'sb_menghuo',
],
d:[
'lvmeng',
@ -1505,6 +1513,7 @@ window.noname_character_rank={
'junk_lidian',
'junk_duanwei',
'std_panfeng',
'qianzhao',
],
rarity:{
legend:[

View File

@ -11,7 +11,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refresh_shan:['ol_jiangwei','ol_caiwenji','ol_liushan','ol_zhangzhang','re_zuoci','re_sunce','ol_dengai','re_zhanghe'],
refresh_yijiang1:['xin_wuguotai','xin_gaoshun','dc_caozhi','yujin_yujin','re_masu','xin_xusheng','re_fazheng','xin_lingtong','re_zhangchunhua','dc_xushu','re_chengong'],
refresh_yijiang2:['re_madai','re_wangyi','xin_handang','xin_zhonghui','re_liaohua','re_chengpu','re_caozhang','dc_bulianshi','xin_liubiao','re_xunyou','re_guanzhang'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','xin_yufan','dc_liru','re_manchong','re_fuhuanghou','re_guanping','re_liufeng'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','xin_yufan','dc_liru','re_manchong','re_fuhuanghou','re_guanping','re_liufeng','re_caochong'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan','re_caozhen','re_zhoucang','dc_chenqun','re_caifuren','re_guyong','re_jushou','re_zhuhuan','re_zhangsong'],
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu','re_gongsunyuan','re_guotufengji','re_xiahoushi','re_liuchen','re_zhuzhi'],
refresh_yijiang6:['re_guohuanghou','re_sundeng'],
@ -20,6 +20,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
connect:true,
character:{
re_caochong:['male','wei',3,['rechengxiang','renxin']],
ol_zhangzhang:['male','wu',3,['olzhijian','olguzheng']],
re_jsp_huangyueying:['female','qun',3,['rejiqiao','relinglong']],
re_zhangsong:['male','shu',3,['qiangzhi','rexiantu']],
@ -52,7 +53,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_lusu:['male','wu',3,['olhaoshi','oldimeng']],
re_jiaxu:['male','qun',3,['rewansha','reluanwu','reweimu']],
re_guyong:['male','wu',3,['reshenxing','rebingyi']],
xin_zhonghui:['male','wei',4,['xinquanji','xinzili']],
xin_zhonghui:['male','wei',4,['xinquanji','xinzili'],['clan:颍川钟氏']],
re_caifuren:['female','qun',3,['reqieting','rexianzhou']],
re_guanping:['male','shu',4,['relongyin','jiezhong']],
re_guotufengji:['male','qun',3,['rejigong','shifei']],
@ -161,6 +162,35 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_guohuai:['xiahouyuan','zhanghe'],
},
skill:{
//不想突破可以不突破的界曹冲
rechengxiang:{
audio:2,
group:'rechengxiang_gain',
trigger:{
player:'rechengxiang_gainEnd',
},
direct:true,
subfrequent:['gain'],
filter:function(event,player){
return event.cards2&&event.cards2.map(card=>{
return get.number(card);
}).reduce((sum,num)=>{
return sum+=num;
},0)==13;
},
content:function(){
'step 0'
player.link(false);
'step 1'
player.turnOver(false);
},
subSkill:{
gain:{
inherit:'chengxiang',
audio:'rechengxiang',
}
}
},
//OL界二张
olzhijian:{
audio:2,
@ -1483,7 +1513,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var effect=player.getUseValue(button.link[2]);
if(player.countCards('hs',button.link[2])>0) return 0;
if((player.getStat('skill').reqice||0)<player.countMark('reqice_mark')+1){
if(['draw','gain'].some(i=>get.tag(button.link[2],i) >= 1)) return effect*2;
if(['draw','gain'].some(i=>get.tag(button.link[2],i) >= 1)) return effect*5;
}
if(effect>0) return effect;
return 0;
@ -11984,6 +12014,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
player.storage.rerende2.push(target);
player.give(cards,target);
'step 1'
if(typeof player.storage.rerende!='number'){
player.storage.rerende=0;
}
@ -12051,7 +12082,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{
event.finish();
}
'step 1'
'step 2'
if(result&&result.bool&&result.links[0]){
var card={name:result.links[0][2],nature:result.links[0][3]};
player.chooseUseTarget(card,true);
@ -14655,6 +14686,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
olzhijian_info:'出牌阶段,你可以将一张装备牌置于其他角色的装备区(可替换原装备),然后摸一张牌。',
olguzheng:'固政',
olguzheng_info:'每阶段限一次。当其他角色的至少两张牌因弃置而进入弃牌堆后,你可以令其获得其中一张牌,然后你可以获得剩余的牌。',
re_caochong:'界曹冲',
rechengxiang:'称象',
rechengxiang_info:'当你受到伤害后你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于13的牌。若你获得的牌点数之和为13你复原武将牌。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -35,7 +35,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sb_sunce:['male','wu',4,['sbjiang','sbhunzi','sbzhiba'],['zhu']],
sb_daqiao:['female','wu',3,['sbguose','sbliuli']],
sb_liubiao:['male','qun',3,['sbzishou','sbzongshi']],
sb_zhurong:['female','shu',4,['sblieren','sbjuxiang'],['unseen']],
sb_zhurong:['female','shu',4,['sblieren','sbjuxiang']],
sb_menghuo:['male','shu',4,['sbhuoshou','sbzaiqi']],
},
characterSort:{
sb:{
@ -43,10 +44,158 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sb_shi:['sb_xuhuang','sb_machao','sb_fazheng','sb_chengong','sb_diaochan','sb_pangtong'],
sb_tong:['liucheng','sp_yangwan','sb_xiahoushi','sb_zhangfei','sb_zhaoyun','sb_sunce','sb_zhurong'],
sb_yu:['sb_yujin','sb_lvmeng','sb_huangzhong','sb_huanggai','sb_zhouyu','sb_caoren','sb_ganning'],
sb_neng:['sb_huaxiong','sb_sunshangxiang','sb_jiangwei','sb_yuanshao'],
sb_neng:['sb_huaxiong','sb_sunshangxiang','sb_jiangwei','sb_yuanshao','sb_menghuo'],
}
},
skill:{
//萌货
sbhuoshou:{
audio:2,
trigger:{
player:'phaseUseBegin',
},
filter:function(event,player){
return true;
},
forced:true,
onremove:true,
group:['sbhuoshou_cancel','sbhuoshou_source','sbhuoshou_nanmaned'],
content:function(){
'step 0'
var card=get.discardPile(card=>{
return card.name=='nanman';
});
if(card){
player.gain(card,'gain2');
}
else{
game.log('但是弃牌堆里并没有','#y南蛮入侵','');
player.addMark('sbhuoshou',1,false);
if(player.countMark('sbhuoshou')>=5&&Math.random()<0.25) player.chat('我南蛮呢');
}
},
subSkill:{
cancel:{
audio:'sbhuoshou',
trigger:{target:'useCardToBefore'},
forced:true,
priority:15,
filter:function(event,player){
return (event.card.name=='nanman');
},
content:function(){
trigger.cancel();
},
},
source:{
audio:'sbhuoshou',
trigger:{global:'useCardToPlayered'},
forced:true,
filter:function(event,player){
return event.isFirstTarget&&event.card&&event.card.name=='nanman'&&event.player!=player;
},
content:function(){
trigger.getParent().customArgs.default.customSource=player;
}
},
nanmaned:{
trigger:{
player:'useCard1',
},
filter:function(event,player){
return event.card.name=='nanman';
},
forced:true,
popup:false,
charlotte:true,
content:function(){
'step 0'
player.addTempSkill('sbhuoshou_ban','phaseUseAfter');
}
},
ban:{
charlotte:true,
intro:{
content:'此阶段不能再使用【南蛮入侵】',
}
},
},
mod:{
cardEnabled:function(card,player){
if(player.hasSkill('sbhuoshou_ban')&&card.name=='nanman') return false;
},
},
ai:{
threaten:1.9,
}
},
sbzaiqi:{
audio:2,
trigger:{
player:'phaseDiscardEnd',
},
chargeSkill:true,
filter:function(event,player){
return player.hasMark('charge');
},
group:'sbzaiqi_backflow',
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('sbzaiqi'),'选择任意名角色并消耗等量蓄力值令这些角色选择一项1.令你摸一张牌2.弃置一张牌然后你回复1点体力',[1,player.countMark('charge')]).set('ai',function(target){
var player=_status.event.player;
return get.attitude(player,target)+player.getDamagedHp()*3.5;
});
'step 1'
if(result.bool){
var targets=result.targets;
targets.sortBySeat();
event.targets=targets;
player.logSkill('sbzaiqi',targets);
player.removeMark('charge',targets.length);
}
else event.finish();
'step 2'
var target=targets.shift();
event.target=target;
if(!target.countCards('he')) event._result={bool:false};
else target.chooseToDiscard(get.translation(player)+'对你发动了【再起】','是否弃置一张牌令其回复1点体力或者点击“取消”令该角色摸一张牌。','he').set('ai',card=>{
var eff=_status.event.eff,att=_status.event.att;
if(eff>0&&att>0||eff<=0&&att<0) return 5.5-get.value(card);
return 0;
}).set('eff',get.recoverEffect(player,player,target)).set('att',get.attitude(target,player));
'step 3'
target.line(player);
if(result.bool){
player.recover();
}
else{
player.draw();
}
game.delayex();
if(targets.length) event.goto(2);
},
subSkill:{
backflow:{
audio:'sbzaiqi',
trigger:{
player:'enterGame',
source:'damageSource',
global:'phaseBefore',
},
usable:1,
forced:true,
locked:false,
filter:function(event,player){
if(event.name=='damage') return true;
return (event.name!='phase'||game.phaseNumber==0);
},
content:function(){
player.addMark('charge',1);
}
}
}
},
//祝融
sblieren:{
audio:2,
@ -4491,6 +4640,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sblieren_info:'当你使用【杀】指定唯一目标后你可以摸一张牌并与其拼点。若你赢此【杀】结算结束后你可以对另一名其他角色造成1点伤害。',
sbjuxiang:'巨象',
sbjuxiang_info:'锁定技。①【南蛮入侵】对你无效。②当其他角色使用【南蛮入侵】结算结束后,你获得此牌对应的所有实体牌。③结束阶段,若你未于本回合使用过【南蛮入侵】,你可以将一张游戏外的随机【南蛮入侵】(共八张)交给一名角色。',
sb_menghuo:'谋孟获',
sbhuoshou:'祸首',
sbhuoshou_info:'锁定技。①【南蛮入侵】对你无效。②当其他角色使用【南蛮入侵】指定第一个目标后,你代替其成为此牌的伤害来源。③出牌阶段开始时,你随机获得弃牌堆中的一张【南蛮入侵】。④出牌阶段,若你于此阶段使用过【南蛮入侵】,你不能使用【南蛮入侵】。',
sbzaiqi:'再起',
sbzaiqi_info:'蓄力技1/7。①弃牌阶段结束时你可以消耗任意点蓄力值并选择等量名角色然后令这些角色选择一项1.令你摸一张牌2.弃置一张牌然后你回复1点体力。②每回合限一次。当你造成伤害后你获得1点蓄力值。',
sb_zhi:'谋攻篇·知',
sb_shi:'谋攻篇·识',

View File

@ -18,9 +18,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhangjinyun:['female','shu',3,['dchuizhi','dcjijiao']],
dc_mengda:['male','wei',4,['dclibang','dcwujie']],
dc_zhangmancheng:['male','qun',4,['dclvecheng','dczhongji'],['unseen']],
huanfan:['male','wei',3,['dcjianzheng','dcfumou'],['unseen']],
huanfan:['male','wei',3,['dcjianzheng','dcfumou']],
mengyou:['male','qun',5,['hmmanyi','dcmanzhi'],['unseen']],
chentai:['male','wei',4,['dcjiuxian','dcchenyong'],['unseen']],
chentai:['male','wei',4,['dcctjiuxian','dcchenyong']],
dc_sunchen:['male','wu',4,['dczigu','dczuowei'],['unseen']],
sunyu:['male','wu',3,['dcquanshou','dcshexue'],['unseen']],
xizheng:['male','shu',3,['dcdanyi','dcwencan'],['unseen']],
@ -41,7 +41,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dc_yangbiao:['male','qun',3,['dczhaohan','dcjinjie','dcjue']],
dc_huojun:['male','shu',4,['dcgue','dcsigong']],
guānning:['male','shu',3,['dcxiuwen','dclongsong']],
dc_sunhanhua:['female','wu',3,['dchuiling','dcchongxu'],['unseen']],
dc_sunhanhua:['female','wu',3,['dchuiling','dcchongxu']],
dc_sunziliufang:['male','wei',3,['dcqinshen','dcweidang']],
dc_tengfanglan:['female','wu',3,['dcluochong','dcaichen']],
yuantanyuanxiyuanshang:['male','qun',4,['dcneifa']],
@ -2333,7 +2333,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
//陈泰
dcjiuxian:{
dcctjiuxian:{
audio:2,
enable:'phaseUse',
usable:1,
@ -2359,18 +2359,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
player.draw(cards.length);
'step 1'
player.addTempSkill('dcjiuxian_help');
player.addTempSkill('dcctjiuxian_help');
player.chooseUseTarget({
name:'juedou',
isCard:true,
storage:{dcjiuxian:true}
storage:{dcctjiuxian:true}
},true);
},
subSkill:{
help:{
trigger:{global:'damageSource'},
filter:function(event,player){
return event.card&&event.card.storage&&event.card.storage.dcjiuxian&&event.player.isIn()&&
return event.card&&event.card.storage&&event.card.storage.dcctjiuxian&&event.player.isIn()&&
event.getParent(2).targets.contains(event.player)&&game.hasPlayer(current=>{
return current!=player&&event.player.inRange(current)&&current.isDamaged();
});
@ -2387,7 +2387,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('dcjiuxian_help',target);
player.logSkill('dcctjiuxian_help',target);
target.recover(player);
}
}
@ -4196,7 +4196,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var card={name:name,isCard:true};
if(event.filterCard(card,player,event)) vcards.push(['基本','',name]);
}
return ui.create.dialog('胆迎',[vcards,'vcard'],'hidden');
var dialog=ui.create.dialog('胆迎',[vcards,'vcard'],'hidden');
dialog.direct=true;
return dialog;
},
backup:function(links,player){
return {
@ -4802,6 +4804,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}]
];
var name=evt.name;
if(trigger.name=='loseAsync') name=evt.type;
var list=['useCard','respond','discard','other'];
if(!list.contains(name)) name='other';
for(var i=0;i<1+player.countMark('dcqinghuang_add');i++){
@ -4838,6 +4841,35 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
dcqinghuang:{
audio:2,
trigger:{player:'phaseUseBegin'},
filter:function(event,player){
return player.maxHp>1;
},
check:function(event,player){
var num1=player.countCards('h');
var num2=player.countCards('h',card=>player.hasValueTarget(card));
var num3=player.getHandcardLimit();
if(player.isDamaged()){
return num2>1||num1-num2-num3>0;
}
else{
return num2>2+Math.max(0,3-player.hp)||player.hp>2&&num1-num2-num3>2;
}
},
content:function(){
player.loseMaxHp();
player.addTempSkill('dcqinghuang_add');
player.addMark('dcqinghuang_add',1,false);
},
subSkill:{
add:{
charlotte:true,
onremove:true,
}
}
},
//孟节
dcyinlu:{
audio:2,
@ -31287,8 +31319,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcmanzhi:'蛮智',
dcmanzhi_info:'①准备阶段你可以选择一名其他角色并选择一项1.令其交给你两张牌然后其视为使用一张无距离限制的【杀】2.获得其区域内至多两张牌,然后交给其等量的牌并摸一张牌。②结束阶段,若你的体力值与本回合准备阶段时的体力值相等,你可以执行你未于本回合执行过的〖蛮智①〗的分支。',
chentai:'陈泰',
dcjiuxian:'救陷',
dcjiuxian_info:'出牌阶段限一次。你可以重铸一半数量的手牌向上取整然后视为使用一张【决斗】。当此牌对目标角色造成伤害后你可以令其攻击范围内的一名其他角色回复1点体力。',
dcctjiuxian:'救陷',
dcctjiuxian_info:'出牌阶段限一次。你可以重铸一半数量的手牌向上取整然后视为使用一张【决斗】。当此牌对目标角色造成伤害后你可以令其攻击范围内的一名其他角色回复1点体力。',
dcchenyong:'沉勇',
dcchenyong_info:'结束阶段你可以摸X张牌X为本回合你使用过的牌的类型数。',
dc_sunchen:'孙綝',

View File

@ -7577,7 +7577,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.filterCard({name:'shan'},player,event)){
list.push(['基本','','shan']);
}
return ui.create.dialog('朝凤',[list,'vcard'],'hidden');
var dialog=ui.create.dialog('朝凤',[list,'vcard'],'hidden');
dialog.direct=true;
return dialog;
},
check:function(button){
var player=_status.event.player;

View File

@ -46,7 +46,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
bulianshi:['female','wu',3,['old_anxu','zhuiyi']],
handang:['male','wu',4,['gongji','jiefan']],
fuhuanghou:['female','qun',3,['qiuyuan','zhuikong']],
zhonghui:['male','wei',4,['quanji','zili']],
zhonghui:['male','wei',4,['quanji','zili'],['clan:颍川钟氏']],
jianyong:['male','shu',3,['qiaoshui','jyzongshi']],
old_madai:['male','shu',4,['mashu','qianxi']],
liufeng:['male','shu',4,['xiansi']],
@ -72,7 +72,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caorui:['male','wei',3,['huituo','mingjian','xingshuai'],['zhu']],
caoxiu:['male','wei',4,['qianju','qingxi']],
zhongyao:['male','wei',3,['huomo','zuoding']],
zhongyao:['male','wei',3,['huomo','zuoding'],['clan:颍川钟氏']],
liuchen:['male','shu',4,['zhanjue','qinwang'],['zhu']],
zhangyi:['male','shu',4,['wurong','shizhi']],
sunxiu:['male','wu',3,['yanzhu','xingxue','xinzhaofu'],['zhu']],
@ -12835,7 +12835,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
var dialog=ui.create.dialog(str,cards);
dialog.videoId=id;
},player,event.videoId,event.cards,event.name=='chengxiang'?13:12);
},player,event.videoId,event.cards,event.name=='oldchengxiang'?12:13);
event.time=get.utc();
game.addVideo('showCards',player,['称象',get.cardsInfo(event.cards)]);
game.addVideo('delay',null,2);
@ -12849,7 +12849,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
return (num+get.number(button.link)<=_status.event.maxNum);
});
next.set('maxNum',event.name=='chengxiang'?13:12);
next.set('maxNum',event.name=='oldchengxiang'?12:13);
next.set('ai',function(button){
return get.value(button.link,_status.event.player);
});
@ -12915,6 +12915,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
renxin:{
trigger:{global:'damageBegin4'},
audio:2,
audioname:['re_caochong'],
//priority:6,
filter:function(event,player){
return event.player!=player&&event.player.hp==1&&player.countCards('he',{type:'equip'})>0;
@ -13543,7 +13544,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
chengpu:['re_chengpu','tw_chengpu','ns_chengpu','chengpu','xin_chengpu'],
liubiao:['re_liubiao','xin_liubiao','liubiao','oldre_liubiao','old_liubiao'],
manchong:['re_manchong','manchong'],
caochong:['caochong','old_caochong'],
caochong:['re_caochong','caochong','old_caochong'],
guohuai:['guohuai','tw_guohuai','re_guohuai','xin_guohuai','ol_guohuai'],
jianyong:['re_jianyong','xin_jianyong','jianyong'],
panzhangmazhong:['xin_panzhangmazhong','re_panzhangmazhong','panzhangmazhong'],
@ -14103,8 +14104,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhiyan_info:'结束阶段,你可以令一名角色摸一张牌并展示之,若为装备牌,其使用此牌并回复一点体力。',
miji_info:'结束阶段若你已受伤则可以摸X张牌然后可以将等量的牌交给一名其他角色X为你已损失的体力值。',
zhenlie_info:'当你成为其他角色使用【杀】或普通锦囊牌的目标后,你可以失去一点体力并令此牌对你无效,然后弃置对方一张牌。',
chengxiang_info:'当你受到伤害后你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于13的牌',
oldchengxiang_info:'当你受到伤害后你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于12的牌',
chengxiang_info:'当你受到伤害后你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于13的牌',
oldchengxiang_info:'当你受到伤害后你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于12的牌',
renxin_info:'当体力值为1的一名其他角色受到伤害时你可以将武将牌翻面并弃置一张装备牌然后防止此伤害。',
oldrenxin_info:'其他角色进入濒死状态时你可以将所有手牌交给该角色并翻面然后该角色回复1点体力。',
jingce_info:'出牌阶段结束时,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。',

View File

@ -11,7 +11,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yangzhi:['female','jin',3,['xinwanyi','maihuo']],
yangyan:['female','jin',3,['xinxuanbei','xianwan']],
ol_huaxin:['male','wei',3,['caozhao','olxibing']],
zhongyan:['female','jin',3,['bolan','yifa']],
zhongyan:['female','jin',3,['bolan','yifa'],['clan:颍川钟氏']],
weiguan:['male','jin',3,['zhongyun','shenpin']],
cheliji:['male','qun',4,['chexuan','qiangshou']],
simazhou:['male','jin',4,['recaiwang','naxiang']],

View File

@ -12402,6 +12402,7 @@
next.setContent(info.content);
next.skillHidden=event.skillHidden;
if(info.forceDie) next.forceDie=true;
if(event.skill=='_turnover') next.includeOut=true;
"step 4"
if(player._hookTrigger){
for(var i=0;i<player._hookTrigger.length;i++){
@ -13039,19 +13040,55 @@
if(event.dialog&&typeof event.dialog=='object') event.dialog.close();
var dialog=info.chooseButton.dialog(event,player);
if(info.chooseButton.chooseControl){
var next=player.chooseControl(info.chooseButton.chooseControl(event,player));
next.dialog=dialog;
next.set('ai',info.chooseButton.check||function(){return 0;});
if(event.id) next._parent_id=event.id;
next.type='chooseToUse_button';
var choices=info.chooseButton.chooseControl(event,player);
var choicesx=choices.slice(0);
choicesx.remove('cancel2');
if(choicesx.length==1&&dialog.direct||dialog.forceDirect){
event._result={
bool:true,
control:choicesx[0],
index:0,
}
}
else{
var next=player.chooseControl(choices);
next.dialog=dialog;
next.set('ai',info.chooseButton.check||function(){return 0;});
if(event.id) next._parent_id=event.id;
next.type='chooseToUse_button';
}
}
else{
var next=player.chooseButton(dialog);
next.set('ai',info.chooseButton.check||function(){return 1;});
next.set('filterButton',info.chooseButton.filter||function(){return true;});
next.set('selectButton',info.chooseButton.select||1);
if(event.id) next._parent_id=event.id;
next.type='chooseToUse_button';
var ai=info.chooseButton.check||function(){return 1;};
var filterButton=info.chooseButton.filter||function(){return true};
var selectButton=info.chooseButton.select||1;
var chooseable=[];
var evt=game.createEvent('emptyEvent');
event.next.remove(evt);
evt.parent=_status.event;
evt.player=player;
var tmpevt=_status.event;
_status.event=evt;
for(var i=0;i<dialog.buttons.length;i++){
var btn=dialog.buttons[i];
if(filterButton(btn,player)) chooseable.push(btn);
}
_status.event=tmpevt;
if(chooseable.length==1&&dialog.direct||dialog.forceDirect){
event._result={
bool:true,
buttons:chooseable[0],
links:[chooseable[0].link],
}
}
else{
var next=player.chooseButton(dialog);
next.set('ai',ai);
next.set('filterButton',filterButton);
next.set('selectButton',selectButton);
if(event.id) next._parent_id=event.id;
next.type='chooseToUse_button';
}
}
event.buttoned=event.result.skill;
}
@ -13220,15 +13257,51 @@
if(event.dialog&&typeof event.dialog=='object') event.dialog.close();
var dialog=info.chooseButton.dialog(event,player);
if(info.chooseButton.chooseControl){
var next=player.chooseControl(info.chooseButton.chooseControl(event,player));
next.dialog=dialog;
next.set('ai',info.chooseButton.check||function(){return 0;});
var choices=info.chooseButton.chooseControl(event,player);
var choicesx=choices.slice(0);
choicesx.remove('cancel2');
if(choicesx.length==1&&dialog.direct||dialog.forceDirect){
event._result={
bool:true,
control:choicesx[0],
index:0,
}
}
else{
var next=player.chooseControl(choices);
next.dialog=dialog;
next.set('ai',info.chooseButton.check||function(){return 0;});
}
}
else{
var next=player.chooseButton(dialog);
next.set('ai',info.chooseButton.check||function(){return 1;});
next.set('filterButton',info.chooseButton.filter||function(){return true;});
next.set('selectButton',info.chooseButton.select||1);
var ai=info.chooseButton.check||function(){return 1;};
var filterButton=info.chooseButton.filter||function(){return true};
var selectButton=info.chooseButton.select||1;
var chooseable=[];
var evt=game.createEvent('emptyEvent');
event.next.remove(evt);
evt.parent=_status.event;
evt.player=player;
var tmpevt=_status.event;
_status.event=evt;
for(var i=0;i<dialog.buttons.length;i++){
var btn=dialog.buttons[i];
if(filterButton(btn,player)) chooseable.push(btn);
}
_status.event=tmpevt;
if(chooseable.length==1&&dialog.direct||dialog.forceDirect){
event._result={
bool:true,
buttons:chooseable[0],
links:[chooseable[0].link],
}
}
else{
var next=player.chooseButton(dialog);
next.set('ai',ai);
next.set('filterButton',filterButton);
next.set('selectButton',selectButton);
}
}
event.buttoned=event.result.skill;
}
@ -19232,6 +19305,7 @@
dead:this.isDead(),
linked:this.isLinked(),
turnedover:this.isTurnedOver(),
out:this.isOut(),
phaseNumber:this.phaseNumber,
unseen:this.isUnseen(0),
unseen2:this.isUnseen(1),
@ -22429,6 +22503,7 @@
}
var next=game.createEvent('turnOver');
next.player=this;
next.includeOut=true;
next.setContent('turnOver');
return next;
},
@ -28773,7 +28848,7 @@
},
},
_showHiddenCharacter:{
trigger:{player:['changeHp','phaseBeginStart','loseMaxHpBegin']},
trigger:{player:['changeHp','phaseBeginStart','loseMaxHpBegin','gainMaxHpBegin']},
firstDo:true,
forced:true,
popup:false,
@ -29718,10 +29793,10 @@
giveup:function(player){
if(lib.node.observing.contains(this)||!player||!player._giveUp) return;
_status.event.next.length=0;
game.createEvent('giveup',false).setContent(function(){
game.createEvent('giveup',false).set('includeOut',true).setContent(function(){
game.log(player,'投降');
player.popup('投降');
player.die('nosource');
player.die('nosource').includeOut=true;
}).player=player;
},
auto:function(){
@ -30302,6 +30377,7 @@
}
else{
player.init(info.name1,info.name2);
if(info.name&&info.name!=info.name1) player.name=info.name;
}
if(!info.unseen) player.classList.remove('unseen');
if(!info.unseen2) player.classList.remove('unseen2');
@ -30341,6 +30417,9 @@
if(info.turnedover){
player.classList.add('turnedover');
}
if(info.out){
player.classList.add('out');
}
if(info.disableJudge){
player.$disableJudge();
}
@ -34062,7 +34141,7 @@
}
},
createTrigger:function(name,skill,player,event){
if(player.isOut()||player.removed) return;
if((player.isOut()||player.removed)&&skill!='_turnover') return;
if(player.isDead()&&!lib.skill[skill].forceDie) return;
var next=game.createEvent('trigger',false);
next.skill=skill;
@ -34070,6 +34149,7 @@
next.triggername=name;
next.forceDie=true;
next._trigger=event;
if(skill=='_turnover') next.includeOut=true;
next.setContent('createTrigger');
},
createEvent:function(name,trigger,triggerevent){
@ -45460,10 +45540,10 @@
}
else{
_status.event.next.length=0;
game.createEvent('giveup',false).setContent(function(){
game.createEvent('giveup',false).set('includeOut',true).setContent(function(){
game.log(player,'投降');
player.popup('投降');
player.die('nosource');
player.die('nosource').includeOut=true;
}).player=player;
}
if(_status.paused&&_status.imchoosing&&!_status.auto){
@ -50524,7 +50604,7 @@
}
// ui.click.skin(this,player.name);
game.pause2();
ui.click.charactercard(player.name,null,null,true,this);
ui.click.charactercard(player.name1||player.name,null,null,true,this);
},
avatar2:function(){
if(!lib.config.doubleclick_intro) return;
@ -50770,7 +50850,7 @@
}
game.uncheck();
game.check();
if(event.skillDialog){
if(event.skillDialog===true){
var str=get.translation(skill);
if(info.prompt){
var str2;

BIN
image/character/chentai.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
image/character/huanfan.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Some files were not shown because too many files have changed in this diff Show More