我可是全知全能的神!

This commit is contained in:
Spmario233 2020-12-31 18:28:10 +08:00
parent 22a4950770
commit 906755306d
36 changed files with 603 additions and 169 deletions

BIN
audio/die/liubian.mp3 Normal file

Binary file not shown.

BIN
audio/die/ol_dingyuan.mp3 Normal file

Binary file not shown.

BIN
audio/die/zhujun.mp3 Normal file

Binary file not shown.

BIN
audio/skill/cixiao1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/cixiao2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dushi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dushi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gongjian1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gongjian2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/kuimang1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/kuimang2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shiyuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shiyuan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spweiwu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spweiwu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/xianshuai1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/xianshuai2.mp3 Normal file

Binary file not shown.

View File

@ -1382,8 +1382,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
}
if(event.card.yingbian){
var cardx=event.getParent().respondTo[1];
if(cardx&&cardx.cards&&cardx.cards.filterInD().length) player.gain(cardx.cards.filterInD(),'gain2','log');
var cardx=event.getParent().respondTo;
if(cardx&&cardx[1]&&cardx[1].cards&&cardx[1].cards.filterInD().length) player.gain(cardx[1].cards.filterInD(),'gain2','log');
}
},
},

View File

@ -251,6 +251,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
});
},
ai:{
basic:{
equipValue:0.5
}
},
},
taigongyinfu:{
audio:true,
@ -398,23 +403,28 @@ game.import('card',function(lib,game,ui,get,ai,_status){
'step 0'
player.chooseTarget(function(card,player,target){
return !target.isLinked();
},'是否发动【太公阴符】横置一名角色?').set('',function(target){
},'是否发动【太公阴符】横置一名角色?').set('ai',function(target){
return get.effect(target,{name:'tiesuo'},_status.event.player,_status.event.player);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('taigongyinfu_skill',target);
player.logSkill('taigongyinfu_link',target);
target.link();
}
},
ai:{
expose:0.2,
},
},
_yingbian:{
trigger:{player:'useCard1'},
forced:true,
popup:false,
firstDo:true,
ruleSkill:true,
filter:function(event,player){
if(event.card.yingbian) return false;
var bool=player.hasSkillTag('forceYingbian');
var card=event.card;
if(get.cardtag(card,'yingbian_kongchao')&&(!player.countCards('h')||bool)) return true;
@ -440,7 +450,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
player.popup('富甲','orange');
bool=true;
}
else if(player.hasSkillTag('forceYingbian')) bool=true;
else if(player.hasSkillTag('forceYingbian')){
player.popup('应变','metal');
bool=true;
}
if(bool){
game.log(player,'触发了',card,'的应变条件');
event.goto(10);
@ -591,6 +604,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
target.discard(event.zhuzhanresult2.cards);
target.popup('助战','wood');
game.log(target,'响应了',player,'发起的助战');
target.addExpose(0.2);
}
else event.finish();
'step 10'

View File

@ -12,7 +12,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
extra_shan:['shen_zhaoyun','shen_simayi'],
extra_yin:['shen_liubei','shen_luxun'],
extra_lei:['shen_ganning','shen_zhangliao'],
extra_key:['key_kagari','key_shiki'],
extra_key:['key_kagari','key_shiki','key_hina'],
extra_ol:['ol_zhangliao','shen_caopi','shen_zhenji'],
extra_offline:['shen_diaochan'],
extra_mini:['mini_zhugeliang','mini_lvbu'],
@ -21,7 +21,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
character:{
key_kagari:['female','shen',3,['kagari_zongsi'],['key']],
key_shiki:['female','shen','3/5',['shiki_omusubi'],['key']],
//key_hina:['female','shen',3,[],['key']],
key_hina:['female','shen',3,['hina_shenxian','hina_mashu','hina_tieji'],['key','hiddenSkill']],
shen_diaochan:['female','shen',3,['meihun','huoxin'],['qun']],
shen_guanyu:['male','shen',5,['new_wuhun','wushen'],['shu']],
@ -64,6 +64,166 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
hina_shenxian:{
hiddenSkill:true,
trigger:{player:'showCharacterAfter'},
forced:true,
filter:function(event,player){
return event.toShow.contains('key_hina');
},
content:function(){
player.equip(game.createCard('hina_shenji','diamond',13));
},
},
hina_mashu:{
mod:{
globalFrom:function(from,to,distance){
return distance-1;
}
},
},
hina_tieji:{
shaRelated:true,
trigger:{player:'useCardToPlayered'},
check:function(event,player){
return get.attitude(player,event.target)<0;
},
filter:function(event,player){
return event.card.name=='sha';
},
logTarget:'target',
content:function(){
"step 0"
player.judge(function(){return 0});
if(!trigger.target.hasSkill('fengyin')){
trigger.target.addTempSkill('fengyin');
}
"step 1"
var suit=result.suit;
if(result.suit=='spade'){
var id=trigger.target.playerid;
var map=trigger.customArgs;
if(!map[id]) map[id]={};
if(!map[id].extraDamage) map[id].extraDamage=0;
map[id].extraDamage++;
}
var target=trigger.target;
var num=target.countCards('h','shan');
target.chooseToDiscard('请弃置一张'+get.translation(suit)+'牌,否则不能使用闪抵消此杀','he',function(card){
return get.suit(card)==_status.event.suit;
}).set('ai',function(card){
var num=_status.event.num;
if(num==0) return 0;
if(card.name=='shan') return num>1?2:0;
return 8-get.value(card);
}).set('num',num).set('suit',suit);
"step 2"
if(!result.bool){
trigger.directHit.add(trigger.target);
}
},
ai:{
ignoreSkill:true,
skillTagFilter:function(player,tag,arg){
if(!arg||arg.isLink||!arg.card||arg.card.name!='sha') return false;
if(!arg.target||get.attitude(player,arg.target)>=0) return false;
if(!arg.skill||!lib.skill[arg.skill]||lib.skill[arg.skill].charlotte||get.is.locked(arg.skill)||!arg.target.getSkills(true,false).contains(arg.skill)) return false;
},
},
},
hina_guixin:{
trigger:{
player:"phaseZhunbeiBegin",
},
filter:function(event,player){
return player.hasSkill('hina_shenxian');
},
content:function(){
"step 0"
var targets=game.filterPlayer();
targets.remove(player);
targets.sort(lib.sort.seat);
event.targets=targets;
"step 1"
event.num=0;
player.line(targets,'green');
player.chooseControl('手牌区','装备区','判定区').set('ai',function(){
if(game.hasPlayer(function(current){
return current.countCards('j')&&current!=player&&get.attitude(player,current)>0;
})) return 2;
return Math.floor(Math.random()*3);
}).set('prompt','请选择优先获得的区域');
"step 2"
event.range={
手牌区:['h','e','j'],
装备区:['e','h','j'],
判定区:['j','h','e'],
}[result.control||'手牌区'];
"step 3"
if(num<event.targets.length){
var target=event.targets[num];
var range=event.range;
for(var i=0;i<range.length;i++){
var cards=target.getCards(range[i]);
if(cards.length){
var card=cards.randomGet();
player.gain(card,target,'giveAuto','bySelf');
break;
}
}
event.num++;
}
"step 4"
if(num<event.targets.length) event.goto(3);
"step 5"
player.turnOver();
},
},
hina_shenfen:{
trigger:{
player:"phaseJieshuBegin",
},
filter:function(event,player){
return player.hasSkill('hina_shenxian');
},
content:function(){
"step 0"
event.delay=false;
event.targets=game.filterPlayer();
event.targets.remove(player);
event.targets.sort(lib.sort.seat);
player.line(event.targets,'green');
event.targets2=event.targets.slice(0);
event.targets3=event.targets.slice(0);
"step 1"
if(event.targets2.length){
event.targets2.shift().damage('nocard');
event.redo();
}
"step 2"
if(event.targets.length){
event.current=event.targets.shift()
if(event.current.countCards('e')) event.delay=true;
event.current.discard(event.current.getCards('e')).delay=false;
}
"step 3"
if(event.delay) game.delay(0.5);
event.delay=false;
if(event.targets.length) event.goto(2);
"step 4"
if(event.targets3.length){
var target=event.targets3.shift();
target.chooseToDiscard(4,'h',true).delay=false;
if(target.countCards('h')) event.delay=true;
}
"step 5"
if(event.delay) game.delay(0.5);
event.delay=false;
if(event.targets3.length) event.goto(4);
"step 6"
player.turnOver();
},
},
miniwuqian:{
audio:'wuqian',
trigger:{
@ -3633,6 +3793,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
card:{
hina_shenji:{
type:'equip',
subtype:'equip5',
derivation:'key_hina',
skills:['hina_guixin','hina_shenfen'],
fullskin:true,
ai:{
equipValue:function(card,player){
if(player.hasSkill('hina_shenxian')) return 100;
return 0;
},
basic:{
equipValue:100
}
},
},
},
dynamicTranslate:{
nzry_longnu:function(player){
if(player.hasSkill('nzry_longnu_2')) return '转换技锁定技出牌阶段开始时你失去1点体力并摸一张牌然后本回合内你的红色手牌均视为火【杀】且无距离限制。<span class="legendtext">阳出牌阶段开始时你减1点体力上限并摸一张牌然后本回合你的锦囊牌均视为雷【杀】且无使用次数限制。</span>';
@ -3815,7 +3993,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shiki_omusubi:'御结',
shiki_omusubi_info:'一轮游戏开始时你可以减1点体力上限然后将一名其他角色武将牌上的技能加入到你的武将牌上。',
shiki_omusubi_append:'<span style="font-family: yuanli">来吧,羽依里。用你的手,让我变成那只真正的鬼吧!</span>',
//key_hina:'佐藤雏',
key_hina:'佐藤雏',
hina_shenxian:'神现',
hina_shenxian_info:'隐匿技,锁定技,当你明置此武将牌时,你将一张【神机】置入装备区。',
hina_mashu:'马术',
hina_mashu_info:'锁定技,你计算于其他角色的距离时始终-1。',
hina_tieji:'铁骑',
hina_tieji_info:'当你使用【杀】指定目标后,你可进行判定。你令目标角色的所有非锁定技失效直到回合结束。除非其弃置一张与判定结果花色相同的牌,则其不能响应此【杀】。若判定结果为♠,则此【杀】对其的伤害+1。',
hina_shenji:'神机',
hina_shenji_info:'若你拥有技能〖神现〗,则你可以于准备阶段发动〖归心〗,并可于结束阶段发动〖神愤〗。',
hina_guixin:'归心',
hina_shenfen:'神愤',
extra_feng:'神话再临·风',
extra_huo:'神话再临·火',

View File

@ -32,6 +32,7 @@ window.noname_character_rank={
'key_yuri',
'key_yui',
'key_lucia',
'key_hina',
'sp_key_kanade',
'key_shizuru',
],
@ -610,6 +611,8 @@ window.noname_character_rank={
'sp_wangyuanji',
'sp_xinxianying',
'sp_liuxie',
'hanfu',
're_quyi',
'key_kengo',
'key_riki',
'key_hinata',
@ -1082,6 +1085,7 @@ window.noname_character_rank={
'key_godan',
're_machao',
're_sunben',
'ol_dingyuan',
'key_tomoya',
'key_masato',
'key_shiorimiyuki',
@ -1093,6 +1097,7 @@ window.noname_character_rank={
'key_noda',
'key_shiina',
'key_shiroha',
'key_hina',
],
epic:[
'pal_yueqi',
@ -1508,8 +1513,9 @@ window.noname_character_rank={
'xin_lingtong',
'xin_liubiao',
're_xinxianying',
'ol_dingyuan',
'wangrong',
're_quyi',
'hanfu',
],
junk:[
'sunshao',

View File

@ -6852,7 +6852,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.target.addTempSkill('fengyin');
}
"step 1"
var suit=get.suit(result.card);
var suit=result.suit;
var target=trigger.target;
var num=target.countCards('h','shan');
target.chooseToDiscard('请弃置一张'+get.translation(suit)+'牌,否则不能使用闪抵消此杀','he',function(card){

View File

@ -7188,7 +7188,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhurong:['re_zhurong','zhurong'],
sunjian:['ol_sunjian','re_sunjian','sunjian'],
jiaxu:['jiaxu','sp_jiaxu','ns_jiaxu'],
dongzhuo:['ol_dongzhuo','re_dongzhuo','dongzhuo'],
dongzhuo:['ol_dongzhuo','sp_dongzhuo','re_dongzhuo','dongzhuo'],
dengai:['re_dengai','ol_dengai','dengai'],
zhanghe:['zhanghe','sp_zhanghe','yj_zhanghe'],
jiangwei:['re_jiangwei','sp_jiangwei','mini_jiangwei','jiangwei'],

View File

@ -143,6 +143,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wangyun:['male','qun',4,['xinlianji','xinmoucheng']],
sunqian:['male','shu',3,['qianya','shuimeng']],
xizhicai:['male','wei',3,['tiandu','xianfu','chouce']],
quyi:['male','qun',4,['fuqi','jiaozi']],
luzhi:['male','wei',3,['qingzhongx','weijing']],
@ -540,12 +541,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
spweiwu:{
audio:2,
enable:'phaseUse',
usable:1,
viewAs:{name:'shunshou'},
filterCard:{color:'red'},
position:'he',
audio:'xiaoxi',
check:function(card){
return 7-get.value(card);
},
@ -14689,7 +14690,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caoang:['caoang','yj_caoang','tw_caoang'],
caohong:['caohong','tw_caohong'],
xiahouba:['re_xiahouba','xiahouba'],
maliang:['maliang','re_maliang','ol_maliang','old_maliang'],
maliang:['maliang','re_maliang','tw_maliang','ol_maliang','old_maliang'],
dingfeng:['dingfeng','tw_dingfeng'],
zumao:['zumao','tw_zumao'],
beimihu:['tw_beimihu','beimihu'],
@ -14701,7 +14702,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhangliang:['re_zhangliang','zhangliang'],
lingju:['lingju','old_lingju'],
guansuo:['guansuo','ol_guansuo'],
zhangxingcai:['old_zhangxingcai'],
zhangxingcai:['zhangxingcai','old_zhangxingcai'],
},
translate:{
"xinfu_lingren":"凌人",
@ -15538,6 +15539,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spmouzhu_info:'出牌阶段限一次你可以从“距离为1”或“体力值等于你”中选择一个条件然后令此时所有满足条件的角色依次进行以下结算交给你一张手牌然后若其手牌数小于你则其视为对你使用一张【杀】或【决斗】。',
xiaoxi:'骁袭',
xiaoxi_info:'当你登场时,你可以视为使用一张【杀】。',
quyi:'OL麴义',
sp_default:"常规",
sp_zhongdan:"忠胆英杰",

View File

@ -6,7 +6,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
character:{
jin_zhangchunhua:['female','jin',3,['huishi','qingleng','xuanmu'],['hiddenSkill']],
jin_simayi:['male','jin',3,['buchen','smyyingshi','xiongzhi','quanbian'],['hiddenSkill']],
quyi:['male','qun',4,['fuqi','jiaozi']],
hanfu:['male','qun',4,['hfjieying','weipo']],
re_quyi:['male','qun',4,['refuqi','jiaozi']],
dongxie:['female','qun','3/4',['juntun','jiaojie']],
re_xinxianying:['female','wei',3,['rezhongjian','recaishi']],
wangrong:['female','qun',3,['minsi','jijing','zhuide']],
@ -85,7 +86,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_baigei:['re_panfeng','xingdaorong','caoxing'],
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
sp_huangjin:['liuhong','zhujun','re_hejin','re_hansui','liubian'],
sp_fadong:['ol_dingyuan','wangrong','quyi'],
sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_yujin','re_maliang','xin_baosanniang','re_xinxianying','dongxie'],
sp_mini:["mini_sunquan","mini_zuoci","mini_jiangwei","mini_diaochan","mini_zhangchunhua"],
sp_luanwu:["ns_lijue","ns_zhangji","ns_fanchou"],
@ -94,6 +95,159 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
skill:{
hfjieying:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt2('hfjieying'),lib.filter.notMe).set('ai',function(target){
var player=_status.event.player;
return get.attitude(player,target)*(1+target.countCards('h',function(card){
return !get.tag(card,'damage')&&target.hasValueTarget(card);
}))/(1+target.countCards('h'));
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('hfjieying',target);
target.addTempSkill('hfjieying2',{player:'phaseJieshuBegin'});
}
},
ai:{
expose:0.05,
},
},
hfjieying2:{
mod:{
playerEnabled:function(card,player,target){
if(player.storage.hfjieying2&&player!=target) return false;
},
targetInRange:function(card,player){
if(player==_status.currentPhase&&(card.name=='sha'||get.type(card)=='trick')) return true;
},
aiOrder:function(player,card,num){
var info=get.info(card);
if(!get.tag(card,'damage')&&(!info||!info.toself)) return num+8;
},
},
onremove:true,
trigger:{player:'useCard2'},
direct:true,
filter:function(event,player){
if(player!=_status.currentPhase) return false;
var card=event.card;
if(card.name!='sha'&&get.type(card)!='trick')return false;
var info=get.info(card);
if(info.allowMultiple==false) return false;
if(event.targets&&!info.multitarget){
if(game.hasPlayer(function(current){
return !event.targets.contains(current)&&lib.filter.targetEnabled2(card,player,current);
})){
return true;
}
}
return false;
},
content:function(){
'step 0'
var prompt2='为'+get.translation(trigger.card)+'增加一个目标'
player.chooseTarget(get.prompt('hfjieying2'),function(card,player,target){
var player=_status.event.player;
return !_status.event.targets.contains(target)&&lib.filter.targetEnabled2(_status.event.card,player,target);
}).set('prompt2',prompt2).set('ai',function(target){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
return get.effect(target,trigger.card,player,player);
}).set('card',trigger.card).set('targets',trigger.targets);
'step 1'
if(result.bool){
if(!event.isMine()) game.delayx();
event.targets=result.targets;
}
else{
event.finish();
}
'step 2'
if(event.targets){
player.logSkill('hfjieying2',event.targets);
trigger.targets.addArray(event.targets);
}
},
group:'hfjieying3',
mark:true,
intro:{
content:function(player){
if(player) return '不能对其他角色使用牌直到回合结束';
return '使用【杀】或普通锦囊牌时无距离限制且可以多指定一个目标';
},
},
},
hfjieying3:{
trigger:{source:'damageSource'},
forced:true,
popup:false,
filter:function(event,player){
return !player.storage.hfjieying2&&player==_status.currentPhase;
},
content:function(){
player.storage.hfjieying2=true;
},
},
weipo:{
audio:2,
trigger:{target:'useCardToTargeted'},
forced:true,
filter:function(event,player){
return player!=event.player&&!player.hasSkill('weipo3')&&player.countCards('h')<Math.min(5,player.maxHp)&&(event.card.name=='sha'||get.type(event.card)=='trick');
},
content:function(){
var evt=trigger.getParent();
if(!evt.weipo) evt.weipo={};
evt.weipo[player.playerid]=player.countCards('h');
player.addTempSkill('weipo2');
player.drawTo(Math.min(5,player.maxHp));
},
},
weipo2:{
charlotte:true,
trigger:{global:'useCardAfter'},
forced:true,
popup:false,
filter:function(event,player){
return event.weipo&&event.weipo[player.playerid]!=undefined&&event.weipo[player.playerid]>player.countCards('h');
},
content:function(){
'step 0'
player.addTempSkill('weipo3',{player:'phaseBegin'});
if(player.countCards('h')&&trigger.player.isAlive()){
player.chooseCard('h',true,'将一张手牌交给'+get.translation(trigger.player));
}
else event.finish();
'step 1'
if(result.bool){
trigger.player.gain(result.cards,player,'giveAuto');
}
},
},
weipo3:{charlotte:true},
refuqi:{
audio:'fuqi',
forced:true,
trigger:{
player:"useCard",
},
filter:function(event,player){
return event.card&&(get.type(event.card)=='trick'||get.type(event.card)=='basic'&&!['shan','tao','jiu','du'].contains(event.card.name))&&game.hasPlayer(function(current){
return current!=player&&get.distance(player,current)<=1;
});
},
content:function(){
trigger.directHit.addArray(game.filterPlayer(function(current){
return current!=player&&get.distance(player,current)<=1;
}));
},
},
zhuide:{
audio:2,
trigger:{player:'die'},
@ -140,6 +294,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
smyyingshi:{
audio:2,
enable:'phaseUse',
locked:true,
onChooseToUse:function(event){
@ -169,6 +324,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
xiongzhi:{
audio:2,
enable:'phaseUse',
limited:true,
skillAnimation:true,
@ -211,6 +367,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
quanbian:{
audio:2,
trigger:{player:['useCard','respond']},
hasHand:function(event){
var evts=event.player.getHistory('lose',function(evt){
@ -283,6 +440,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
juntun:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
@ -294,6 +452,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
jiaojie:{
audio:2,
mod:{
ignoredHandcard:function(card,player){
if(get.color(card)=='red'){
@ -1280,6 +1439,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
cixiao:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
filter:function(event,player){
@ -1392,6 +1552,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
xianshuai:{
audio:2,
trigger:{global:'damageEnd'},
forced:true,
filter:function(event,player){
@ -1399,8 +1560,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
player.addTempSkill('xianshuai2','roundStart');
if(trigger.source!=player) player.draw();
else if(trigger.player.isAlive()){
player.draw();
if(player==trigger.source&&trigger.player.isAlive()){
player.line(trigger.player,'green');
trigger.player.damage();
}
@ -1408,6 +1569,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
xianshuai2:{},
shiyuan:{
audio:2,
trigger:{target:'useCardToTargeted'},
frequent:true,
filter:function(event,player){
@ -1422,6 +1584,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
dushi:{
audio:2,
global:'dushi2',
locked:true,
trigger:{player:'die'},
@ -1542,6 +1705,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
yujue:{
audio:2,
derivation:'zhihu',
enable:'phaseUse',
usable:1,
@ -1560,6 +1724,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.push('cancel2');
return list;
},
check:function(event,player){
for(var i=5;i>0;i--){
if(player.isEmpty(i)) return ('equip'+i);
}
return 'cancel2';
},
backup:function(result){
var next=get.copy(lib.skill.yujuex);
next.position=result.control;
@ -1573,9 +1743,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(game.hasPlayer(function(target){
if(player==target) return false;
var hs=target.countCards('h');
return hs>0&&!game.hasPlayer(function(current){
return current!=player&&current!=target&&current.countCards('h')>hs;
})&&get.attitude(player,target)>0;
return hs>2&&get.attitude(player,target)>0;
})) return 1;
return 0;
},
@ -1593,10 +1761,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
})){
player.chooseTarget(true,'选择一名角色交给你一张牌并获得技能〖执笏〗',function(card,player,target){
if(player==target) return false;
var hs=target.countCards('h');
return hs>0&&!game.hasPlayer(function(current){
return current!=player&&current!=target&&current.countCards('h')>hs;
});
return target.countCards('h')>0;
}).set('ai',function(target){
return get.attitude(_status.event.player,target)*target.countCards('h');
});
@ -1651,6 +1816,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
tuxing:{
audio:2,
trigger:{player:'disableEquipAfter'},
forced:true,
content:function(){
@ -1669,18 +1835,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{source:'damageBegin1'},
forced:true,
charlotte:true,
filter:function(event,player){
return event.getParent().name=='sha';
},
content:function(){
trigger.num++;
},
mark:true,
intro:{
content:'因执行【杀】的效果造成伤害时,此伤害+1',
content:'造成伤害时,此伤害+1',
},
},
gongjian:{
audio:2,
trigger:{player:'useCardToPlayered'},
usable:1,
logTarget:'target',
@ -1710,6 +1874,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
kuimang:{
audio:2,
trigger:{global:'dieAfter'},
forced:true,
filter:function(event,player){
@ -7072,6 +7237,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liubian:'刘辩176年190年3月6日是汉灵帝刘宏与何皇后的嫡长子。刘辩在灵帝驾崩后继位为帝史称少帝由于年幼实权掌握在临朝称制的母亲何太后和母舅大将军何进手中。少帝在位时期东汉政权已经名存实亡他即位后不久即遭遇以何进为首的外戚集团和以十常侍为首的内廷宦官集团这两大敌对政治集团的火并被迫出宫回宫后又受制于以“勤王”为名进京的凉州军阀董卓终于被废为弘农王成为东汉唯一被废黜的皇帝其同父异母弟陈留王刘协继位为帝是为汉献帝。被废黜一年之后刘辩在董卓胁迫下自尽时年仅十五岁一说十八岁其弟献帝追谥他为怀王。中国古代的史书中称刘辩为皇子辩、少帝和弘农王等。因为在位不逾年传统上称东汉共十二帝刘辩与东汉另一位少帝刘懿都不在其中亦皆无本纪不过现代史学界也有观点承认两位少帝均是汉朝皇帝则刘辩为东汉第十三位皇帝。',
luyusheng:'陆郁生(?年-三国时期吴国官员陆绩之女。陆郁生的父亲陆绩是吴郡公认的才子又是当时吴郡陆氏的领袖。陆绩赴任担任郁林太守遂取此名。陆郁生年少的时候就定下坚贞的志向。建安二十四年219年)陆绩早亡她与两个兄弟陆宏、陆睿当时都只有几岁一起返回吴县被他们的从兄陆瑁接回抚养。13周岁的陆郁生嫁给同郡出身的张白为妻。出嫁3个月后张白因为其兄张温一族的案件遭到连坐被处以流刑后死于流放地陆郁生成为了寡妇其后公开宣言不再改嫁困难于生计但拒绝了所有提亲在艰苦中从未停止服侍、照顾张白的姐妹。事情传到朝廷皇帝褒奖陆郁生号其为“义姑”。她的表侄姚信在文集中称赞她的义举。',
wangrong:'汉灵怀皇后王荣(?~181年赵国邯郸今河北邯郸市人。五官中郎将王苞孙女汉灵帝刘宏妃子汉献帝刘协生母。初以良家子选入掖庭封为美人服侍汉灵帝。光和四年181年生下陈留王刘协惨遭灵思皇后毒杀。王荣死后汉灵帝曾作《追德赋》、《令仪颂》。永汉元年189年其子刘协即位是为汉献帝追谥灵怀皇后葬于文昭陵。',
hanfu:'韩馥—191年字文节颍川郡今河南禹州人。东汉末年的诸侯冀州牧。韩馥担任过东汉的御史中丞之后被董卓举荐为冀州牧在各诸侯起兵讨伐董卓时韩馥也是其中之一的参与者。韩馥与袁绍也曾经有意立刘虞为皇帝。当时冀州民殷人盛兵粮优足于是袁绍便用计夺取冀州韩馥被迫投靠张邈之后张邈与袁绍的使者见面韩馥以为是要来杀害自己的于是在厕所中以刻书用的小刀自杀。',
},
characterTitle:{
wulan:'#b对决限定武将',
@ -7126,6 +7292,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
huangfusong:['huangfusong','old_huangfusong'],
wenyang:['wenyang','diy_wenyang'],
dingyuan:['ol_dingyuan','dingyuan'],
quyi:['quyi','re_quyi'],
},
translate:{
lijue:"李傕",
@ -7417,13 +7584,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liuhong:'刘宏',
yujue:'鬻爵',
yujue_backup:'鬻爵',
yujue_info:'出牌阶段限一次,你可以废除一个装备栏,然后令除你之外手牌数最多的一名其他角色交给你一张手牌。其获得〖执笏〗直到你的下回合开始。',
yujue_info:'出牌阶段限一次,你可以废除一个装备栏,然后令一名有手牌的其他角色交给你一张手牌。其获得〖执笏〗直到你的下回合开始。',
zhihu:'执笏',
zhihu_mark:'执笏',
zhihu_info:'锁定技,每回合限两次,当你对其他角色造成伤害后,你摸两张牌。',
tuxing:'图兴',
tuxing2:'图兴',
tuxing_info:'锁定技当你废除一个装备栏时你加1点体力上限并回复1点体力。然后若你所有的装备栏均已被废除则你减4点体力上限且本局游戏内使用【杀】造成的伤害+1。',
tuxing_info:'锁定技当你废除一个装备栏时你加1点体力上限并回复1点体力。然后若你所有的装备栏均已被废除则你减4点体力上限且本局游戏内造成的伤害+1。',
re_hejin:'何进',
xin_baosanniang:'鲍三娘',
decadexushen:"许身",
@ -7444,7 +7611,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
panshi:'叛弑',
panshi_info:'锁定技,准备阶段,你交给有“慈孝”技能的角色一张手牌;当你于出牌阶段因使用【杀】对其他角色造成伤害时,若其拥有技能“慈孝”,则此伤害+1且你结束出牌阶段。',
xianshuai:'先率',
xianshuai_info:'锁定技,有角色造成伤害后,若此伤害是本轮第一次造成伤害,且伤害来源是其他角色,则你摸一张牌若伤害来源是你则你对受伤角再造成1点伤害。',
xianshuai_info:'锁定技,有角色造成伤害后,若此伤害是本轮第一次造成伤害你摸一张牌若伤害来源是你则你对受伤角再造成1点伤害。',
luyusheng:'陆郁生',
wangrong:'王荣',
minsi:'敏思',
@ -7526,7 +7693,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
quanbian2:'权变',
quanbian_info:'当你于出牌阶段内使用/打出手牌时,若此牌有花色且你本回合内未使用/打出过该花色的其他手牌则你可以选择一项①摸一张牌。②将牌堆顶X张牌中的一张置于牌堆底X为你的体力上限。若你发动此技能则你本回合内不能再使用与此牌花色相同的手牌。',
re_hansui:'韩遂',
quyi:'麴义',
re_quyi:'麴义',
refuqi:'伏骑',
refuqi_info:'锁定技当你使用牌时你令所有距离为1的其他角色不能使用或打出牌响应此牌。',
hanfu:'韩馥',
hfjieying:'节应',
hfjieying2:'节应',
hfjieying3:'节应',
hfjieying_info:'结束阶段,你可以选择一名其他角色,该角色下回合使用【杀】或普通锦囊牌无距离限制且可多指定一个目标,且当其造成伤害后,其无法再使用牌直到回合结束。 ',
weipo:'危迫',
weipo_info:'锁定技其他角色使用【杀】或普通锦囊牌指定你为目标后若你的手牌数小于X则你记录自己此时的手牌数为Y并将手牌摸至X张。此牌结算结束后若你的手牌数小于Y则你将一张手牌交给此牌的使用者且此技能失效直到你的下回合开始。X为你的体力上限且至多为5 ',
sp_yingbian:'应变篇',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",

View File

@ -2856,10 +2856,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
var list=['sha','shan','tao','jiu','taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman','lebu','bingliang','shandian'];
for(var i=0;i<player.storage.shouxi.length;i++){
list.remove(player.storage.shouxi[i]);
}
var list=lib.inpile.filter(function(i){
if(player.storage.shouxi.contains(i)) return false;
var type=get.type(i);
if(type=='basic'||type=='trick') return true;
return false;
});
for(var i=0;i<list.length;i++){
list[i]=[get.type(list[i]),'',list[i]];
}
@ -4325,28 +4327,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish();
return;
}
var list=['sha','sha','sha','sha','shan','tao','jiu'];
if(player.storage.jiaozhao1){
list=list.concat(['taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman']);
}
for(var i=0;i<list.length;i++){
if(i<=6){
if(i==1){
list[i]=['基本','',list[i],'fire'];
}
else if(i==2){
list[i]=['基本','',list[i],'thunder'];
}
else if(i==3){
list[i]=['基本','',list[i],'ice'];
}
else{
list[i]=['基本','',list[i]];
}
}
else{
list[i]=['锦囊','',list[i]];
var list=[];
for(var i=0;i<lib.inpile.length;i++){
var name=lib.inpile[i];
if(name=='sha'){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
}
else if(get.type(name)=='basic') list.push(['基本','',name]);
else if(player.storage.jiaozhao1&&get.type(name)=='trick') list.push(['锦囊','',name]);
}
var choice;
if(get.attitude(event.target,player)<=0){

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.107',
'v1.9.108',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -649,6 +649,10 @@ window.noname_asset_list=[
'audio/die/yanghuiyu.mp3',
'audio/die/xin_lingtong.mp3',
'audio/die/xin_liubiao.mp3',
'audio/die/ol_dingyuan.mp3',
'audio/die/zhujun.mp3',
'audio/die/liubian.mp3',
'audio/skill/decadezishou1.mp3',
'audio/skill/decadezishou2.mp3',
'audio/skill/decadezongshi1.mp3',
@ -659,7 +663,6 @@ window.noname_asset_list=[
'audio/skill/xuanfeng_xin_lingtong2.mp3',
'audio/skill/yongjin_xin_lingtong1.mp3',
'audio/skill/yongjin_xin_lingtong2.mp3',
'audio/skill/anguo1.mp3',
'audio/skill/anguo2.mp3',
'audio/skill/anjian1.mp3',
@ -2844,6 +2847,20 @@ window.noname_asset_list=[
'audio/skill/shanli2.mp3',
'audio/skill/zhuwei1.mp3',
'audio/skill/zhuwei2.mp3',
'audio/skill/cixiao1.mp3',
'audio/skill/cixiao2.mp3',
'audio/skill/dushi1.mp3',
'audio/skill/dushi2.mp3',
'audio/skill/gongjian1.mp3',
'audio/skill/gongjian2.mp3',
'audio/skill/kuimang1.mp3',
'audio/skill/kuimang2.mp3',
'audio/skill/shiyuan1.mp3',
'audio/skill/shiyuan2.mp3',
'audio/skill/spweiwu1.mp3',
'audio/skill/spweiwu2.mp3',
'audio/skill/xianshuai1.mp3',
'audio/skill/xianshuai2.mp3',
'font/huangcao.ttf',
'font/shousha.ttf',
@ -2908,6 +2925,7 @@ window.noname_asset_list=[
'image/card/yuanjun.png',
'image/card/kamome_suitcase.png',
'image/card/miki_hydrogladiator.png',
'image/card/hina_shenji.png',
'image/card/bagua.png',
'image/card/baihupifeng.png',
@ -3528,6 +3546,14 @@ window.noname_asset_list=[
'image/character/jin_zhangchunhua.jpg',
'image/character/dongxie.jpg',
'image/character/jin_simayi.jpg',
'image/character/liuhong.jpg',
'image/character/ol_dingyuan.jpg',
'image/character/re_hansui.jpg',
'image/character/wangrong.jpg',
'image/character/zhujun.jpg',
'image/character/hanfu.jpg',
'image/character/key_hina.jpg',
'image/character/re_quyi.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',
@ -5392,9 +5418,9 @@ window.noname_skin_list={
key_nao:4,
key_shiki:6,
key_yui:2,
key_yuri:4,
key_yuri:5,
key_yuzuru:2,
sp_key_kanade:8,
sp_key_kanade:9,
key_kamome:5,
key_umi:5,
key_umi2:1,
@ -5411,4 +5437,6 @@ window.noname_skin_list={
key_kyoko:1,
key_kotori:1,
key_shiina:1,
key_hiroto:1,
key_komari:1,
};

View File

@ -15927,7 +15927,7 @@
game.broadcast(function(player,name,sex,num,group){
player.group=group;
player.name=name;
player.sex=sex;;
player.sex=sex;
switch(num){
case 0:player.classList.remove('unseen');break;
case 1:player.classList.remove('unseen2');break;
@ -17010,7 +17010,6 @@
update:function(){
if(_status.video&&arguments.length==0) return;
if(this.hp>=this.maxHp) this.hp=this.maxHp;
if(this.storage.nohp) return;
var hp=this.node.hp;
hp.style.transition='none';
game.broadcast(function(player,hp,maxHp,hujia){
@ -17027,6 +17026,7 @@
this.unmarkSkill('ghujia');
}
}
if(!this.storage.nohp){
if(this.maxHp==Infinity){
hp.innerHTML='∞';
}
@ -17095,6 +17095,7 @@
setTimeout(function(){
hp.style.transition='';
});
}
var numh=this.countCards('h');
if(_status.video){
numh=arguments[0];
@ -25270,8 +25271,8 @@
forced:true,
popup:false,
priority:25,
filter:function(event,player){
return player.isUnseen(2)&&get.mode()!='guozhan';
filter:function(event,player,name){
return player.isUnseen(2)&&get.mode()!='guozhan'&&(name=='phaseBeginStart'||event.num<0);
},
content:function(){
if(trigger.name=='loseMaxHp') trigger.cancel();
@ -26361,7 +26362,7 @@
ui.create.connecting(true);
},
roomlist:function(list,events,clients,wsid){
game.send('server','key',game.onlineKey);
game.send('server','key',[game.onlineKey,lib.version]);
game.online=true;
game.onlinehall=true;
lib.config.recentIP.remove(_status.ip);
@ -26932,7 +26933,12 @@
},
denied:function(reason){
switch(reason){
case 'version':alert('加入失败:版本不匹配');break;
case 'version':
alert('加入失败:版本不匹配,请将游戏更新至最新版');
game.saveConfig('tmp_owner_roomId');
game.saveConfig('tmp_user_roomId');
game.saveConfig('reconnect_info');
break;
case 'gaming':alert('加入失败:游戏已开始');break;
case 'number':alert('加入失败:房间已满');break;
case 'banned':alert('加入失败:房间拒绝你加入');break;

View File

@ -3,6 +3,7 @@
var wss=new WebSocketServer({port:8080});
var bannedKeys=[];
var bannedIps=[];
var version='1.9.108';
var rooms=[{},{},{},{},{},{},{},{}];
var systemEvent={
@ -80,15 +81,22 @@
}
},
key:function(id){
this.onlineKey=id;
if(!id||typeof id!='object'||version!=id[1]){
console.log(id, this._socket.remoteAddress, '使用旧版本登录');
this.sendl('denied','version');
this.close();
clearTimeout(this.keyCheck);
delete this.keyCheck;
if(typeof id!='string'||bannedKeys.indexOf(id)!=-1){
bannedIps.push(this._socket.remoteAddress);
console.log(id, this._socket.remoteAddress);
this.close();
return;
}
else if(bannedKeys.indexOf(id[0])!=-1){
bannedIps.push(this._socket.remoteAddress);
console.log(id, this._socket.remoteAddress, '被封禁用户登录');
this.close();
}
this.onlineKey=id[0];
clearTimeout(this.keyCheck);
delete this.keyCheck;
},
events:function(cfg,id,type){
if(bannedKeys.indexOf(id)!=-1||typeof id!='string'){

View File

@ -1,15 +1,15 @@
window.noname_update={
version:'1.9.107',
update:'1.9.106.4.2',
version:'1.9.108',
update:'1.9.107.1',
changeLog:[
'应变篇卡牌包',
'晋司马懿',
'成神之日:佐藤雏',
'新麹义、韩馥',
'bug修复',
],
files:[
'card/extra.js',
'card/gujian.js',
'card/guozhan.js',
//'card/extra.js',
//'card/gujian.js',
//'card/guozhan.js',
//'card/gwent.js',
//'card/huanlekapai.js',
//'card/mtg.js',
@ -20,15 +20,15 @@ window.noname_update={
'card/yingbian.js',
//'card/zhenfa.js',
//'card/zhulu.js',
'character/diy.js',
//'character/extra.js',
//'character/diy.js',
'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
//'character/gwent.js',
//'character/hearth.js',
'character/mobile.js',
//'character/mobile.js',
//'character/mtg.js',
'character/old.js',
//'character/old.js',
'character/rank.js',
'character/refresh.js',
'character/shenhua.js',
@ -42,24 +42,24 @@ window.noname_update={
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
'layout/default/layout.css',
//'layout/default/layout.css',
//'layout/nova/layout.css',
'mode/identity.js',
'mode/doudizhu.js',
'mode/guozhan.js',
//'mode/doudizhu.js',
//'mode/guozhan.js',
//'mode/chess.js',
//'mode/tafang.js',
'mode/single.js',
'mode/stone.js',
//'mode/single.js',
//'mode/stone.js',
//'mode/brawl.js',
'mode/versus.js',
//'mode/versus.js',
'mode/boss.js',
'game/game.js',
//'game/keyWords.js',
//'game/server.js',
'game/server.js',
//'game/NoSleep.js',
'game/config.js',
'game/package.js',
//'game/config.js',
//'game/package.js',
//'game/asset.js',
//'game/source.js',
//'theme/style/hp/xinglass.css',

BIN
image/card/hina_shenji.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

BIN
image/character/hanfu.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

BIN
image/character/re_quyi.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

View File

@ -497,6 +497,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
fullskin:true,
},
shenzhixiunvfu:{
type:'equip',
subtype:'equip2',
modeimage:'boss',
fullskin:true,
},
gubuzifeng:{
type:'trick',
fullskin:true,
@ -1604,7 +1610,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return name;
}
else{
var arr=['shen_caocao','shen_simayi','shen_guanyu','shen_zhugeliang','shen_zhaoyun','shen_zhouyu','shen_lvmeng','shen_lvbu','shen_liubei','shen_luxun','shen_ganning','ol_zhangliao','shen_zhenji','shen_caopi','key_kagari','key_shiki'];
var arr=['shen_caocao','shen_simayi','shen_guanyu','shen_zhugeliang','shen_zhaoyun','shen_zhouyu','shen_lvmeng','shen_lvbu','shen_liubei','shen_luxun','shen_ganning','ol_zhangliao','shen_zhenji','shen_caopi','key_kagari','key_shiki','key_hina'];
arr.removeArray(list);
return arr.randomGet();
}
@ -1653,7 +1659,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game.check();
});
control.backup1=ui.create.div('.buttons');
control.backup2=ui.create.buttons(['shen_caocao','shen_simayi','shen_guanyu','shen_zhugeliang','shen_zhaoyun','shen_zhouyu','shen_lvmeng','shen_lvbu','shen_liubei','shen_luxun','shen_ganning','ol_zhangliao','shen_zhenji','shen_caopi','key_kagari','key_shiki'],'character',control.backup1);
control.backup2=ui.create.buttons(['shen_caocao','shen_simayi','shen_guanyu','shen_zhugeliang','shen_zhaoyun','shen_zhouyu','shen_lvmeng','shen_lvbu','shen_liubei','shen_luxun','shen_ganning','ol_zhangliao','shen_zhenji','shen_caopi','key_kagari','key_shiki','key_hina'],'character',control.backup1);
return control;
}
},
@ -1663,7 +1669,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game.addGlobalSkill('thedayibecomeagod');
var list=['lebu','bingliang'];
for(var i=0;i<game.players.length;i++){
switch(game.players[i].name){
switch(game.players[i].name1){
case 'shen_guanyu':{
game.players[i].equip(game.createCard2('guilongzhanyuedao','spade',5));
lib.inpile.add('guilongzhanyuedao');
@ -1753,6 +1759,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
lib.inpile.add('niaobaidaowenha');
break;
}
case 'key_hina':{
game.players[i].equip(game.createCard2('shenzhixiunvfu','spade',13));
lib.inpile.add('shenzhixiunvfu');
break;
}
}
}
lib.inpile.remove('wuzhong');
@ -9809,6 +9820,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
niaobaidaowenha_skill:'鸟白岛文蛤',
niaobaidaowenha_info:'当你减少1点体力上限后你可令一名其他角色增加1点体力上限并回复1点体力。',
niaobaidaowenha_skill_info:'当你减少1点体力上限后你可令一名其他角色增加1点体力上限并回复1点体力。',
shenzhixiunvfu:'神之修女服',
shenzhixiunvfu_info:'没什么实际作用的衣服,仅仅是显得像个神而已。',
mode_boss_card_config:'挑战卡牌',
mode_boss_character_config:'挑战武将',

View File

@ -1095,12 +1095,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(typeof lib.config.test_game=='string'&&player==game.me.next){
player.init(lib.config.test_game);
}
if(get.config('choose_group')&&player.group=='shen'){
if(get.config('choose_group')&&player.group=='shen'&&!player.isUnseen(0)){
var list=lib.group.slice(0);
list.remove('shen');
if(list.length) player.group=function(){
if(_status.mode!='zhong'&&game.zhu&&game.zhu.group){
if(['re_zhangjiao','liubei','re_liubei','caocao','re_caocao','sunquan','re_sunquan','zhangjiao','sp_zhangjiao','caopi','re_caopi','liuchen','caorui','sunliang','sunxiu','sunce','re_sunben','ol_liushan','re_liushan','key_akane','dongzhuo','re_dongzhuo','ol_dongzhuo'].contains(game.zhu.name)) return game.zhu.group;
if(['re_zhangjiao','liubei','re_liubei','caocao','re_caocao','sunquan','re_sunquan','zhangjiao','sp_zhangjiao','caopi','re_caopi','liuchen','caorui','sunliang','sunxiu','sunce','re_sunben','ol_liushan','re_liushan','key_akane','dongzhuo','re_dongzhuo','ol_dongzhuo','liubian'].contains(game.zhu.name)) return game.zhu.group;
if(game.zhu.name=='sunhao'&&player.identity=='zhong') return 'wu';
if(game.zhu.name=='yl_yuanshu'){
if(player.identity=='zhong') list.remove('qun');
@ -1667,7 +1667,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
var chooseGroup=false;
if(event.chosen.length){
if(lib.character[event.chosen[0]][1]=='shen'){
if(lib.character[event.chosen[0]][1]=='shen'&&!lib.character[event.chosen[0]][4].contains('hiddenSkill')){
chooseGroup=true;
}
}
@ -1678,13 +1678,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else if(result.buttons.length==2){
event.choosed=[result.buttons[0].link,result.buttons[1].link];
game.addRecentCharacter(result.buttons[0].link,result.buttons[1].link);
if(lib.character[event.choosed[0]][1]=='shen'){
if(lib.character[event.choosed[0]][1]=='shen'&&!lib.character[event.choosed[0]][4].contains('hiddenSkill')){
chooseGroup=true;
}
}
else{
event.choosed=[result.buttons[0].link];
if(lib.character[event.choosed[0]][1]=='shen'){
if(lib.character[event.choosed[0]][1]=='shen'&&!lib.character[event.choosed[0]][4].contains('hiddenSkill')){
chooseGroup=true;
}
game.addRecentCharacter(result.buttons[0].link);
@ -1966,7 +1966,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},game.zhu,game.zhu.name,game.zhu.name2,game.players.length>4);
if(game.zhu.group=='shen'){
if(game.zhu.group=='shen'&&!game.zhu.isUnseen(0)){
var list=['wei','shu','wu','qun','jin','key'];
for(var i=0;i<list.length;i++){
if(!lib.group.contains(list[i])) list[i].splice(i--,1);
@ -2044,7 +2044,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else{
result[i]=result[i].links;
}
if(lib.character[result[i][0]]&&lib.character[result[i][0]][1]=='shen') shen.push(lib.playerOL[i]);
if(lib.character[result[i][0]]&&lib.character[result[i][0]][1]=='shen'&&!lib.character[result[i][0]][4].contains('hiddenSkill')) shen.push(lib.playerOL[i]);
}
event.result2=result;
if(shen.length){