This commit is contained in:
libccy 2017-03-02 21:06:03 +08:00
parent dded21b7ad
commit f025de8937
29 changed files with 536 additions and 6 deletions

View File

@ -1,14 +1,477 @@
character.gwent={
character:{
gw_huoge:['male','qun',3,['quanzhang']],
gw_aisinie:['female','wu',3,['huihun']],
gw_gaier:['male','shu',3,['hunmo']],
gw_enxier:['male','wei',4,['gwbaquan']],
// gw_kuite:['male','qun',3,[]],
// gw_dagong:['male','qun',3,[]],
// gw_airuiting:['male','qun',3,[]],
// gw_fuertaisite:['male','qun',3,[]],
// gw_falanxisika:['female','wu',3,[]],
// gw_haluo:['male','qun',3,[]],
// gw_hengsaite:['male','qun',3,[]],
// gw_kaerweite:['male','qun',3,[]],
// gw_bulanwang:['male','qun',3,[]],
// gw_fulisi:['male','qun',3,[]],
// gw_laduoweide:['male','qun',3,[]],
gw_jieluote:['male','qun',6,['fayin']],
gw_yenaifa:['female','qun',3,['xuezhou']],
gw_telisi:['female','shu',3,['huandie']],
gw_xili:['female','qun',3,['fengjian']],
// gw_luoqi:['male','qun',3,[]],
// gw_yioufeisi:['male','qun',3,[]],
},
characterIntro:{
gw_huoge:'那个老年痴呆?不知道他是活着还是已经被制成标本了!',
gw_aisinie:'树精皇后有着熔银做成的眼睛,冰冷铸钢的心脏。',
gw_gaier:'画作应该要传达情绪,而不是字句。',
gw_yenaifa:'魔法是艺术、混沌与科学的结合。因为魔法的确是一门技艺也是一种诅咒。',
gw_telisi:'我可以照顾我自己,相信我。',
gw_jieluote:'如果要付出这种代价才能拯救世界,那最好还是让世界消逝吧。',
gw_xili:'我想去哪,就去哪。',
gw_luoqi:'是个爱国者…还是个货真价实的王八蛋。',
gw_yioufeisi:'国王还是乞丐,两者有何区别,人类少一个是一个',
},
skill:{
fengjian:{
trigger:{player:'useCard'},
direct:true,
filter:function(event,player){
return get.type(event.card,'trick')=='trick'&&event.cards[0]&&event.cards[0]==event.card&&game.hasPlayer(function(current){
return player.canUse('sha',current,false)&&!event.targets.contains(current);
});
},
content:function(){
"step 0"
player.chooseTarget(get.prompt('fengjian'),function(card,player,target){
return player.canUse('sha',target,false)&&!trigger.targets.contains(target);
}).ai=function(target){
return ai.get.effect(target,{name:'sha',nature:'thunder'},player,player);
}
"step 1"
if(result.bool){
player.logSkill('fengjian',result.targets);
player.draw(false);
player.$draw();
game.delay();
var next=player.useCard({name:'sha',nature:'thunder'},result.targets,false);
next.animate=false;
}
},
ai:{
expose:0.2,
threaten:1.5
},
group:'fengjian_hide',
subSkill:{
hide:{
trigger:{source:'damageEnd'},
forced:true,
popup:false,
filter:function(event,player){
return event.getParent(3).name=='fengjian';
},
content:function(){
player.addTempSkill('qianxing',{player:'phaseBegin'});
}
}
}
},
huandie:{
trigger:{player:'phaseBegin'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('huandie'),[0,game.countPlayer()],function(card,player,target){
return target!=player;
}).ai=function(target){
return ai.get.attitude(player,target);
}
'step 1'
if(result.bool){
result.targets.sortBySeat();
result.targets.unshift(player);
player.logSkill('huandie',result.targets);
game.asyncDraw(result.targets,function(current){
return current==player?1:2;
});
player.addTempSkill('huandie_discard','phaseAfter');
}
},
ai:{
threaten:1.5
},
subSkill:{
discard:{
trigger:{player:'phaseEnd'},
forced:true,
filter:function(event,player){
return game.hasPlayer(function(current){
return current.num('h')>current.hp;
});
},
logTarget:function(){
return game.filterPlayer(function(current){
return current.num('h')>current.hp;
}).sortBySeat();
},
content:function(){
'step 0'
var list=game.filterPlayer(function(current){
return current.num('h')>current.hp;
}).sortBySeat();
event.list=list;
'step 1'
if(event.list.length){
event.list.shift().chooseToDiscard('h',true,2);
event.redo();
}
}
}
}
},
xuezhou:{
trigger:{player:'phaseBegin'},
direct:true,
unique:true,
forceunique:true,
intro:{
content:function(storage,player){
var name=get.translation(player);
if(storage==1){
return '每当一名角色('+name+'除外)受到一次伤害,该角色失去一点体力,'+name+'回复一点体力'
}
else if(storage==2){
return '每当一名角色('+name+'除外)造成一次伤害,该角色失去一点体力,'+name+'(若不是受伤害角色)回复一点体力'
}
else{
return '未发动';
}
}
},
content:function(){
'step 0'
var next=player.chooseControl('选项一','选项二','cancel2',function(){
if(Math.random()<0.65) return 0;
return 1;
});
next.prompt=get.prompt('xuezhou');
next.choiceList=[
'每当一名其他角色受到一次伤害,该角色失去一点体力,你回复一点体力',
'每当一名其他角色造成一次伤害,该角色失去一点体力,你(若不是受伤害角色)回复一点体力'
];
'step 1'
if(result.control=='cancel2'){
player.unmarkSkill('xuezhou');
delete _status.xuezhou;
}
else{
player.logSkill('xuezhou');
player.storage.xuezhou=result.index+1;
player.syncStorage('xuezhou');
player.markSkill('xuezhou');
_status.xuezhou=player;
}
},
ai:{
threaten:2.5
},
global:'xuezhou_hp'
},
xuezhou_hp:{
trigger:{source:'damageEnd',player:'damageEnd'},
filter:function(event,player){
if(!_status.xuezhou) return false;
if(player==_status.xuezhou) return false;
if(!player.isIn()||!_status.xuezhou.isIn()) return false;
switch(_status.xuezhou.storage.xuezhou){
case 1:return player==event.player;
case 2:return player==event.source;
default:return false;
}
},
forced:true,
popup:false,
silent:true,
content:function(){
'step 0'
game.delayx();
'step 1'
_status.xuezhou.logSkill('xuezhou',player);
player.loseHp();
if(_status.xuezhou!=trigger.player){
_status.xuezhou.recover();
}
}
},
fayin:{
trigger:{player:'shaBegin'},
direct:true,
filter:function(event,player){
return player.num('he')>0;
},
content:function(){
'step 0'
var target=trigger.target;
var bool=ai.get.attitude(player,target)<0;
var next=player.chooseToDiscard('he',get.prompt('fayin',target));
next.ai=function(card){
if(bool) return 7-ai.get.value(card);
return 0;
};
next.logSkill=['fayin',target];
'step 1'
if(result.bool){
var target=trigger.target;
var num=5;
if(target.isMad()){
num=4;
}
switch(Math.floor(Math.random()*num)){
case 0:target.randomDiscard(2);break;
case 1:target.damage('fire');break;
case 2:player.changeHujia();break;
case 3:target.turnOver();target.draw();break;
case 4:target.goMad({player:'phaseBegin'});break;
}
}
}
},
gwbaquan:{
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return target!=player&&target.num('h')>0;
},
content:function(){
'step 0'
var hs=target.get('h');
player.gain(hs,target);
target.$giveAuto(hs,player);
event.hs=hs;
'step 1'
var damage=(target.hp>=player.hp&&ai.get.damageEffect(target,player,player)>0);
var hs=event.hs;
if(damage&&target.hp>1){
for(var i=0;i<hs.length;i++){
if(ai.get.value(hs[i],player,'raw')>=8){
damage=false;break;
}
}
}
player.chooseCard(hs.length,true,'选择还给'+get.translation(target)+'的牌').ai=function(card){
if(damage){
return hs.contains(card)?1:0;
}
else{
return -ai.get.value(card,player,'raw');
}
}
if(!event.isMine()) game.delay();
'step 2'
target.gain(result.cards,player);
player.$giveAuto(result.cards,target);
event.hs2=result.cards;
if(player.hp>target.hp){
event.finish();
}
'step 3'
for(var i=0;i<event.hs2.length;i++){
if(!event.hs.contains(event.hs2[i])) return;
}
player.line(target);
target.damage();
},
ai:{
order:11,
result:{
target:function(player,target){
return -Math.sqrt(target.num('h'));
}
}
}
},
hunmo:{
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return target.num('h')!=Math.max(3,player.hp);
},
selectTarget:[1,Infinity],
content:function(){
var dh=Math.max(3,player.hp)-target.num('h');
if(dh>0){
target.draw(dh,false);
target.$draw(dh);
game.delay(0.5);
}
else if(dh<0){
target.chooseToDiscard(-dh,true);
if(player!=target) player.useCard({name:'sha'},target,false);
}
},
ai:{
order:11,
result:{
target:function(player,target){
var att=get.sgn(ai.get.attitude(player,target));
var dh=Math.max(3,player.hp)-target.num('h');
if(dh<0){
return att*dh+get.sgn(ai.get.effect(target,{name:'sha'},player,player));
}
return att*dh;
}
}
}
},
huihun:{
trigger:{player:'phaseEnd'},
filter:function(event,player){
if(!player.storage.huihun) return false;
for(var i=0;i<player.storage.huihun.length;i++){
if(get.position(player.storage.huihun[i])=='d') return true;
}
return false;
},
frequent:true,
content:function(){
var list=[];
for(var i=0;i<player.storage.huihun.length;i++){
if(get.position(player.storage.huihun[i])=='d'){
list.push(player.storage.huihun[i]);
if(list.length>=2) break;
}
}
player.gain(list,'gain2','log');
},
group:['huihun_count','huihun_count2'],
subSkill:{
count:{
trigger:{player:'useCard'},
forced:true,
popup:false,
silent:true,
filter:function(event,player){
return _status.currentPhase==player;
},
content:function(){
if(!player.storage.huihun){
player.storage.huihun=[];
}
for(var i=0;i<trigger.cards.length;i++){
if(get.color(trigger.cards[i])=='red'){
player.storage.huihun.add(trigger.cards[i]);
}
}
}
},
count2:{
trigger:{player:'phaseAfter'},
forced:true,
popup:false,
silent:true,
content:function(){
delete player.storage.huihun;
}
}
}
},
quanzhang:{
enable:'phaseUse',
usable:1,
onChooseToUse:function(event){
var cards=[];
var num=6;
if(ui.cardPile.childNodes.length<num){
var discardcards=get.cards(num);
for(var i=0;i<discardcards.length;i++){
ui.discardPile.appendChild(discardcards[i]);
}
}
for(var i=0;i<num;i++){
cards.push(ui.cardPile.childNodes[i]);
}
event.set('quanzhangcards',cards);
},
chooseButton:{
dialog:function(event,player){
return ui.create.dialog('权杖:选择一张牌使用',event.quanzhangcards);
},
filter:function(button,player){
var evt=_status.event.getParent();
if(evt&&evt.filterCard){
var type=get.type(button.link,'trick');
return type!='equip'&evt.filterCard(button.link,player,evt);
}
return false;
},
check:function(button){
return ai.get.value(button.link);
},
backup:function(links,player){
return {
filterCard:function(){return false},
selectCard:-1,
viewAs:links[0],
}
},
prompt:function(links,player){
return '选择'+get.translation(links)+'的目标';
}
},
ai:{
order:12,
result:{
player:1
},
threaten:1.5
}
},
},
translate:{
gw_huoge:'霍格',
gw_aisinie:'埃丝涅',
gw_gaier:'盖尔',
gw_enxier:'恩希尔',
gw_kuite:'奎特',
gw_dagong:'达贡',
gw_airuiting:'艾瑞汀',
gw_fuertaisite:'弗泰斯特',
gw_falanxisika:'法兰西斯卡',
gw_haluo:'哈洛',
gw_hengsaite:'亨赛特',
gw_kaerweite:'卡尔维特',
gw_bulanwang:'布兰王',
gw_fulisi:'符里斯',
gw_laduoweide:'拉多维德',
gw_jieluote:'杰洛特',
gw_yenaifa:'叶奈法',
gw_telisi:'特莉斯',
gw_xili:'希里',
gw_luoqi:'罗契',
gw_yioufeisi:'伊欧菲斯',
fengjian:'风剑',
fengjian_info:'每当你使用一张非转化的锦囊牌,你可以摸一张牌并视为对一名不是此牌目标的角色使用一张雷杀;若此杀造成伤害,你获得潜行直到下一回合开始',
huandie:'幻蝶',
huandie_info:'准备阶段,你可以摸一张牌,并令任意名其他角色摸两张牌,若如此做,此回合结束时,所有手牌数大于体力值的角色需弃置两张手牌',
xuezhou:'血咒',
xuezhou_info:'准备阶段你可以选择一项效果直到下一回合开始1. 每当一名其他角色受到一次伤害该角色失去一点体力你回复一点体力2. 每当一名其他角色造成一次伤害,该角色失去一点体力,你(若不是受伤害角色)回复一点体力',
fayin:'法印',
fayin_info:'每当你使用一张杀你可以弃置一张牌并获得一个随机法印效果1. 目标随机弃置两张牌2. 目标进入混乱状态直到下一回合开始3. 对目标造成一点火属性伤害4. 获得一点护甲5. 令目标翻面并摸一张牌',
gwbaquan:'霸权',
gwbaquan_info:'出牌阶段限一次,你可以获得一名其他角色的所有牌,然后还给其等量的牌,若你归还的牌均为你获得的牌且该角色体力值不小于你,你对其造成一点伤害',
hunmo:'魂墨',
hunmo_info:'出牌阶段限一次你可以选择任意名角色令目标的手牌数变为你当前的体力值最多为3并视为对其中弃牌的角色使用一张杀不计入出杀次数',
huihun:'回魂',
huihun_info:'结束阶段,你可以从弃牌堆中获得本回合使用的前两张红色牌',
quanzhang:'权杖',
quanzhang_backup:'权杖',
quanzhang_info:'出牌阶段限一次你可以观看牌堆顶的6张牌并选择一张使用',
}
}

View File

@ -318,6 +318,9 @@ character.hearth={
moxie2:{
trigger:{player:'phaseEnd'},
forced:true,
filter:function(event,player){
return player.num('h')>0;
},
content:function(){
var hs=player.get('h');
for(var i=0;i<hs.length;i++){

View File

@ -1731,7 +1731,7 @@ character.standard={
mashu_info:'锁定技,你的进攻距离+1',
feiying_info:'锁定技,你的防御距离+1',
tieji_info:'当你使用一张[杀]时,可进行一次判定,若为红色则此[杀]不可闪避',
jizhi_info:'每当你使用或打出一张非转化的普通锦囊牌,可以摸一张牌',
jizhi_info:'每当你使用一张非转化的普通锦囊牌,可以摸一张牌',
qicai_info:'锁定技,你使用的锦囊牌无距离限制',
zhiheng_info:'出牌阶段你可以弃置任意张牌并摸等量的牌每阶段限1次',
jiuyuan_info:'主公技,锁定技,濒死阶段,吴势力角色对你使用的[桃]额外回复一点体力',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'1.9.10',
'1.9.10.3',
'image/background/huangtian_bg.jpg',
'image/background/september_bg.jpg',
'image/background/shengshi_bg.jpg',
@ -322,6 +322,27 @@ window.noname_asset_list=[
'image/character/guojia.jpg',
'image/character/guotufengji.jpg',
'image/character/guyong.jpg',
'image/character/gw_airuiting.jpg',
'image/character/gw_aisinie.jpg',
'image/character/gw_bulanwang.jpg',
'image/character/gw_dagong.jpg',
'image/character/gw_enxier.jpg',
'image/character/gw_falanxisika.jpg',
'image/character/gw_fuertaisite.jpg',
'image/character/gw_fulisi.jpg',
'image/character/gw_gaier.jpg',
'image/character/gw_haluo.jpg',
'image/character/gw_hengsaite.jpg',
'image/character/gw_huoge.jpg',
'image/character/gw_jieluote.jpg',
'image/character/gw_kaerweite.jpg',
'image/character/gw_kuite.jpg',
'image/character/gw_laduoweide.jpg',
'image/character/gw_luoqi.jpg',
'image/character/gw_telisi.jpg',
'image/character/gw_xili.jpg',
'image/character/gw_yenaifa.jpg',
'image/character/gw_yioufeisi.jpg',
'image/character/hanba.jpg',
'image/character/handang.jpg',
'image/character/hanhaoshihuan.jpg',

View File

@ -4300,6 +4300,12 @@
}
return list;
};
Array.prototype.sortBySeat=function(target){
lib.tempSortSeat=target;
this.sort(lib.sort.seat);
delete lib.tempSortSeat;
return this;
};
if(!Array.from){
Array.from=function(args){
var list=[];
@ -11938,6 +11944,22 @@
}
return next;
},
randomDiscard:function(){
var position='he',num=1;
for(var i=0;i<arguments.length;i++){
if(typeof arguments[i]=='number'){
num=arguments[i];
}
else if(get.itemtype(arguments[i])=='select'){
position=arguments[i];
}
}
var cards=this.get(position,num);
if(cards){
this.discard(cards);
}
return cards;
},
discard:function(){
var next=game.createEvent('discard');
next.player=this;
@ -22606,6 +22628,9 @@
else if(Array.isArray(num)){
num2=num[i];
}
else if(typeof num=='function'){
num2=num(players[i]);
}
if(drawDeck&&drawDeck.drawDeck){
players[i].draw(num2,false,drawDeck);
}
@ -34372,7 +34397,7 @@
}
var intro=ui.create.div('.characterintro',get.characterIntro(name),uiintro);
var intro2=ui.create.div('.characterintro.intro2',uiintro);
var list=lib.character[name][3];
var list=get.character(name,3)||[];
var skills=ui.create.div('.characterskill',uiintro);
if(lib.config.touchscreen){
lib.setScroll(intro);
@ -35313,9 +35338,27 @@
}
return card;
},
character:function(name,num){
var info=lib.character[name];
if(!info){
for(var i in lib.characterPack){
if(lib.characterPack[i][name]){
info=lib.characterPack[i][name];
break;
}
}
}
if(info){
if(typeof num=='number'){
return info[num];
}
return info;
}
return null;
},
characterIntro:function(name){
if(lib.characterIntro[name]) return lib.characterIntro[name];
var tags=lib.character[name][4];
var tags=get.character(name,4);
if(tags){
for(var i=0;i<tags.length;i++){
if(tags[i].indexOf('des:')==0){

View File

@ -1,5 +1,5 @@
window.noname_update={
version:'1.9.10.3beta',
version:'1.9.10.3',
update:'1.9.10.2',
changeLog:[
'bug修复',

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
image/character/gw_xili.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
image/character/sp_zhangjiao.jpg Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 46 KiB