@@ -2970,6 +2970,24 @@ const skills = {
29702970 } ,
29712971 } ,
29722972 clanjianji : {
2973+ getBool ( event , player ) {
2974+ const card = new lib . element . VCard ( { name : "sha" , isCard : true } ) ;
2975+ const targets = game . filterPlayer ( target => {
2976+ return event . player . getPrevious ( ) == target || event . player . getNext ( ) == target ;
2977+ } ) ;
2978+ const bool = ! targets . some ( target => {
2979+ return target . getHistory ( "useCard" ) . length ;
2980+ } ) ;
2981+ const goon =
2982+ player . hasUseTarget ( card ) &&
2983+ ! game . getGlobalHistory ( "useCard" , evt => {
2984+ if ( ! [ "sha" , "juedou" ] . includes ( evt . card . name ) ) {
2985+ return false ;
2986+ }
2987+ return evt . targets ?. some ( target => targets . includes ( target ) ) ;
2988+ } ) . length ;
2989+ return [ bool , goon ] ;
2990+ } ,
29732991 limited : true ,
29742992 audio : 2 ,
29752993 trigger : { global : "phaseJieshuBegin" } ,
@@ -2983,41 +3001,14 @@ const skills = {
29833001 if ( ! targets . length ) {
29843002 return false ;
29853003 }
2986- const card = new lib . element . VCard ( { name : "sha" , isCard : true } ) ;
2987- return (
2988- ! targets . some ( target => {
2989- return target . getHistory ( "useCard" ) . length ;
2990- } ) ||
2991- ( player . hasUseTarget ( card ) &&
2992- ! targets . some ( target => {
2993- return game . hasPlayer2 ( current => {
2994- return current . getHistory ( "useCard" , evt => {
2995- return evt . targets && evt . targets . includes ( target ) ;
2996- } ) . length ;
2997- } ) ;
2998- } ) )
2999- ) ;
3004+ const [ bool , goon ] = get . info ( "clanjianji" ) . getBool ( event , player ) ;
3005+ return bool || goon ;
30003006 } ,
30013007 skillAnimation : true ,
30023008 animationColor : "watar" ,
30033009 prompt2 ( event , player ) {
30043010 let str = "" ;
3005- const card = new lib . element . VCard ( { name : "sha" , isCard : true } ) ;
3006- const targets = game . filterPlayer ( target => {
3007- return event . player . getPrevious ( ) == target || event . player . getNext ( ) == target ;
3008- } ) ,
3009- bool = ! targets . some ( target => {
3010- return target . getHistory ( "useCard" ) . length ;
3011- } ) ,
3012- goon =
3013- player . hasUseTarget ( card ) &&
3014- ! targets . some ( target => {
3015- return game . hasPlayer2 ( current => {
3016- return current . getHistory ( "useCard" , evt => {
3017- return evt . targets && evt . targets . includes ( target ) ;
3018- } ) . length ;
3019- } ) ;
3020- } ) ;
3011+ const [ bool , goon ] = get . info ( "clanjianji" ) . getBool ( event , player ) ;
30213012 if ( bool ) {
30223013 if ( goon ) {
30233014 str += "你可以" ;
@@ -3034,49 +3025,19 @@ const skills = {
30343025 } ,
30353026 check ( event , player ) {
30363027 const card = new lib . element . VCard ( { name : "sha" , isCard : true } ) ;
3037- const targets = game . filterPlayer ( target => {
3038- return event . player . getPrevious ( ) == target || event . player . getNext ( ) == target ;
3039- } ) ,
3040- bool = ! targets . some ( target => {
3041- return target . getHistory ( "useCard" ) . length ;
3042- } ) ,
3043- goon =
3044- player . hasUseTarget ( card ) &&
3045- ! targets . some ( target => {
3046- return game . hasPlayer2 ( current => {
3047- return current . getHistory ( "useCard" , evt => {
3048- return evt . targets && evt . targets . includes ( target ) ;
3049- } ) . length ;
3050- } ) ;
3051- } ) ;
3028+ const [ bool , goon ] = get . info ( "clanjianji" ) . getBool ( event , player ) ;
30523029 return ( bool && ( get . attitude ( player , event . player ) > 0 || event . player . countCards ( "h" ) > player . countCards ( "h" ) ) ) || ( goon && player . hasValueTarget ( card ) ) ;
30533030 } ,
30543031 logTarget : "player" ,
30553032 async content ( event , trigger , player ) {
30563033 player . awakenSkill ( event . name ) ;
30573034 const card = new lib . element . VCard ( { name : "sha" , isCard : true } ) ;
3058- const targets = game . filterPlayer ( target => {
3059- return trigger . player . getPrevious ( ) == target || trigger . player . getNext ( ) == target ;
3060- } ) ,
3061- boolx = ! targets . some ( target => {
3062- return target . getHistory ( "useCard" ) . length ;
3063- } ) ,
3064- goon =
3065- player . hasUseTarget ( card ) &&
3066- ! targets . some ( target => {
3067- return game . hasPlayer2 ( current => {
3068- return current . getHistory ( "useCard" , evt => {
3069- return evt . targets && evt . targets . includes ( target ) ;
3070- } ) . length ;
3071- } ) ;
3072- } ) ;
3035+ const [ boolx , goon ] = get . info ( event . name ) . getBool ( trigger , player ) ;
30733036 if ( boolx ) {
30743037 let draw = false ;
30753038 if ( goon ) {
3076- const {
3077- result : { bool } ,
3078- } = await player . chooseBool ( "是否与" + get . translation ( trigger . player ) + "各摸一张牌?" ) . set ( "choice" , get . attitude ( player , trigger . player ) > 0 || trigger . player . countCards ( "h" ) > player . countCards ( "h" ) ) ;
3079- if ( bool ) {
3039+ const { result } = await player . chooseBool ( "是否与" + get . translation ( trigger . player ) + "各摸一张牌?" ) . set ( "choice" , get . attitude ( player , trigger . player ) > 0 || trigger . player . countCards ( "h" ) > player . countCards ( "h" ) ) ;
3040+ if ( result ?. bool ) {
30803041 draw = true ;
30813042 }
30823043 } else {
0 commit comments