import { DataCardsType } from '../../src/types/dataCard' ; import { set , change , damage } from '../../src/data/cardMethods' ; const cards = [ { type : 0 , cost : 0 , prob : 3 , effect : ( p , o ) => { change ( p , 'bricks' , - 8 ) ; change ( o , 'bricks' , - 8 ) ; } , } , { type : 0 , cost : 0 , prob : 1 , special : { playagain : true } , effect : ( p , o ) => { change ( p , 'bricks' , 2 ) ; change ( p , 'gems' , 2 ) ; } , } , { type : 0 , cost : 1 , prob : 2 , special : { playagain : true } , effect : ( p , o ) => { change ( p , 'wall' , 1 ) ; } , } , { type : 0 , cost : 3 , prob : 3 , effect : ( p , o ) => { change ( p , 'brickProd' , 1 ) ; } , } , { type : 0 , cost : 4 , prob : 3 , effect : ( p , o ) => { if ( p . brickProd < o . brickProd ) { change ( p , 'brickProd' , 2 ) ; } else { change ( p , 'brickProd' , 1 ) ; } } , } , { type : 0 , cost : 7 , prob : 2 , effect : ( p , o ) => { change ( p , 'wall' , 4 ) ; change ( p , 'brickProd' , 1 ) ; } , } , { type : 0 , cost : 2 , prob : 3 , effect : ( p , o ) => { change ( p , 'wall' , 5 ) ; change ( p , 'gems' , - 6 ) ; } , } , { type : 0 , cost : 5 , prob : 2 , effect : ( p , o ) => { if ( p . brickProd < o . brickProd ) { set ( p , 'brickProd' , o . brickProd ) ; } } , } , { type : 0 , cost : 2 , prob : 3 , effect : ( p , o ) => { change ( p , 'wall' , 3 ) ; } , } , { type : 0 , cost : 3 , prob : 2 , effect : ( p , o ) => { change ( p , 'wall' , 4 ) ; } , } , { type : 0 , cost : 2 , prob : 3 , effect : ( p , o ) => { change ( p , 'brickProd' , 1 ) ; change ( o , 'brickProd' , 1 ) ; change ( p , 'gems' , 4 ) ; } , } , { type : 0 , cost : 3 , prob : 3 , effect : ( p , o ) => { change ( p , 'wall' , p . wall === 0 ? 6 : 3 ) ; } , } , { type : 0 , cost : 7 , prob : 2 , special : { playagain : true } , effect : ( p , o ) => { change ( p , 'wall' , - 5 ) ; change ( o , 'wall' , - 5 ) ; } , } , { type : 0 , cost : 8 , prob : 1 , special : { playagain : true } , effect : ( p , o ) => { change ( p , 'gemProd' , 1 ) ; } , } , { type : 0 , cost : 0 , prob : 3 , effect : ( p , o ) => { change ( p , 'brickProd' , - 1 ) ; change ( o , 'brickProd' , - 1 ) ; } , } , { type : 0 , cost : 5 , prob : 3 , effect : ( p , o ) => { change ( p , 'wall' , 6 ) ; } , } , { type : 0 , cost : 4 , prob : 2 , effect : ( p , o ) => { change ( o , 'brickProd' , - 1 ) ; } , } , { type : 0 , cost : 6 , prob : 2 , effect : ( p , o ) => { change ( p , 'brickProd' , 2 ) ; } , } , { type : 0 , cost : 0 , prob : 2 , effect : ( p , o ) => { change ( p , 'brickProd' , - 1 ) ; change ( p , 'wall' , 10 ) ; change ( p , 'gems' , 5 ) ; } , } , { type : 0 , cost : 8 , prob : 3 , effect : ( p , o ) => { change ( p , 'wall' , 8 ) ; } , } , { type : 0 , cost : 9 , prob : 2 , effect : ( p , o ) => { change ( p , 'wall' , 5 ) ; change ( p , 'recruitProd' , 1 ) ; } , } , { type : 0 , cost : 9 , prob : 2 , effect : ( p , o ) => { change ( p , 'wall' , 7 ) ; change ( p , 'gems' , 7 ) ; } , } , { type : 0 , cost : 11 , prob : 2 , effect : ( p , o ) => { change ( p , 'wall' , 6 ) ; change ( p , 'tower' , 3 ) ; } , } , { type : 0 , cost : 13 , prob : 2 , effect : ( p , o ) => { change ( p , 'wall' , 12 ) ; } , } , { type : 0 , cost : 15 , prob : 2 , effect : ( p , o ) => { change ( p , 'wall' , 8 ) ; change ( p , 'tower' , 5 ) ; } , } , { type : 0 , cost : 16 , prob : 2 , effect : ( p , o ) => { change ( p , 'wall' , 15 ) ; } , } , { type : 0 , cost : 18 , prob : 2 , effect : ( p , o ) => { change ( p , 'wall' , 6 ) ; damage ( o , 10 ) ; } , } , { type : 0 , cost : 24 , prob : 2 , effect : ( p , o ) => { change ( p , 'wall' , 20 ) ; change ( p , 'tower' , 8 ) ; } , } , { type : 0 , cost : 7 , prob : 2 , effect : ( p , o ) => { change ( p , 'wall' , 9 ) ; change ( p , 'recruits' , - 5 ) ; } , } , { type : 0 , cost : 1 , prob : 2 , effect : ( p , o ) => { change ( p , 'wall' , 1 ) ; change ( p , 'tower' , 1 ) ; change ( p , 'recruits' , 2 ) ; } , } , { type : 0 , cost : 6 , prob : 3 , effect : ( p , o ) => { if ( o . wall < p . wall ) { change ( o , 'recruitProd' , - 1 ) ; change ( o , 'tower' , - 2 ) ; } else if ( p . wall === o . wall ) { change ( o , 'recruitProd' , - 1 ) ; change ( o , 'tower' , - 2 ) ; change ( p , 'recruitProd' , - 1 ) ; change ( p , 'tower' , - 2 ) ; } else { change ( p , 'recruitProd' , - 1 ) ; change ( p , 'tower' , - 2 ) ; } } , } , { type : 0 , cost : 10 , prob : 2 , effect : ( p , o ) => { change ( p , 'recruits' , 6 ) ; change ( p , 'wall' , 6 ) ; if ( p . recruitProd < o . recruitProd ) { change ( p , 'recruitProd' , 1 ) ; } } , } , { type : 0 , cost : 14 , prob : 2 , effect : ( p , o ) => { change ( p , 'wall' , 7 ) ; damage ( o , 6 ) ; } , } , { type : 0 , cost : 17 , prob : 2 , effect : ( p , o ) => { const pWallOriginal = p . wall ; set ( p , 'wall' , o . wall ) ; set ( o , 'wall' , pWallOriginal ) ; } , } , { type : 1 , cost : 1 , prob : 2 , special : { playagain : true } , effect : ( p , o ) => { change ( p , 'tower' , 1 ) ; } , } , { type : 1 , cost : 2 , prob : 2 , special : { playagain : true } , effect : ( p , o ) => { change ( o , 'tower' , - 1 ) ; } , } , { type : 1 , cost : 2 , prob : 3 , effect : ( p , o ) => { change ( p , 'tower' , 3 ) ; } , } , { type : 1 , cost : 3 , prob : 2 , effect : ( p , o ) => { change ( p , 'gemProd' , 1 ) ; } , } , { type : 1 , cost : 2 , prob : 1 , special : { drawDiscardPlayagain : true } , effect : ( p , o ) => { } , } , { type : 1 , cost : 5 , prob : 2 , special : { undiscardable : true } , effect : ( p , o ) => { change ( p , 'tower' , 3 ) ; } , } , { type : 1 , cost : 4 , prob : 3 , effect : ( p , o ) => { change ( p , 'tower' , 2 ) ; change ( o , 'tower' , - 2 ) ; } , } , { type : 1 , cost : 6 , prob : 2 , effect : ( p , o ) => { change ( p , 'gemProd' , 1 ) ; change ( p , 'tower' , 3 ) ; change ( o , 'tower' , 1 ) ; } , } , { type : 1 , cost : 2 , prob : 3 , effect : ( p , o ) => { change ( o , 'tower' , - 3 ) ; } , } , { type : 1 , cost : 3 , prob : 3 , effect : ( p , o ) => { change ( p , 'tower' , 5 ) ; } , } , { type : 1 , cost : 4 , prob : 3 , effect : ( p , o ) => { change ( o , 'tower' , - 5 ) ; } , } , { type : 1 , cost : 3 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , - 5 ) ; change ( p , 'gemProd' , 2 ) ; } , } , { type : 1 , cost : 7 , prob : 2 , effect : ( p , o ) => { change ( p , 'gemProd' , 1 ) ; change ( p , 'tower' , 3 ) ; change ( p , 'wall' , 3 ) ; } , } , { type : 1 , cost : 7 , prob : 2 , effect : ( p , o ) => { const max = Math . max ( o . gemProd , p . gemProd ) ; set ( p , 'gemProd' , max ) ; set ( o , 'gemProd' , max ) ; } , } , { type : 1 , cost : 6 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 8 ) ; } , } , { type : 1 , cost : 9 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 5 ) ; change ( p , 'gemProd' , 1 ) ; } , } , { type : 1 , cost : 8 , prob : 3 , effect : ( p , o ) => { change ( p , 'gemProd' , - 1 ) ; change ( o , 'tower' , - 9 ) ; } , } , { type : 1 , cost : 7 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 5 ) ; change ( o , 'bricks' , - 6 ) ; } , } , { type : 1 , cost : 10 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 11 ) ; } , } , { type : 1 , cost : 5 , prob : 3 , effect : ( p , o ) => { change ( p , 'tower' , - 7 ) ; change ( o , 'tower' , - 7 ) ; change ( p , 'gemProd' , - 1 ) ; change ( o , 'gemProd' , - 1 ) ; } , } , { type : 1 , cost : 13 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 6 ) ; change ( o , 'tower' , - 4 ) ; } , } , { type : 1 , cost : 4 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 7 ) ; change ( p , 'bricks' , - 10 ) ; } , } , { type : 1 , cost : 12 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 8 ) ; change ( p , 'wall' , 3 ) ; } , } , { type : 1 , cost : 14 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 8 ) ; change ( p , 'recruitProd' , 1 ) ; } , } , { type : 1 , cost : 16 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 15 ) ; } , } , { type : 1 , cost : 15 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 10 ) ; change ( p , 'wall' , 5 ) ; change ( p , 'recruits' , 5 ) ; } , } , { type : 1 , cost : 17 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 12 ) ; damage ( o , 6 ) ; } , } , { type : 1 , cost : 21 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 20 ) ; } , } , { type : 1 , cost : 8 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 11 ) ; change ( p , 'wall' , - 6 ) ; } , } , { type : 1 , cost : 0 , prob : 2 , effect : ( p , o ) => { if ( p . tower < o . tower ) { change ( p , 'tower' , 2 ) ; } else { change ( p , 'tower' , 1 ) ; } } , } , { type : 1 , cost : 0 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 1 ) ; change ( o , 'tower' , 1 ) ; change ( p , 'gems' , 3 ) ; } , } , { type : 1 , cost : 5 , prob : 3 , effect : ( p , o ) => { change ( p , 'tower' , 4 ) ; change ( p , 'recruits' , - 3 ) ; change ( o , 'tower' , - 2 ) ; } , } , { type : 1 , cost : 11 , prob : 2 , effect : ( p , o ) => { if ( p . tower > o . wall ) { change ( o , 'tower' , - 8 ) ; } else { damage ( o , 8 ) ; } } , } , { type : 1 , cost : 18 , prob : 2 , effect : ( p , o ) => { change ( p , 'tower' , 13 ) ; change ( p , 'recruits' , 6 ) ; change ( p , 'bricks' , 6 ) ; } , } , { type : 2 , cost : 0 , prob : 2 , effect : ( p , o ) => { change ( p , 'recruits' , - 6 ) ; change ( o , 'recruits' , - 6 ) ; } , } , { type : 2 , cost : 1 , prob : 1 , special : { playagain : true } , effect : ( p , o ) => { damage ( o , 2 ) ; } , } , { type : 2 , cost : 1 , prob : 3 , effect : ( p , o ) => { damage ( o , 4 ) ; change ( p , 'gems' , - 3 ) ; } , } , { type : 2 , cost : 3 , prob : 2 , effect : ( p , o ) => { change ( p , 'recruitProd' , 1 ) ; } , } , { type : 2 , cost : 2 , prob : 1 , special : { drawDiscardPlayagain : true } , effect : ( p , o ) => { } , } , { type : 2 , cost : 3 , prob : 3 , effect : ( p , o ) => { damage ( o , 6 ) ; damage ( p , 3 ) ; } , } , { type : 2 , cost : 4 , prob : 2 , effect : ( p , o ) => { change ( o , 'tower' , - 3 ) ; damage ( p , 1 ) ; } , } , { type : 2 , cost : 6 , prob : 2 , special : { playagain : true } , effect : ( p , o ) => { change ( o , 'tower' , - 2 ) ; } , } , { type : 2 , cost : 3 , prob : 3 , effect : ( p , o ) => { damage ( o , 5 ) ; } , } , { type : 2 , cost : 5 , prob : 3 , effect : ( p , o ) => { damage ( o , 4 ) ; change ( p , 'wall' , 3 ) ; } , } , { type : 2 , cost : 6 , prob : 3 , effect : ( p , o ) => { change ( o , 'tower' , - 4 ) ; } , } , { type : 2 , cost : 7 , prob : 3 , effect : ( p , o ) => { change ( p , 'recruitProd' , 2 ) ; } , } , { type : 2 , cost : 8 , prob : 2 , effect : ( p , o ) => { damage ( o , 2 ) ; change ( p , 'tower' , 4 ) ; change ( p , 'wall' , 2 ) ; } , } , { type : 2 , cost : 0 , prob : 2 , effect : ( p , o ) => { change ( p , 'recruitProd' , 1 ) ; change ( o , 'recruitProd' , 1 ) ; change ( p , 'recruits' , 3 ) ; } , } , { type : 2 , cost : 5 , prob : 3 , effect : ( p , o ) => { damage ( o , 6 ) ; } , } , { type : 2 , cost : 6 , prob : 3 , effect : ( p , o ) => { damage ( o , 7 ) ; } , } , { type : 2 , cost : 6 , prob : 3 , effect : ( p , o ) => { damage ( o , 6 ) ; change ( o , 'recruits' , - 3 ) ; } , } , { type : 2 , cost : 5 , prob : 3 , effect : ( p , o ) => { damage ( o , 6 ) ; change ( p , 'bricks' , - 5 ) ; change ( p , 'gems' , - 5 ) ; change ( p , 'recruits' , - 5 ) ; change ( o , 'bricks' , - 5 ) ; change ( o , 'gems' , - 5 ) ; change ( o , 'recruits' , - 5 ) ; } , } , { type : 2 , cost : 8 , prob : 2 , effect : ( p , o ) => { if ( o . wall === 0 ) { damage ( o , 10 ) ; } else { damage ( o , 6 ) ; } } , } , { type : 2 , cost : 9 , prob : 2 , effect : ( p , o ) => { damage ( o , 9 ) ; } , } , { type : 2 , cost : 11 , prob : 2 , effect : ( p , o ) => { if ( o . wall > 0 ) { damage ( o , 10 ) ; } else { damage ( o , 7 ) ; } } , } , { type : 2 , cost : 9 , prob : 2 , effect : ( p , o ) => { if ( p . gemProd > o . gemProd ) { damage ( o , 12 ) ; } else { damage ( o , 8 ) ; } } , } , { type : 2 , cost : 10 , prob : 2 , effect : ( p , o ) => { if ( p . wall > o . wall ) { change ( o , 'tower' , - 6 ) ; } else { damage ( o , 6 ) ; } } , } , { type : 2 , cost : 14 , prob : 2 , effect : ( p , o ) => { change ( o , 'tower' , - 5 ) ; change ( o , 'recruits' , - 8 ) ; } , } , { type : 2 , cost : 11 , prob : 2 , effect : ( p , o ) => { damage ( o , 8 ) ; change ( o , 'brickProd' , - 1 ) ; } , } , { type : 2 , cost : 12 , prob : 2 , effect : ( p , o ) => { change ( p , 'gems' , Math . ceil ( ( o . gems >= 10 ? 10 : o . gems ) / 2 ) ) ; change ( p , 'bricks' , Math . ceil ( ( o . bricks >= 5 ? 5 : o . bricks ) / 2 ) ) ; change ( o , 'gems' , - 10 ) ; change ( o , 'bricks' , - 5 ) ; } , } , { type : 2 , cost : 15 , prob : 2 , effect : ( p , o ) => { damage ( o , 10 ) ; change ( p , 'wall' , 4 ) ; } , } , { type : 2 , cost : 17 , prob : 2 , effect : ( p , o ) => { damage ( o , 10 ) ; change ( o , 'recruits' , - 5 ) ; change ( o , 'recruitProd' , - 1 ) ; } , } , { type : 2 , cost : 25 , prob : 2 , effect : ( p , o ) => { damage ( o , 20 ) ; change ( o , 'gems' , - 10 ) ; change ( o , 'recruitProd' , - 1 ) ; } , } , { type : 2 , cost : 2 , prob : 3 , effect : ( p , o ) => { if ( p . wall > o . wall ) { damage ( o , 3 ) ; } else { damage ( o , 2 ) ; } } , } , { type : 2 , cost : 2 , prob : 3 , effect : ( p , o ) => { damage ( o , 3 ) ; change ( p , 'gems' , 1 ) ; } , } , { type : 2 , cost : 4 , prob : 3 , effect : ( p , o ) => { damage ( o , 8 ) ; change ( p , 'tower' , - 3 ) ; } , } , { type : 2 , cost : 13 , prob : 2 , effect : ( p , o ) => { damage ( o , 13 ) ; change ( p , 'gems' , - 3 ) ; } , } , { type : 2 , cost : 18 , prob : 2 , effect : ( p , o ) => { change ( o , 'tower' , - 12 ) ; } , } , ] ; export default cards ;