@@ -904,12 +904,14 @@ const skills = {
904904 const targets = game . filterPlayer ( target => target != player ) ;
905905 player . line ( targets ) ;
906906 if ( choices . includes ( "fengyin" ) ) {
907+ game . log ( player , "选择了" , "#y准备阶段、结束阶段" , "的效果" ) ;
907908 for ( const target of targets ) {
908909 target . when ( { player : "phaseJieshuBefore" } ) . then ( ( ) => player . addTempSkill ( "fengyin" , [ "phaseBefore" , "phaseChange" , "phaseAfter" ] ) ) ;
909910 target . when ( { player : "phaseZhunbeiBefore" } ) . then ( ( ) => player . addTempSkill ( "fengyin" , [ "phaseBefore" , "phaseChange" , "phaseAfter" ] ) ) ;
910911 }
911912 }
912913 if ( choices . includes ( "judge" ) ) {
914+ game . log ( player , "选择了" , "#y判定阶段" , "的效果" ) ;
913915 for ( const target of targets ) {
914916 target . when ( { player : "phaseJudgeBegin" } ) . step ( async ( event , trigger , player ) => {
915917 const result = await player
@@ -929,51 +931,62 @@ const skills = {
929931 }
930932 }
931933 if ( choices . includes ( "discard" ) ) {
932- game . addGlobalSkill ( "dclishi_discard ") ;
934+ game . log ( player , "选择了" , "#y摸牌阶段" , "的效果 ") ;
933935 for ( const target of targets ) {
934- target . when ( { player : "phaseDrawBegin" } ) . then ( ( ) => trigger . set ( "dclishi" , player . playerid ) ) ;
936+ target . addTempSkill ( "dclishi_discard" , { player : "phaseDrawAfter" } ) ;
937+ //target.when({ player: "phaseDrawBegin" }).then(() => trigger.set("dclishi", player.playerid));
935938 }
936939 }
937940 if ( choices . includes ( "use" ) ) {
941+ game . log ( player , "选择了" , "#y出牌阶段" , "的效果" ) ;
938942 for ( const target of targets ) {
939- target . when ( { player : "phaseUseBegin" } ) . then ( ( ) => player . addTempSkill ( "dclishi_limit" , [ "phaseBefore" , "phaseChange" , "phaseAfter" ] ) ) ;
943+ target . addTempSkill ( "dclishi_limit" , { player : "phaseUseAfter" } ) ;
944+ //target.when({ player: "phaseUseBegin" }).then(() => player.addTempSkill("dclishi_limit", ["phaseBefore", "phaseChange", "phaseAfter"]));
940945 }
941946 }
942947 if ( choices . includes ( "gain" ) ) {
943- player . addSkill ( "dclishi_gain ") ;
948+ game . log ( player , "选择了" , "#y弃牌阶段" , "的效果 ") ;
944949 for ( const target of targets ) {
945- target . when ( { player : "phaseDiscardBegin" } ) . then ( ( ) => trigger . set ( "dclishi" , player . playerid ) ) ;
950+ target . addTempSkill ( "dclishi_gain" , { player : "phaseDiscardAfter" } ) ;
951+ target . markAuto ( "dclishi_gain" , player ) ;
952+ //target.when({ player: "phaseDiscardBegin" }).then(() => trigger.set("dclishi", player.playerid));
946953 }
947954 }
948955 } ,
949956 subSkill : {
950957 gain : {
951958 trigger : {
952- global : [ "loseAsyncAfter" , "loseAfter" ] ,
959+ player : [ "loseAfter" ] ,
960+ global : [ "loseAsyncAfter" ] ,
953961 } ,
954962 charlotte : true ,
955963 forced : true ,
956964 popup : false ,
965+ onremove : true ,
957966 filter ( event , player ) {
958967 if ( event . type !== "discard" ) {
959968 return false ;
960969 }
961970 const evt = event . getParent ( "phaseDiscard" ) ;
962- if ( evt ?. dclishi !== event . player . playerid ) {
963- return false ;
964- }
965- const evt2 = event . getl ( event . player ) ;
966- return evt ?. name === "phaseDiscard" && evt ?. player === event . player && evt2 ?. cards2 ?. filterInD ( "d" ) ;
971+ const evt2 = event . getl ( player ) ;
972+ return evt ?. name === "phaseDiscard" && evt ?. player === player && evt2 ?. cards2 ?. filterInD ( "d" ) ;
967973 } ,
968974 async content ( event , trigger , player ) {
969- await player . gain ( trigger . getl ( trigger . player ) . cards2 . filterInD ( "d" ) , "gain2" ) ;
975+ const gainer = player
976+ . getStorage ( event . name )
977+ . sortBySeat ( )
978+ . find ( target => target . isIn ( ) ) ;
979+ if ( gainer ) {
980+ await gainer . gain ( trigger . getl ( player ) . cards2 . filterInD ( "d" ) , "gain2" ) ;
981+ }
970982 } ,
971983 } ,
972984 limit : {
973985 charlotte : true ,
974986 onremove : true ,
975987 trigger : { player : "useCard1" } ,
976988 silent : true ,
989+ firstDo : true ,
977990 filter ( event , player ) {
978991 return player . isPhaseUsing ( ) ;
979992 } ,
@@ -1000,15 +1013,15 @@ const skills = {
10001013 forced : true ,
10011014 popup : false ,
10021015 trigger : {
1003- global : [ "gainAfter" , "loseAsyncAfter "] ,
1016+ player : [ "gainAfter" ] ,
10041017 } ,
10051018 filter ( event , player ) {
10061019 const evt = event . getParent ( "phaseDraw" ) ;
1007- const cards = event ? .getg ?. ( player ) ;
1008- return event . getParent ( ) ?. name == "draw" && evt ?. name === "phaseDraw" && evt ?. dclishi === player . playerid && cards . map ( card => get . color ( card ) ) . unique ( ) . length == 1 ;
1020+ const cards = event . getg ?. ( player ) ;
1021+ return event . getParent ( ) ?. name == "draw" && evt ?. name === "phaseDraw" && evt ?. player === player && cards . map ( card => get . color ( card ) ) . unique ( ) . length == 1 ;
10091022 } ,
10101023 async content ( event , trigger , player ) {
1011- let cards = trigger . getg ( player ) ;
1024+ const cards = trigger . getg ( player ) ;
10121025 await player . modedDiscard ( cards ) ;
10131026 } ,
10141027 } ,
@@ -10732,11 +10745,7 @@ const skills = {
1073210745 audio : 2 ,
1073310746 async cost ( event , trigger , player ) {
1073410747 const {
10735- result : {
10736- bool,
10737- targets,
10738- links : cost_data ,
10739- }
10748+ result : { bool, targets, links : cost_data } ,
1074010749 } = await player
1074110750 . chooseButtonTarget ( {
1074210751 createDialog : [ get . prompt2 ( event . skill ) , player . getExpansions ( "qixing" ) ] ,
@@ -10792,12 +10801,12 @@ const skills = {
1079210801 return - 1 ;
1079310802 } ,
1079410803 } )
10795- . set ( "allUse" , player . getExpansions ( "qixing" ) . length >= game . countPlayer ( current => get . attitude ( player , current ) > 4 ) * 2 )
10804+ . set ( "allUse" , player . getExpansions ( "qixing" ) . length >= game . countPlayer ( current => get . attitude ( player , current ) > 4 ) * 2 ) ;
1079610805 event . result = {
1079710806 bool : bool ,
1079810807 targets : targets ?. sortBySeat ( ) ,
1079910808 cost_data : cost_data ,
10800- }
10809+ } ;
1080110810 } ,
1080210811 async content ( event , trigger , player ) {
1080310812 const { targets, cost_data : cards } = event ;
@@ -10860,33 +10869,30 @@ const skills = {
1086010869 } ,
1086110870 async cost ( event , trigger , player ) {
1086210871 const {
10863- result : {
10864- bool,
10865- targets,
10866- links : cost_data ,
10867- }
10868- } = await player
10869- . chooseButtonTarget ( {
10870- createDialog : [ get . prompt2 ( event . skill ) , player . getExpansions ( "qixing" ) ] ,
10871- selectButton : 1 ,
10872- filterTarget : true ,
10873- ai1 ( button ) {
10874- if ( game . hasPlayer ( target => {
10872+ result : { bool, targets, links : cost_data } ,
10873+ } = await player . chooseButtonTarget ( {
10874+ createDialog : [ get . prompt2 ( event . skill ) , player . getExpansions ( "qixing" ) ] ,
10875+ selectButton : 1 ,
10876+ filterTarget : true ,
10877+ ai1 ( button ) {
10878+ if (
10879+ game . hasPlayer ( target => {
1087510880 return get . attitude ( get . player ( ) , target ) < 0 ;
10876- } ) ) {
10877- return 1 ;
10878- }
10879- return 0 ;
10880- } ,
10881- ai2 ( target ) {
10882- return - get . attitude ( get . player ( ) , target ) ;
10883- } ,
10884- } ) ;
10881+ } )
10882+ ) {
10883+ return 1 ;
10884+ }
10885+ return 0 ;
10886+ } ,
10887+ ai2 ( target ) {
10888+ return - get . attitude ( get . player ( ) , target ) ;
10889+ } ,
10890+ } ) ;
1088510891 event . result = {
1088610892 bool : bool ,
1088710893 targets : targets ?. sortBySeat ( ) ,
1088810894 cost_data : cost_data ,
10889- }
10895+ } ;
1089010896 } ,
1089110897 async content ( event , trigger , player ) {
1089210898 const { targets, cost_data : cards } = event ;
0 commit comments