@@ -4935,56 +4935,61 @@ const skills = {
49354935 }
49364936 }
49374937 } ) ;
4938- const result = await player
4939- . chooseButtonTarget ( {
4940- createDialog : [ `###${ get . prompt ( event . skill ) } ###移去一张“城”,令一名目标角色摸X张牌(X为该角色本回合失去过的牌数且至多为5)` , cards ] ,
4941- targets : targets ,
4942- drawMap : map ,
4943- filterButton : true ,
4944- filterTarget ( card , player , target ) {
4945- const { targets, drawMap } = get . event ( ) ;
4946- if ( drawMap . has ( target ) ) {
4947- target . prompt ( `${ drawMap . get ( target ) } 张` ) ;
4948- }
4949- return targets . includes ( target ) ;
4950- } ,
4951- complexTarget : true ,
4952- ai2 ( target ) {
4953- return target == get . event ( "targetx" ) ? 1 : 0 ;
4954- } ,
4955- targetx : ( ( ) => {
4956- let info = [ ] ;
4957- targets . filter ( target => {
4958- let att = get . attitude ( player , target ) ;
4959- if ( att <= 0 ) {
4960- return false ;
4961- }
4962- if ( Math . abs ( att ) > 1 ) {
4963- att = Math . sign ( att ) * Math . sqrt ( Math . abs ( att ) ) ;
4964- }
4965- info . push ( [
4966- target ,
4967- att *
4968- target
4969- . getHistory ( "lose" )
4970- . map ( evt => evt . cards2 . length )
4971- . reduce ( ( p , c ) => p + c , 0 ) ,
4972- ] ) ;
4938+ const next = player . chooseButtonTarget ( {
4939+ createDialog : [ `###${ get . prompt ( event . skill ) } ###移去一张“城”,令一名目标角色摸X张牌(X为该角色本回合失去过的牌数且至多为5)` , cards ] ,
4940+ targets : targets ,
4941+ drawMap : map ,
4942+ filterButton : true ,
4943+ filterTarget ( card , player , target ) {
4944+ return get . event ( ) . targets . includes ( target ) ;
4945+ } ,
4946+ ai2 ( target ) {
4947+ return target == get . event ( "targetx" ) ? 1 : 0 ;
4948+ } ,
4949+ targetx : ( ( ) => {
4950+ let info = [ ] ;
4951+ targets . filter ( target => {
4952+ let att = get . attitude ( player , target ) ;
4953+ if ( att <= 0 ) {
49734954 return false ;
4974- } ) ;
4975- if ( ! info . length ) {
4976- return null ;
49774955 }
4978- info = info . sort ( ( a , b ) => {
4979- return b [ 1 ] - a [ 1 ] ;
4980- } ) [ 0 ] ;
4981- if ( info [ 1 ] <= 0 ) {
4982- return null ;
4956+ if ( Math . abs ( att ) > 1 ) {
4957+ att = Math . sign ( att ) * Math . sqrt ( Math . abs ( att ) ) ;
4958+ }
4959+ info . push ( [
4960+ target ,
4961+ att *
4962+ target
4963+ . getHistory ( "lose" )
4964+ . map ( evt => evt . cards2 . length )
4965+ . reduce ( ( p , c ) => p + c , 0 ) ,
4966+ ] ) ;
4967+ return false ;
4968+ } ) ;
4969+ if ( ! info . length ) {
4970+ return null ;
4971+ }
4972+ info = info . sort ( ( a , b ) => {
4973+ return b [ 1 ] - a [ 1 ] ;
4974+ } ) [ 0 ] ;
4975+ if ( info [ 1 ] <= 0 ) {
4976+ return null ;
4977+ }
4978+ return info [ 0 ] ;
4979+ } ) ( ) ,
4980+ } ) ;
4981+ next . set (
4982+ "targetprompt2" ,
4983+ next . targetprompt2 . concat ( [
4984+ target => {
4985+ if ( ! target . isIn ( ) || ! get . event ( ) . filterTarget ( null , get . player ( ) , target ) ) {
4986+ return false ;
49834987 }
4984- return info [ 0 ] ;
4985- } ) ( ) ,
4986- } )
4987- . forResult ( ) ;
4988+ return `${ get . cnNumber ( get . event ( ) . drawMap . get ( target ) ) } 张` ;
4989+ } ,
4990+ ] )
4991+ ) ;
4992+ const { result } = await next ;
49884993 if ( result ?. links ?. length && result . targets ?. length ) {
49894994 event . result = {
49904995 bool : true ,
@@ -5030,9 +5035,10 @@ const skills = {
50305035 filter ( event , player ) {
50315036 return event . name != "phase" || game . phaseNumber == 0 ;
50325037 } ,
5033- content ( ) {
5034- var cards = get . cards ( 2 ) ;
5035- player . addToExpansion ( cards , "gain2" ) . gaintag . add ( "jsrgshacheng" ) ;
5038+ async content ( event , trigger , player ) {
5039+ const next = player . addToExpansion ( get . cards ( 2 ) , "gain2" ) ;
5040+ next . gaintag . add ( "jsrgshacheng" ) ;
5041+ await next ;
50365042 } ,
50375043 } ,
50385044 } ,
0 commit comments