添加武将“超马超”
This commit is contained in:
1 parent
3ff62c5156
commit
c1d1c10ca7
2 files changed
+246
-4
No files matched your search
+246
-4
@@ -12,14 +12,16 @@ game.import("extension", function (lib, game, ui, get, ai, _status) {
|
|||||||
"sup2_caopi": ["male", "wei", "3/4", ["sup2_xingshang", "sup2_fangzhu", "songwei"], []],
|
"sup2_caopi": ["male", "wei", "3/4", ["sup2_xingshang", "sup2_fangzhu", "songwei"], []],
|
||||||
"sup2_weiyan": ["male", "shu", "2/4/3", ["sup2_kuanggu", "sup2_qimou"], []],
|
"sup2_weiyan": ["male", "shu", "2/4/3", ["sup2_kuanggu", "sup2_qimou"], []],
|
||||||
"sup_caiwenji": ["female", "qun", 3, ["sup_beige", "sup_duanchang"], []],
|
"sup_caiwenji": ["female", "qun", 3, ["sup_beige", "sup_duanchang"], []],
|
||||||
"sup2_yuanshu": ["male", "qun", 5, ["sup2_yongsi", "sup2_weidi"], []]
|
"sup2_yuanshu": ["male", "qun", 5, ["sup2_yongsi", "sup2_weidi"], []],
|
||||||
|
"sup2_machao": ["male", "shu", 5, ["sup2_tieji", "sup2_mashu"], []],
|
||||||
},
|
},
|
||||||
translate: {
|
translate: {
|
||||||
"sup2_luxun": "超陆逊",
|
"sup2_luxun": "超陆逊",
|
||||||
"sup2_caopi": "超曹丕",
|
"sup2_caopi": "超曹丕",
|
||||||
"sup2_weiyan": "超魏延",
|
"sup2_weiyan": "超魏延",
|
||||||
"sup_caiwenji": "超蔡琰",
|
"sup_caiwenji": "超蔡琰",
|
||||||
"sup2_yuanshu": "超袁术"
|
"sup2_yuanshu": "超袁术",
|
||||||
|
"sup2_machao": "超马超"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
card: {
|
card: {
|
||||||
@@ -520,7 +522,7 @@ game.import("extension", function (lib, game, ui, get, ai, _status) {
|
|||||||
},
|
},
|
||||||
charlotte: true,
|
charlotte: true,
|
||||||
skillBlocker: function (skill, player) {
|
skillBlocker: function (skill, player) {
|
||||||
return skill !== "sup_duanchang_baiban";
|
return skill !== "sup_duanchang_baiban"&&!lib.skill[skill].charlotte;
|
||||||
},
|
},
|
||||||
mark: true,
|
mark: true,
|
||||||
intro: {
|
intro: {
|
||||||
@@ -680,6 +682,241 @@ game.import("extension", function (lib, game, ui, get, ai, _status) {
|
|||||||
if (player.needsToDiscard() > 0) event.goto(0);
|
if (player.needsToDiscard() > 0) event.goto(0);
|
||||||
},
|
},
|
||||||
"_priority": 0
|
"_priority": 0
|
||||||
|
},
|
||||||
|
sup2_mashu:{
|
||||||
|
trigger:{
|
||||||
|
global:"phaseBefore",
|
||||||
|
player:"enterGame",
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
filter(event,player){
|
||||||
|
return (event.name!='phase'||game.phaseNumber==0);
|
||||||
|
},
|
||||||
|
content(){
|
||||||
|
player.disableEquip(2);
|
||||||
|
player.disableEquip(1);
|
||||||
|
let cards = []
|
||||||
|
for(let i = 0;i < 1;++i){
|
||||||
|
var card=get.cardPile2(function(c){
|
||||||
|
var type=get.subtype(c);
|
||||||
|
if(!['equip4'].includes(type)) return false;
|
||||||
|
if(cards.includes(c))return false
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
cards.push(card)
|
||||||
|
if(card){
|
||||||
|
player.useCard(card,player)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
canBeDiscarded:function(card){
|
||||||
|
if(get.position(card)=='e'&&['equip3','equip4'].includes(get.subtype(card))) return false;
|
||||||
|
},
|
||||||
|
canBeGained:function(card){
|
||||||
|
if(get.position(card)=='e'&&['equip3','equip4'].includes(get.subtype(card))) return false;
|
||||||
|
},
|
||||||
|
cardUsable:function(card,player,num){
|
||||||
|
if(card.name=='sha') return num+player.getCards('e',c=>get.subtype(c)==='equip4').length;
|
||||||
|
},
|
||||||
|
cardDiscardable:function(card,player,name){
|
||||||
|
if(get.position(card)=='e'&&['equip3','equip4'].includes(get.subtype(card))){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// cardEnabled2(card,player){
|
||||||
|
// if(get.position(card)=='e'&&['equip3','equip4'].includes(get.subtype(card))){
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
},
|
||||||
|
"_priority":0,
|
||||||
|
group:['sup2_mashu_use','sup2_mashu_draw','sup2_mashu_loseBefore'],
|
||||||
|
subSkill:{
|
||||||
|
'loseBefore':{
|
||||||
|
trigger:{
|
||||||
|
player:['loseBefore'],
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
slient:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
for(let card of event.cards){
|
||||||
|
if(get.position(card)=='e'&&['equip3','equip4'].includes(get.subtype(card))){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
},
|
||||||
|
content(){
|
||||||
|
trigger.cards = trigger.cards.filter(card=>!(get.position(card)=='e'&&['equip3','equip4'].includes(get.subtype(card))))
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'use':{
|
||||||
|
trigger:{
|
||||||
|
player:['useCard'],
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
return ['equip3','equip4'].includes(get.subtype(event.card))
|
||||||
|
},
|
||||||
|
slient:true,
|
||||||
|
forced:true,
|
||||||
|
init:function(player){
|
||||||
|
player.storage.sup2_mashu_cCardA=[]
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.draw()
|
||||||
|
var card = trigger.card
|
||||||
|
if(player.storage.sup2_mashu_cCardA.filter(c=>get.name(c)===get.name(card)).length === 0){
|
||||||
|
var new_card = game.createCard(card)
|
||||||
|
new_card.discard()
|
||||||
|
player.storage.sup2_mashu_cCardA.push(new_card)
|
||||||
|
}
|
||||||
|
if(get.subtype(card) === 'equip4'){
|
||||||
|
player.expandEquip(1);
|
||||||
|
player.expandEquip(4);
|
||||||
|
}else{
|
||||||
|
player.expandEquip(2);
|
||||||
|
player.expandEquip(3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'draw':{
|
||||||
|
trigger:{
|
||||||
|
player:"phaseDrawBegin2",
|
||||||
|
},
|
||||||
|
frequent:true,
|
||||||
|
filter(event,player){
|
||||||
|
return !event.numFixed;
|
||||||
|
},
|
||||||
|
async content(event,trigger,player){
|
||||||
|
trigger.num+=player.getCards('e',c=>get.subtype(c)==='equip3').length;
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
threaten:1.3,
|
||||||
|
},
|
||||||
|
"_priority":0,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sup2_tieji:{
|
||||||
|
shaRelated:true,
|
||||||
|
audio:2,
|
||||||
|
audioname:["boss_lvbu3"],
|
||||||
|
trigger:{
|
||||||
|
player:"useCardToPlayered",
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
return get.attitude(player,event.target)<=0;
|
||||||
|
},
|
||||||
|
init:function(p){
|
||||||
|
p.storage.sup2_tieqi_pArray=[]
|
||||||
|
p.storage.sup2_tieqi_dHArray=[]
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.card.name=='sha'&&!player.storage.sup2_tieqi_pArray.includes(event.target)
|
||||||
|
},
|
||||||
|
logTarget:"target",
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
player.storage.sup2_tieqi_pArray.push(trigger.target)
|
||||||
|
let num = player.countCards('e',c=>['equip3','equip4'].includes(get.subtype(c)))
|
||||||
|
if(trigger.target.getCards('hej').length === 0){
|
||||||
|
player.storage.sup2_tieqi_dHArray.push(trigger.target)
|
||||||
|
trigger.target.addTempSkill('sup2_tieji_baiban')
|
||||||
|
event.finish()
|
||||||
|
}else{
|
||||||
|
player.chooseButton([`使用其中至多${num}张牌`,trigger.target.getCards('hej')],[0,num],true)
|
||||||
|
.set("filterButton",(button)=>{
|
||||||
|
let card = button.link
|
||||||
|
return player.hasUseTarget({name:get.name(card)})
|
||||||
|
}).set('ai',button=>{
|
||||||
|
var player=_status.event.player,card=button.link
|
||||||
|
var val=player.getUseValue(card)+0.01;
|
||||||
|
if(['equip3','equip4'].includes(get.subtype(card)))return 10
|
||||||
|
return val;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
'step 1'
|
||||||
|
event.cards = result.links
|
||||||
|
let f1=event.cards.filter(c=>get.type(c)==='basic'),f2=event.cards.filter(c=>get.type(c)==='trick')
|
||||||
|
if(f1){
|
||||||
|
player.storage.sup2_tieqi_dHArray.push(trigger.target)
|
||||||
|
}
|
||||||
|
if(f2){
|
||||||
|
trigger.target.addTempSkill('sup2_tieji_baiban')
|
||||||
|
}
|
||||||
|
if(event.cards.length === 0){
|
||||||
|
player.storage.sup2_tieqi_dHArray.push(trigger.target)
|
||||||
|
trigger.target.addTempSkill('sup2_tieji_baiban')
|
||||||
|
}
|
||||||
|
'step 2'
|
||||||
|
for(let c of event.cards){
|
||||||
|
player.chooseUseTarget(true,c)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
group:['sup2_tieji_phaseEnd','sup2_tieji_directHit'],
|
||||||
|
subSkill:{
|
||||||
|
phaseEnd:{
|
||||||
|
trigger:{
|
||||||
|
player:"phaseEnd",
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
slient:true,
|
||||||
|
content(){
|
||||||
|
player.storage.sup2_tieqi_pArray=[]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
directHit:{
|
||||||
|
trigger:{
|
||||||
|
player:"useCardToPlayered",
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
// game.log( player.storage.sup2_tieqi_dHArray.includes(event.player))
|
||||||
|
return player.storage.sup2_tieqi_dHArray.includes(event.target)
|
||||||
|
},
|
||||||
|
content(){
|
||||||
|
trigger.directHit.push(trigger.target);
|
||||||
|
},
|
||||||
|
"_priority":9684462,
|
||||||
|
},
|
||||||
|
baiban:{
|
||||||
|
init: function (player, skill) {
|
||||||
|
player.addSkillBlocker(skill);
|
||||||
|
},
|
||||||
|
onremove: function (player, skill) {
|
||||||
|
player.removeSkillBlocker(skill);
|
||||||
|
},
|
||||||
|
charlotte: true,
|
||||||
|
skillBlocker: function (skill, player) {
|
||||||
|
return skill !== "sup2_tieji_baiban"&&!lib.skill[skill].charlotte;
|
||||||
|
},
|
||||||
|
mark: true,
|
||||||
|
intro: {
|
||||||
|
content: function (storage, player, skill) {
|
||||||
|
var list = player.getSkills(null, false, false).filter(function (i) {
|
||||||
|
return lib.skill.sup_duanchang_baiban.skillBlocker(i, player);
|
||||||
|
});
|
||||||
|
if (list.length) return "失效技能:" + get.translation(list);
|
||||||
|
return "无失效技能";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_priority": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
ignoreSkill:true,
|
||||||
|
skillTagFilter:function(player,tag,arg){
|
||||||
|
if(tag=='directHit_ai'){
|
||||||
|
return get.attitude(player,arg.target)<=0;
|
||||||
|
}
|
||||||
|
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).includes(arg.skill)) return false;
|
||||||
|
},
|
||||||
|
"directHit_ai":true,
|
||||||
|
},
|
||||||
|
"_priority":9684463,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
translate: {
|
translate: {
|
||||||
@@ -703,7 +940,12 @@ game.import("extension", function (lib, game, ui, get, ai, _status) {
|
|||||||
"锁定技,摸牌阶段,你额外摸X张牌(X为当时场上人数);出牌阶段结束时,若你本回合:1.没有造成伤害,将手牌摸至当前体力值;2.造成的伤害超过1点,本回合手牌上限改为已损失体力值。",
|
"锁定技,摸牌阶段,你额外摸X张牌(X为当时场上人数);出牌阶段结束时,若你本回合:1.没有造成伤害,将手牌摸至当前体力值;2.造成的伤害超过1点,本回合手牌上限改为已损失体力值。",
|
||||||
"sup2_weidi": "伪帝",
|
"sup2_weidi": "伪帝",
|
||||||
"sup2_weidi_info":
|
"sup2_weidi_info":
|
||||||
"弃牌阶段开始时,若你的手牌数大于手牌上限,则你可以将至多X张手牌交给1名其他角色。然后若X大于0,你可重复此流程(X为你的手牌数与手牌上限之差)。"
|
"弃牌阶段开始时,若你的手牌数大于手牌上限,则你可以将至多X张手牌交给1名其他角色。然后若X大于0,你可重复此流程(X为你的手牌数与手牌上限之差)。",
|
||||||
|
'sup2_tieji':"铁骑",
|
||||||
|
'sup2_tieji_info':"每回合每名角色限1次。当你使用【杀】指定一名角色为目标时,你可以观看其区域内的牌并选择其中至多X张使用之(X为你坐骑栏内的牌数量)。若你以此法选择:基本牌:其无法响应你使用的牌直到回合结束;锦囊牌:其所有技能失效直到回合结束。若你未选择任何牌,你依次令其获得以上两种效果。",
|
||||||
|
"sup2_mashu":"马术",
|
||||||
|
"sup2_mashu_info":
|
||||||
|
"①游戏开始时,你废除你的武器栏与防具栏并使用牌堆中的1张进攻坐骑牌。<br>②当你使用坐骑牌时,你摸一张牌并复制一张相同的坐骑牌置入弃牌堆(复制牌每种牌名限一次)。若此牌为进攻/防御坐骑牌,你获得一个额外的武器栏与进攻马栏/防具栏与防御马栏。<br>③你坐骑栏内的牌无法被其他角色弃置或获得。<br>④摸牌阶段你摸牌数+X,出牌阶段你可以额外使用Y张【杀】(X/Y为你的装备栏的防御马/进攻马数量)。"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
intro: "",
|
intro: "",
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 297 KiB |
Reference in new issue
Block a user